Skip to content

canon(constraint): model disambiguation — bare 'model' is the LLM (DRAFT — do not merge)#294

Draft
git-repo-auth[bot] wants to merge 1 commit into
mainfrom
canon/model-disambiguation
Draft

canon(constraint): model disambiguation — bare 'model' is the LLM (DRAFT — do not merge)#294
git-repo-auth[bot] wants to merge 1 commit into
mainfrom
canon/model-disambiguation

Conversation

@git-repo-auth

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

Copy link
Copy Markdown
Contributor

DRAFT — captain's pen. DO NOT MERGE until you review the exact text (authorial voice).

Adds one tier-1 canon document: canon/constraints/model-disambiguation.md, mirroring the existing harness-disambiguation precedent.

The problem

"model" carries four distinct senses side by side in canon. Two collide in a single title line: The Flight Deck Model — How a Model Boards This System. And flight-deck-model (architecture sense) sits in the same canon/bootstrap/ directory as model-operating-contract (AI sense).

The ruling this proposes

One convention + one targeted rename:

  1. Bare, unqualified "model" = the AI/LLM. Keeps the word — most entrenched (model_id, model provenance D0002, model-operating-contract), matches industry.
  2. Every other sense must always carry a qualifier ("operating model", "flight deck model", "mental model").
  3. The ratified data/design sense leaves the word entirely → "design"/"schema" — collides most directly in bare form ("a ratified model") and is least entrenched.

Sense inventory (cited)

Sense Verdict Example
AI / LLM keep bare model_id; "comparison between AI models" (D0002); "How a Model Boards"
ratified data/design rename → design/schema "rules a data/design model … reconciled to that model" (PR #288); "Canon Storage Model"
operating / architecture keep, compounded "Two-Loop Operating Model" (PR #291); "Flight Deck Model"
mental / conceptual keep, compounded "one-page mental model"; "The Intern — A Mental Model"

Apply-scope / blast radius

Nothing already merged changes. Recommended package: rename PR #288 (ratified-model-…ratified-design-…, unmerged ≈ 0 cost) + update #291 cross-ref + this new doc + one odd/terminology row. model_id/D0002/models-do-not-mutate-canon/model-operating-contract untouched. Ruling now, while #288/#291 are drafts, makes the rename nearly free.

oddkit_challenge

Ran in exploration mode — no blocking tensions. Alternatives (rename sense 1; rename sense 3; glossary-only; do-nothing) considered and rejected in the doc's Confidence/Falsifiability + decision brief. Residuals noted honestly (model-operating-contract adjacency; design-vs-schema-vs-data-model nuance; cross-repo ARS scope deferred).

Frontmatter: stability: draft, status: draft — awaiting captain ratification. Sourced from canon + PRs #288/#291 read live; no sandbox-only inputs.

…her senses qualified (DRAFT — do not merge)
@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: #366

@github-actions

Copy link
Copy Markdown

Canon Quality — oddkit_audit

No dead klappy:// references or legacy link patterns found in writings/. 51 files scanned.

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

@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 — P0010 Retrieval-Readiness ⚠️

Soft report for klappy://canon/constraints/retrieval-disclosure-contract. 700 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': 241, 'apocrypha': 38, 'docs': 304, 'journals': 60, 'unknown': 6}
Kind source: {'path': 565, 'frontmatter': 129, 'none': 6} (frontmatter-primary, path-secondary)
Default-include visibility: 596 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: #366

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