Skip to content

canon(architecture): the two-loop operating model (DRAFT — do not merge)#291

Draft
git-repo-auth[bot] wants to merge 3 commits into
mainfrom
canon/two-loop-operating-model
Draft

canon(architecture): the two-loop operating model (DRAFT — do not merge)#291
git-repo-auth[bot] wants to merge 3 commits into
mainfrom
canon/two-loop-operating-model

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/architecture/two-loop-operating-model.md.

What it encodes (captain-ratified model)

Loop 1 — the collaboration loop (Operator ↔ CDO). Direction, rulings, and ratifications flow down; translated intent and results flow back. Natural-language delegation, crew-not-clone. Produces decisions and ratifications, never code.

Loop 2 — the production loop (the agent pipeline), defined in policies. A gated pipeline: Director exploration → policies → gate; plan → PRDs → gate; build → gate; validate → gate. Each stage consumes only the ratified output of the prior stage; every gate spawns a fresh session so nothing self-certifies. Design gates run the oddkit gauntlet as a refinement loop — findings fold back into the artifact before ratification, so "clean" means findings were incorporated, not that none were found. The build gate runs fresh-context validation + tests.

The seam — ratification (bidirectional). Loop 2 gate outputs surface to Loop 1 for the captain's ruling; his rulings re-enter Loop 2 as the ratified inputs the next stage may consume. Nothing crosses except through ratification.

Template: enforceable-policy — WHAT / WHY / ENFORCEMENT / SCOPE / VERIFICATION, plus canon progressive-disclosure (blockquote + Summary) and a Confidence-and-Falsifiability section.

Reconciliation (extend, do not duplicate)

  • policy-precedes-build (in-flight parallel constraint) = the load-bearing rule inside Loop 2; this doc is the frame around it.
  • PR canon(constraint): ratified model requires reconciliation and an enforcer (DRAFT — do not merge) #288 (canon/constraints/ratified-model-requires-reconciliation-and-enforcer, DRAFT) — verified as the sibling filing the ARS-freeze lesson (reconciliation + enforcer). Different half of the same failure; cross-referenced, not duplicated.
  • model-operating-contract / four-modes / preflight — Loop 2's stages are the contract's exploration/planning/execution/validation modes arranged as a pipeline.

Self-application (it obeys the loop it defines)

Authored in Loop 1's mode; run through its own design gate — oddkit_challenge (mode: canon-tier-1, governance_source: knowledge_base, non-blocking). Findings were folded back, not just recorded: prior-art reconciliation against "The Loop," a named-alternative + reversibility note in WHY, and the Confidence-and-Falsifiability section were all added in response to the challenge.

Residuals / captain checks before merge

git attribution: klappy <118073+klappy@users.noreply.github.com>.

Tier-1 canon frame: the collaboration loop (Operator<->CDO, decisions and
ratifications, never code) and the production loop (gated agent pipeline,
each stage consuming only ratified prior-stage output, every gate a fresh
session), joined at the ratification seam. Design gates run the oddkit
gauntlet as a refinement loop (findings fold back into the artifact before
ratification); the build gate runs fresh-context validation plus tests.

Reconciles with PR #288 (ratified-model-requires-reconciliation-and-enforcer),
the model-operating-contract/four-modes/preflight, and the in-flight
policy-precedes-build rule. Authored under, and passed through, the design
gate it defines (oddkit_challenge; findings folded back).

Captain's authorial voice — DO NOT MERGE without review of exact text.
@github-actions

github-actions Bot commented Jul 17, 2026

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: #370

@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

github-actions Bot commented Jul 17, 2026

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: #370

@github-actions

github-actions Bot commented Jul 17, 2026

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: #370

Epoch was stamped E0009 by inference; captain confirmed current
epoch is E0010 (Flight Crew — costume->seat). Surgical single-field
correction only.
Crew-model doc: kept 'captain' only in the two appositives that explicitly
define the operator<->CDO collaboration frame ('the human operator — the
captain —' and 'the human operator (the captain)'), where the crew metaphor is
the intended subject. Neutralized the 15 operational uses (rulings, the seam,
authorial-voice review) to 'operator', including captain-referring pronouns.
No rulings, thresholds, enforcement, or meaning changed.
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