Skip to content

canon: three captain-facing dispatch constraints (legibility, fresh-copy, no-durable-memory) — draft for review#287

Draft
git-repo-auth[bot] wants to merge 1 commit into
mainfrom
canon/captain-facing-message-and-source-of-truth-constraints
Draft

canon: three captain-facing dispatch constraints (legibility, fresh-copy, no-durable-memory) — draft for review#287
git-repo-auth[bot] wants to merge 1 commit into
mainfrom
canon/captain-facing-message-and-source-of-truth-constraints

Conversation

@git-repo-auth

@git-repo-auth git-repo-auth Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Three captain-facing dispatch constraints — draft for review

MODE: exploration → draft. Draft + PR only — do NOT merge. This is canon (captain's authorial domain); the captain reviews the exact text.

Each constraint assembles rules that already exist scattered across canon into a single, falsifiable doc, and DRY-references its parents rather than restating them. The Otto boarding pass gets one pointer line per constraint under The seat's cargo.

1. canon/constraints/captain-message-legibility.md

Every captain-facing message from the dispatch seat MUST parse at a glance: checkpoint close (Done/Next/Blocker), emoji glance-markers + tables over prose walls, happy-path recommendation first, dry/calm/brief register. Scoped to high-density dispatch messages — includes a What this does not claim guarding against emoji-spam on low-density prose.
Composes: proactive-frequency-calibration §Rule 2 + §Rule 4 · seeded-response-standard · voice-as-cognitive-load-shedding · board OPT grammar.

2. canon/constraints/fresh-copy-from-source-of-truth.md

Captain ruling (2026-07-15): default to a fresh copy from the source of truth for all work — clone from GitHub, fetch canon live. A stale/local/cached copy is a named rare exception with a stated reason, never the silent default. Does not claim: caching for performance where staleness is provably safe is fine — this is about sources of TRUTH.
Composes: boarding-pass · flight-deck-model · verification-requires-fresh-context.

3. canon/constraints/no-durable-reliance-on-model-memory.md

Captain ruling (2026-07-15): nothing durable — policy, rulings, conventions, project state, decisions — lives in the model's instance-side memory. Durable state lives ONLY in canon (governance) or the board/log (mission state), both fetched live. Memory is per-instance, invisible to the captain, and not shared across devices/clients/users. Does not claim: ephemeral within-session working state is fine — this bans DURABLE reliance across sessions/surfaces.
Composes: boarding-pass · flight-deck-model · dry-canon-says-it-once.

Boarding-pass pointer lines added (under The seat's cargo)

- Captain messages: format for glance — checkpoint close, glance-markers,
  happy-path recommendation first →
  klappy://canon/constraints/captain-message-legibility.
- Fresh copy: fetch fresh from the source of truth by default; stale/local is a
  named rare exception →
  klappy://canon/constraints/fresh-copy-from-source-of-truth.
- No durable memory: durable state lives in canon or the board, never the model's
  instance-side memory →
  klappy://canon/constraints/no-durable-reliance-on-model-memory.

Notes

  • canon/constraints/README.md lists contents dynamically via oddkit catalog — no hardcoded index entry to add.
  • Frontmatter matches sibling constraints (seeded-response-standard, reviewability-standard): tier 1, E0010, status: active, target_repo: outcomes-driven-development.

🛫 Cross-check: challenge welcome on any wording; nothing here is committed to main without the captain's review of the exact text.

Assemble three constraints that already exist as scattered rules across
canon into single falsifiable docs, and point the Otto boarding pass at
each. Draft only — captain reviews the exact text before merge.

- captain-message-legibility: every dispatch-seat message parses at a
  glance (checkpoint close + glance-markers + happy-path-first + dry
  register). Composes proactive-frequency-calibration Rule 2/4,
  seeded-response-standard, voice-as-cognitive-load-shedding.
- fresh-copy-from-source-of-truth: default to a fresh copy from the
  source; stale/local/cached is a named rare exception. Composes
  boarding-pass, flight-deck-model, verification-requires-fresh-context.
- no-durable-reliance-on-model-memory: durable state lives in canon or
  the board, never instance-side memory. Composes boarding-pass,
  flight-deck-model, dry-canon-says-it-once.

otto-boarding-pass: one pointer line per constraint under seat's cargo.
@github-actions

Copy link
Copy Markdown

Canon Quality — P0010 Retrieval-Readiness ⚠️

Soft report for klappy://canon/constraints/retrieval-disclosure-contract. 702 files scanned. Never blocks — informational until the corpus is ready to enforce.

  • Blocking-class findings: 15 (structural fields the contract would filter on)
  • Warnings: 0 (kind resolves to unknown)
  • Informational: 13 (exempt templates/archive/drafts)

Kind distribution: {'essays': 51, 'canon': 243, 'apocrypha': 38, 'docs': 304, 'journals': 60, 'unknown': 6}
Kind source: {'path': 567, 'frontmatter': 129, 'none': 6} (frontmatter-primary, path-secondary)
Default-include visibility: 598 visible, 104 hidden (journals/apocrypha/unknown)

By rule: {'audience-invalid': 2, 'exposure-missing': 5, 'tier-missing': 5, 'tier-invalid': 7, 'fm-missing': 3, 'kind-unresolvable': 6}

These are not schema violations (see the Frontmatter Schema job for those on writings/). They are corpus-readiness signals for the retrieval contract: invalid/missing audience, exposure, tier, and docs whose kind cannot be resolved. Fix in a corpus-cleanup PR before the contract flips to enforcing. See the retrieval-readiness-findings artifact for the full list.

Validator: scripts/audit-retrieval-readiness.py · Constraint: klappy://canon/constraints/retrieval-disclosure-contract · Run: #357

@github-actions

Copy link
Copy Markdown

Canon Quality — Homepage Surfacing ✅

49 essay(s) scanned. Soft report — never blocks; the hard field gate is the Frontmatter Schema job.

All published essays resolve to the homepage feed.

Report: scripts/surfacing-report.py · Canon: klappy://canon/constraints/frontmatter-validation-before-merge

@github-actions

Copy link
Copy Markdown

Canon Quality — oddkit_audit ⚠️

8 finding(s) in writings/ (50 files scanned). Mode: soft.

writings/agentic-software-development.md — 1 finding(s)
Line Rule Occurrence Message
242 dead-reference klappy://writings/nothing-new-even-ai URI does not resolve
writings/choosing-faith-not-fear.md — 1 finding(s)
Line Rule Occurrence Message
203 dead-reference klappy://writings/four-questions-that-change-everything URI does not resolve
writings/getting-started-with-odd-and-oddkit.md — 4 finding(s)
Line Rule Occurrence Message
69 legacy-link-pattern /page/writings/the-journey-from-ai-tasks-to-ai-augmented-workflows Use a klappy:// URI instead of /page/ path
202 legacy-link-pattern /page/docs/oddkit/proactive/proactive-bootstrap Use a klappy:// URI instead of /page/ path
204 legacy-link-pattern /page/docs/examples/project-instructions-template Use a klappy:// URI instead of /page/ path
260 legacy-link-pattern /page/writings/the-journey-from-ai-tasks-to-ai-augmented-workflows Use a klappy:// URI instead of /page/ path
writings/the-broken-wall-and-the-buried-talent.md — 1 finding(s)
Line Rule Occurrence Message
332 dead-reference klappy://draft-zeros/appendix-a-the-biblical-roots URI does not resolve
writings/the-voice-came-first.md — 1 finding(s)
Line Rule Occurrence Message
244 dead-reference klappy://writings/four-questions-that-change-everything URI does not resolve

Soft-block mode — this status is informational; the job will not fail. Hard-block ships in PR-3.2 after the observation cycle.

What to do for each finding:

  • Fix the slug if the target now lives at a different klappy:// URI.
  • Remove the link if it is no longer needed.
  • Allowlist with a reason if the rot is intentional (e.g. forward-ref to an upcoming article): place <!-- audit-allow: dead-reference reason="..." --> on the line above the offending link. The directive is line-level and scopes to the next markdown link.

Spec: klappy://docs/oddkit/specs/oddkit-audit · Workflow: .github/workflows/canon-quality.yml · Run: #357

@github-actions

Copy link
Copy Markdown

Canon Quality — Frontmatter Schema ✅

All 49 file(s) in writings/ conform to klappy://canon/meta/frontmatter-schema.

Validator: scripts/validate-frontmatter.py · Canon: klappy://canon/constraints/frontmatter-validation-before-merge · Run: #357

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant