Build-to-1.0 Campaign, 2026-06-10¶
⚠️ SUPERSEDED IN PLACE 2026-06-20 by
build-to-1.0-campaign-2026-06-20.md. This file no longer steers — retained for audit only. Its 77 amendment blocks are history, not the plan. Go to the successor for the live spine (two engines, pool-reset, the never-relax floor + enforcement-claim rule).
Status: SUPERSEDED — was ACTIVE Magna Carta (operator-ratified 2026-06-10; elevated same day; superseded by the 2026-06-20 successor).
Ratification (operator verbatim, 2026-06-10): "let your new Build-to-1.0 campaign subsume and supersede all prior plans (emergencies, five-alarm fires, restore-health). Also, any plan must address all GHIs and incorporate the discipline needed to handle the emergence of new GHI moments."
Elevation (operator verbatim, 2026-06-10): "Build-to-1.0 Campaign is now Magna Carta, it must rule (and be updated when needed) to get our legs back under us."
Refinement (operator verbatim, 2026-06-10): "Magna Carta it does not invalidate ADR, OBPI, and GHI repair as primary propellants of the work. Magna Carta should help refine/facilitate gzkit's governance and build facility."
Amendment (operator verbatim, 2026-06-10): "we don't direct edit AGENTS.md. the CMS system must be prioritized as a near-top priority." → CMS completion (ADR-0.0.37 corpus → compress → rendition → playback) inserted as Phase B, between in-flight closure and the MOTD build; all subsequent phases renumbered.
Amendment (operator verbatim, 2026-06-12): "do max improvement from Florian Buetow's practices. ensure this becomes aware of this addition: docs/governance/build-to-1.0-campaign-2026-06-10.md" → Buetow adoption booked as ADR-0.0.70 (turn-end Stop-hook feedback, session-correction mining, guardrail-feedback-prose rule, fourth-source triangulation) and inserted as item B.0, executed same-day through the governed gz-adr-create → OBPI path. Operator closing remark, same exchange: "I guess this means that gzkit may end up being worth the effort in the end."
Amendment (operator verbatim, 2026-06-14): "gzkit is a martial art - a doctrinal WAY of battle - but each project is the battlefield. The firewall is needed to NOT allow the skunkworks to follow the toolset out of the lab/factory. The rigging and jigs do not remain attached to the fuselage once we open the factory hangar doors for final delivery - we haven't been careful about this." Also: "some skills go out to the adopter as well (as do other harness things)" and "the foundation needs to carry both because the are inseparable, and with the cms for progressive disclosure, both are mechanical." → A Firewall foundation ADR (rooted in GHI #607) is inserted, classifying every delivered surface — rules, skills, hooks, agent defs, harness — by destiny (wheel-borne / authored-into-battlefield / lab-only-jig) at scaffold-time and validate-time, and carrying both a mechanical face (jig-escape made structurally impossible) and a communicative face (a self-explaining scaffold-boundary surface, rendered mechanically through the CMS).
Resequencing (operator ruling "a", 2026-06-14). Phase 0 (GHI #615) remains the burning emergency, but its correct fix — frontmatter-as-projection (see the rites amendment) — was found to be the tail of a dependency chain, not a standalone fix. Propulsion order is therefore: B.1 CMS (ADR-0.0.37) → Firewall foundation ADR → barcode + lifecycle doctrine (the GHI #615 cure) → skills-first enforcement (follow-on, prior-art-gated). Phase 0 still blocks the naive vocabulary edits it forbids; it no longer blocks the CMS work its own cure depends on. The skills-first enforcement follow-on (operator: "gzkit is doing a terrible job of forcing models/agents to use SKILLS FIRST") is filed as a prior-art-gated successor ADR; prior-art research landed 2026-06-14 (
docs/governance/prior-art-scaffold-firewall-2026-06-14.md) and finds the only structural skills-first primitive is a scopedPreToolUsedeny gate.Amendment (operator verbatim, 2026-06-14) — Constitution as enduring root; product-tree definitions booked. Operator: "this seems to stand in place longer than the advance of major versions of any given product" (cf. Anthropic's constitution). Ratified definitions (full text in the rites amendment): Constitution = the enduring normative charter, root by stability gradient (amendment cadence); PRD = per-major-release child (release cadence). The tree is ordered by rate of change — Constitution → PRD → ADR → OBPI — so the legacy
PRD → Constitutionspine (~12 surfaces) is backwards. Constitution ↔ invariant-registry is (iii) couple-as-projection: the charter is authored, the constitutional-invariant registry (ADR-0.0.37 CMS) + AGENTS.md are its mechanical render — the barcode doctrine at the root, "like Anthropic's."Chain coordination. The "barcode + lifecycle doctrine" step of the dependency chain is hereby scoped to carry the product-tree/lifecycle ADR, which: instantiates the Constitution charter (the root that observation shows does not yet exist —
PRD-GZKIT-1.0.0roots 73 ADRs today), wiresPRD.parent → Constitution, bridges those 73 ADRs, adds PRD + Constitution lifecycle state machines (F1=ii), and re-renders the backwards spine string across all ~12 surfaces. Sequence unchanged: CMS (ADR-0.0.37) → Firewall → product-tree/lifecycle (the barcode cure) → skills-first. Per "completion before reduction," this is build-as-found construction (the root is net-new), not a reductive string edit.Amendment (operator verbatim, 2026-06-14) — CMS↔hierarchy coupling; disclosure-tier ∝ inverse-volatility. Operator: "progressive disclosure is made possible by the cms and the cms is influenced by the hierarchy we are clarifying here." The three are one loop: hierarchy (stability gradient) → CMS tiers → progressive disclosure. Disclosure tier is the inverse of volatility: the enduring root (Constitution / constitutional-invariants) is the always-disclosed surface (gzkit's analog of superpowers' single always-injected bootstrap — prior-art § 1a/1d); volatile leaves (a specific OBPI / feature ADR) are disclosed on demand. The CMS's own remaining tier work — OBPI-0.0.37-23 (invariant-tier), -25 (retention-tier validator), the criticality-ordered renderer — are these tiers and MUST map onto the booked stability gradient.
Cycle-resolution (ruling "a" preserved; redline if wrong). The coupling is a back-edge: the CMS (sequenced first) is influenced by the hierarchy that the product-tree/lifecycle ADR formalizes later. It resolves because this session already booked the hierarchy definition (the stability-gradient ranking rule) — the only kernel the CMS needs to tier correctly. Therefore CMS proceeds first (ruling "a" intact) under one conformance constraint — its tier OBPIs map to the stability gradient — while the product-tree ADR's construction (instantiate the Constitution charter; wire
PRD.parent → Constitution) follows and builds the artifacts the CMS already knows how to rank. No re-sequence.Amendment (operator verbatim, 2026-06-14) — dispatch-layer drift-guards (#617, #618). "add those, but look again as some changes were made to the document." → A tracer-bullet diagnosis pass found Phase 0's "one set, N hand-synced copies, free to drift" pattern recurring on two dispatch surfaces distinct from the vocabulary layer: CLI handler resolution (#617 — 92
_lazy()refs across 3 byte-identical manifests) and validator dispatch (#618 —validate()enumerates 81 scopes across ~6 parallel lists; #394 is a proven self-include instance). Per completion-before-reduction, the single-source collapses are Phase I; only the additive drift-guard fences enter pre-1.0 scope, booked as E.4. Appendix A gains a structural-root note tying #618 to the validator-was-the-defect tail. The "decay class" is deliberately not elevated to a pillar — Phase 0 already carries the doctrine, and post-diagnosis churn-attribution (34/380 fix-commits ≈ 9% touch these files; most are scope additions, not desync fixes) does not support the stronger causal claim first floated.Amendment (operator verbatim, 2026-06-14) — governance-friction drainage empowered to the campaign. Operator: "this is GHI + campaign territory - I want to empower the campaign to remove the quagmire - when we discover the true fix, we will do GHI-direct fix or ADR/OBPI in a manner that is consistent with the campaign's aims. The campaign must take us out of the swamp." Also, on filing in the moment of discovery: "do not hesitate to make a needed GHI for the Magna Carta to absorb, you are the officer of the watch, you spotted the anomaly, you are making the report - if we defer, the in-context richness will be gone." → A standing governance-friction drainage discipline is booked. Ceremony-gate friction discovered in-session that is a stale-artifact-vs-reality mismatch (a stale brief/allowlist, a contradictory validator, a missing register path — not a code defect) is campaign territory, never a reflexive in-flight patch. The session surfaces it (insight + evaluator determination per
gz-obpi-pipeline§ Gate Friction: Evaluator Escalation) and files the GHI in the moment of discovery while the context is rich; the campaign owns sequencing the true root-cause fix, which routes as GHI-direct or ADR/OBPI consistent with campaign aims — discovered before the fix-shape is booked, never symptom-patched. In-flight--accept-*overrides are stopgaps that unblock one completion; each leaves a campaign-homed debt, not a resolution. Per "completion before reduction," additive drainage fences are pre-1.0 (Phase E.5); reductive collapses of the underlying surfaces defer to Phase I. The direct-fix moratorium is explicitly lifted for drainage-class GHIs (operator ruling, above): file at the moment of discovery, homed to E.5.Amendment (operator verbatim, 2026-06-14) — turn-end claim-grounding gate (#620) booked as E.6. Operator: "clock it, write it up, GHI it and get the Magna Carta to assimilate and order it. Do the job. make it better. PRIME DIRECTIVE." → Surfaced in a session reckoning on why agents "chronically make determinations about state that are usually not true" and whether "1000 controls" can make vibing inert. The diagnosis, grounded in a live in-session vibe (an agent relayed a handoff's "attested-complete" for OBPI-0.0.37-22 before reading the ledger — true only by luck, confirmed after at
.gzkit/ledger.jsonl:9937): the conversational-claim surface is ungated. AGENTS.md § Never #7 ("read the ledger, not frontmatter") is prose-only, and ADR-0.0.70's Stop-hook proves the turn-end seam can hold a fail-closed gate but covers ruff-on-git-dirty-.pyonly, fires after prose is emitted, and fails open. Booked as GHI #620 (defect+runtime; homes to the Phase E ceremony mechanization register row, reconciled on next triage) and as campaign item E.6 below. Per the governance-friction drainage amendment, the true root-cause fix shape is discovered before it is booked — a deterministic claim-checker is non-trivial (an LLM judge policing an LLM claimer relocates the vibe; "turtles"), so E.6's fix shape is a pending operator design conversation, not a symptom patch.Amendment (operator verbatim, 2026-06-14) — pure-A reconciliation of the off-campaign 0.0.65/0.0.72 "FULL SEND" session. Operator: "good with pure A, let it rip, update Magna Carta" — after reviewing a session-end handoff and ruling "65/72 is important ... let Magna Carta decide ... I caught the agent hand-authoring handoffs and thought it to be INCREDIBLY jank-ridden." → A prior 2026-06-14 session pulled an off-campaign override ("build BOTH ADR-0.0.65 + ADR-0.0.72, FULL SEND") and left handoff
.gzkit/handoffs/20260614T223440Z-ADR-0.0.65-0.0.72-handoff-campaign-session.mdadvising 7 more OBPIs across both ADRs. This contradicts the campaign on both: ADR-0.0.72 is a COLLAPSED tombstone (2026-06-13, "you cannot audit your way out of over-auditing"; OBPIs 01–04 marked DO NOT IMPLEMENT) whose real bugs are already re-homed as Phase E GHIs (#612, #575, #581); ADR-0.0.65 is deliberately deferred to C.4 (Phase A note: "do not 'fix' this omission"). Per § Cadence ("if handoff and campaign disagree, the campaign wins and the variance is reconciled into the campaign") the campaign wins. Reconciliation:
- ADR-0.0.72 stays collapsed — no resurrection. Its one landed, Gate-5 piece, OBPI-0.0.72-02 (HandoffFrontmatter explicit-superset reconcile +
validate_handoff_documentgate-wiring), IS the C1/C2/C3 fix that GHI #612 tracks; credited to #612 and flagged for closure at next triage. C4→#575 and brief-reconcile→#581 ride Phase E as already homed. The landed work is kept and credited; the tombstone is honored.- ADR-0.0.65 stays homed to C.4 — NOT pulled forward. Operator weighed resequencing (the hand-authoring jank is real and recurring) against fork-risk and chose pure A: C.4 redesigns the handoff system into the continuity hybrid, so building the standalone
create_handoff/scaffold_handoffAPI now would be throwaway. The most important coherence piece (#612) already landed; thevalidate_handoff_document/--lock-handoff-couplinggates are now live and green; C.4 owns the remaining API +gz handoffverb + scaffold ergonomics.- OBPI-0.0.37-23 (invariant-tier) was legitimate B.1 progress, not off-script — it is CMS tier work per the disclosure-tier amendment above. B.1 advanced 13/19 → 16/19 (
gz adr report ADR-0.0.37, 2026-06-14); the B.1 line below is updated to match.- Green floor (green-first gate).
uv run gz checkis red solely on the Behave stage (the other 30 gates pass, including the now-live Lock-handoff-coupling and Handoff-documents gates). Two distinct defects, now filed: #621 (constitutional_invariants--invariant-coherencefixture failures — the production validator itself passes; homed Phase B) and the cp1252 behave-pretty-formatter crash that masks it under redirected stdout (evidence added to the #582 encoding class, Phase E); plus sibling #622 (lock_manager.list_locksrsplit mis-parses full-slugobpi_ids — same class as the OBPI-0.0.72-02_write_reaping_handofffix, Phase E). Restoring green (fixing #621) is the immediate next work before B.1 opens under green-first.The jank is diagnostic, not incidental. The hand-authored handoff the operator caught IS the disease ADR-0.0.65 exists to cure — its
create_handoff/scaffold_handoffAPI is vaporware, so handoffs are hand-authored and bypass the validation gate. The cure is C.4; until it lands, handoffs route throughgz-session-handoff+validate_handoff_document. A validated superseding handoff replaces the off-script 223440Z handoff this session so the next refresh orients to restore-green → B.1, not OBPI-0.0.72-03.Amendment (operator verbatim, 2026-06-15) — Phase 0 reframed to Pydantic schema-enforcement of the data objects; frontmatter stays rendered + hands-off; B.1-terminal → 0 sequencing. Operator: "we are attending to schema validation through Pydantic within the Magna Carta, this is to create term uniformity with fillable artifacts like specs, ledgers, and receipts — the model has been vibing this entire time it seems." And: "Phase 0 the home that needs its prose reconciled to this Pydantic-enforcement framing … we need to fill it out more." → The "vocabulary config-first exorcism" prose was a parallel narrative that drifted off the engineering #615 actually names: the governance artifacts are regex-scraped, not schema-enforced, so their terms drift. The cure is to make the Pydantic models the enforced gate on the fillable data objects — the OBPI sidecar, ledger events, receipts — so term uniformity is structural. Frontmatter is NOT the fillable surface: per the standing 2026-06-13 barcode ruling it is rendered (merge of sidecar authorship + live ledger status) and hands-off — a model touching it ad hoc is a FOUL. Operator (2026-06-15): "If frontmatter is rendered, and the agent is told, 'hands off,' then we are likely to be better off in the long run." The enforcement skeleton already exists (observed 2026-06-15):
LedgerEventenforced;BriefStructureenforces only 3 of 600 briefs (parse_briefdefaultsstrict=False, 597 fall to unvalidatedLegacyBriefShape— the "597/600" in #615's title); receipts mostly modeled. Scope (operator ratified 2026-06-15): Phase 0 = the CMS-independent enforcement core — sidecar / ledger / receipt validation + ingesting the 597 briefs' authorship into validated sidecars. The frontmatter render (barcode projection + its--frontmatter-projectiongate + PRD/Constitution lifecycle state machines) is left to the existing CMS → Firewall → barcode chain, NOT Phase 0. Sequencing (operator "do it"): not parallel (two fronts breed the seams "completion before reduction" forbids) and not an immediate front-swap (B.1 CMS is 18/19, one increment from terminal). Land B.1 to terminal, then the Phase 0 enforcement core is the immediate next propelled item — it is genuinely CMS-independent. Q6 (brief enforcement) is resolved below as both-sequenced (A body-parser ingest → B validated-sidecar source).Amendment (operator verbatim, 2026-06-15) — compliance-strength family; moratorium scope. "ratify as drafted" → (1) Family. "Max strength of agent compliance" is one family of mechanical-defenses surfaces sharing a single mechanism (snapshot → scorecard → promotion-aging, owned by
ADR-pool.contract-surface-mechanical-defenses): contract-surface (AGENTS.md/CLAUDE.md),ADR-pool.obpi-authoring-mechanical-floor(gz specify),ADR-pool.skill-behavioral-hardening(skill prose), and the newly-bookedADR-pool.skill-surface-mechanical-defenses(skill structure). Pulled coherently in Phase G, reusing the shared mechanism — not four parallel ones. The skill-surface sibling lands with cadence, not pulled forward; green-first (#621) and the CMS marquee (B.1) keep their sequence. (2) Moratorium scope. The direct-fix moratorium stands as default for ad-hoc medium/large fixes; carve-outs are trivial smallest-honest-fixes under a green floor and drainage-class GHIs (homed to E.5). Trivial stale-authoring drift surfaced under a red floor rides a homed artifact as an absorbed finding (precedent: F1/F2/F3 onADR-pool.skill-surface-mechanical-defenses).Amendment (operator verbatim, 2026-06-16) — the Airlock North Star assimilated; alignment/tuning/renaming booked as E.7. Operator: "all goes to magna carta, commit. some alignment, tuning and renaming are in order. the process that had MOST earned its keep in gzkit is gz-obpi-pipeline." → A 2026-06-16 design dialogue produced a North Star for the act of working: the airlock (pack-in/pack-out — pre-flight seam-map → go/no-go on the way in; drift-diff → block/surface/resolve on the way out) over a two-graph of intent (LAW/pull, "what must I satisfy") and fact (OBSERVED/push, "what did I break"), traversed in four phases (design/build/fix/refactor). Captured at
work-phases-and-airlock.md(committedd544a306) and validated by a 5-pass apparatus scan of ~60 skills. Scan verdict: the model holds for the act-of-working; AIRLOCK-OUT + captain's-GO are already built (brief-reconcile / obpi-reconcile / validate = drift-diff; closeout/audit + operator-verbatim attestation + ledger = "authority decides, flight recorder") — empirical proof of "I have everything, it's just ungoverned." The structural gap is the unbuilt AIRLOCK-IN (no seam-map → go/no-go before work), the cure for the compounding, exit-discovered drift the GHI backlog records. The airlock also generalizes beyond four phases (sibling modes: intake, meta-governance, continuity, surface/repo-coherence) and the two-graph is edge-only (node-internal quality — the complexity cluster — is off-graph).gz-obpi-pipelineis the proven reference implementation ("MOST earned its keep"); the entry-airlock and the generalization extend FROM it, never reinvent. Booked as E.7 (additive; the generalization of E.4/E.5/E.6). Per completion-before-reduction: capture/scan landed (E.7a); the adopting foundation ADR, alignment, tuning, and entry-airlock build are constructive pre-1.0 items sequenced behind the current topmost work (Phase 0 / B.1 keep their order — no queue-jump); renaming is reductive-class → Phase I, operator-pre-ratified as "in order" so it is a committed reduction item, not deferred-indefinitely.Amendment (operator verbatim, 2026-06-17) — four-phase theory split to its own doc; theories elevated to a 1.0 completion gate. Operator: "have magna carta reference them, make it clear that we will never be complete with magna carta until those theories are realized/substantiated/make lawful." → The theory of the four phases (design/build/fix/refactor) is lifted to its own canonical doc
four-phases-of-work.md— proof-obligation per phase, the (intent × behavior) signature, the forbidden fifth cell (V.I.B.E.S.), and "a phase is the proof you can produce, not the intention you declare." The airlock doc's §4 now references it (no duplication — the coupled-surface drift this whole theory exists to forbid). Goal-state amended: a new 1.0 bar is added — the work-phase theories (four-phase + airlock/two-graph) must be realized (built), substantiated (apparatus-proven), and made lawful (the binding mechanism — adopting ADR and/or fail-close validators — is resolved within E.7, not pre-pinned). E.7 is therefore a 1.0 completion gate, not an optional Phase-E item — Magna Carta cannot reach 1.0 until these theories are law. This does not re-sequence the spine: Phase 0 / B.1 remain topmost; the gate binds completion, not order.**Amendment (operator verbatim, 2026-06-19) — the heap reckoning; the GHI
628 fidelity sweep incorporated as drainage + Phase-I census inputs.**¶
Operator: "don't forget what a garbage heap gzkit has evolved into - its painful to even work with now." And: "look at magna carta and look at your analysis here, incorporate. Unfuck." → An officer-of-the-watch report from the 2026-06-19 session (the GHI #622/#627/#628 sweep + a four-RED-validator repair) is incorporated. The operator's frustration is corroborated, not deflected: the anti-vibing machine has accreted the very surface it warns against (~90 validate scopes; waiver-on-waiver-on-waiver — a grandfather gated by a ratchet gated by a baseline; 833-line modules; 1,835 unlinked specs in the advisory drift). Per completion-before-reduction, the cure is build-out → prove → reduce (Phase I), made visible and booked here, never reflexive culling. This amendment does not re-sequence the spine (Phase 0 / B.1 / ADR-0.0.73 keep their order); it homes findings and records what landed under a green floor as sanctioned drainage.
Drainage filed (E.5). - #631 —
_score_architectural_alignment(src/gzkit/adr_eval_scoring.py:356 backtick-src/regex, :361 4-token precedent matcher) manufactures false-RED 1.0 scores;evaluation-justify-bindingthen fail-closes on the manufactured number, forcing agents to author justification documents that defend wrong scores — governance manufacturing its own RED then forcing theater to clear it. Validator-was-the-defect, extends Appendix A's #394 tail. Homed E.5; true root-cause fix (widen the lexicon / accept OBPI-brief src refs / re-score stale evals) sequenced by the campaign, not patched now. Interim: 8 groundedgz justifyartifacts (fe9c3c78) hold the gate green. - Sensitivity validate↔completion incoherence —--accept-security-floor(the rule's prescribed remedy for incidental overlaps) discharges at completion but does not satisfy the validate scope, which honors only declare / grandfather / narrow. Grandfather is correctly forbidden (it would breach the ratchetedsensitivity_floor_grandfather.jsonbaseline 87). This is a sibling-cut of the already-homed #462/#583 →pool.agentic-security-review; no new GHI filed (prior-art discipline). Immediate RED resolved truthfully on OBPI-0.0.73-05/-09 (0c605efd) since both genuinely wired logic into subprocess-spawning surfaces; the latent validate-time discharge-channel gap rides the existing pool home.Drainage direct-fixes landed (moratorium lifted, green floor). -
check-config-pathsfalse-positived on a forbidden-pattern detector string ("ops/chores/") and a template placeholder ("config/file.json"); added_EXEMPT_PATH_LITERALS(daeddfef, TDD). Class — a path-literal scanner with no exemption concept — noted for Phase I. -qc_binding.py(832 lines, over the 600 limit) split intoqc_binding.py(274) +_qc_negative_controls.py(576), behavior-preserving (36 NCs before/after,--qc-bindingself-test green,a06cf138). A reduction-class instance done early as sanctioned module-size drainage.#628 — the verification-theater facade class is drained for the pre-OBPI-08 corpus. 101 ADR Decisions were VALIDATED-without-thesis-exercised (the exact facade ADR-0.0.73 exists to close); all 101 now carry runnable
## Fidelity Assertions—gz adr fidelityis 102/102 green (commit08320022); thefidelity_presence_grandfather.jsonpopulation is 0 and the waiver-ratchet baseline ratcheted 101→0 (no new id may ever be added). ~29 rows are honestly WEAK (closest-green proxy command) because the ADR's own dedicated validator is unbuilt — governance-ahead-of-implementation, a sub-finding tying to E.3 (Draft/Proposed burn-down) and the full-pool build-out: each WEAK row sharpens to its true thesis command as that ADR lands its enforcer, not before. #627 was a no-op (already cured by OBPI-0.0.73-09's own implementation). #622 direct-fixed (92e979f4).Phase-I census inputs (NOT pre-1.0 action — extend Appendix A). The heap evidence is logged as reduction-pass inputs, never a pre-1.0 action list: the ~90-scope
validate()surface (theVALIDATOR_REGISTRYcollapse already E.4-fenced / Phase-I-owned per #618); the stacked waiver/grandfather/baseline surfaces, each now self-ratcheting (the stacking itself is the reduction target); the 1,835 unlinked-spec advisory drift (spec↔test coherence, a census/D-phase input). Per the standing doctrine these speak at Phase I with working proof, not by taste today.Amendment (operator verbatim, 2026-06-19) — Sanity Reduction track; Phase I pulled forward for named, parity-proven cuts. Operator: "yes, do what it takes to achieve sanity." (ratifying the pull-forward offered in the heap reckoning above). → Completion-before-reduction is overridden for a bounded Sanity Reduction track only. The standing doctrine still governs everything else; this carve-out authorizes specific, named reductive collapses before 1.0 because the heap is now ratified as bad enough to reduce now. Guardrails (binding — a reduction that violates any is a defect, not progress): 1. Behavior-preserving + parity-proven. Each cut ships a parity test that asserts the surface set is identical before and after (no scope, verb, or check silently dropped). Reduction never removes coverage — it removes duplication of the enumeration, not the enumerated. 2. Green-gated.
uv run gz checkgreen before and after each cut; each lands in its own coherent commit with the parity evidence. 3. One cut at a time. No bundled mega-refactor; each named surface collapses, verifies, commits, then the next. Named cuts (the pull-order): (a) #618 —validate()'s ~90 scopes across ~6 parallel hand-synced lists → a singleVALIDATOR_REGISTRY(E.4 fence becomes moot once the source is single); (b) #617 — 92_lazy()CLI handler refs across 3 byte-identical manifests → one; (c) #631 — the eval-scorer false-RED lexicon (drainage, not enumeration, but in-track for sanity); (d) the waiver/grandfather/baseline stack review (collapse what proves redundant; keep what each mechanism uniquely earns). Sequencing: the Sanity Reduction track runs alongside the topmost spine work as capacity allows — it does not preempt Phase 0 / B.1 / ADR-0.0.73, and it is not itself a 1.0 gate (sanity is the aim, not a new completion bar). Each cut that lands is checked off here with its parity-test + green evidence.Progress (2026-06-19, session boundary — context cleared after this). - #618 step 1 LANDED — the dispatch consistency fence (
tests/cli/test_validate_dispatch_consistency.py, commit7da9d680). The parity net theVALIDATOR_REGISTRYcollapse must keep green. - #618 step 2 LANDED — the six dispatch enumerations folded into oneVALIDATOR_REGISTRY(commitae82f9ac; parity prooftests/cli/test_validate_registry_parity.pygreen). RESIDUAL: the 78-paramvalidate()signature, the parser forwarding lambda, and the ~80add_argumentparser flags +_build_check_stepsare NOT yet registry-derived — GHI #618 stays OPEN with that remainder (its own ADR/OBPI per the GHI scope hint). - #617 LANDED + CLOSED — the 3 byte-identical_lazyresolvers collapsed to one sharedsrc/gzkit/cli/parser_handler_manifest.py(93 entries, zero collisions), guard-test-first (tests/cli/test_handler_manifest_resolves.py, commit664417ca). Operator waived the Phase-I deferral to land the reductive collapse together with the additive guard. - #631 LANDED + CLOSED —_score_architectural_alignmentwidened to the foundation-ADR shape (commit756786a6fix +dec9497dcleanup: re-scored 4 ADRs, retired 4 justify band-aids). Scope correction: the 8 false-RED band-aids had THREE root causes; the lexicon fix cleared 4 (0.0.26 / 0.0.51 / 0.0.56 + stale 0.0.64). Routed remainder: ADR-0.0.73 Feature Checklist → ADR-0.0.73 item 7; ADR-0.47.0 / 0.49.0 / 0.50.0 phantom packages → orphaned-eval triage. - #632 OPEN (E.5 drainage) — tautological-test-audit brittleness, unchanged. - Cut (d) REVIEWED — NO COLLAPSE WARRANTED (2026-06-19). Full inventory of the 13data/*waiver/grandfather/baseline surfaces (registry read first-hand + per-file consumer grep acrosssrc/gzkit/): each surface holds non-interchangeable data (OBPI/receipt/ADR IDs vs brief paths vs op-records vs line counts) feeding a distinct gate via a distinct consumer — none dead, none duplicate. The stacking the cut targeted was already collapsed by ADR-0.0.73 BI#8 into the singlewaiver_ratchet_registry.jsonmeta-validator (10 surfaces + 1 excluded, each declaring one honesty mechanism). Merges rejected: the twotautological_*and twosurface_weight_*pairs use separate load fns for separate roles (ceiling vs exemptions; floor vs band-override); the baseline-0 grandfathers are intentional permanent locks. Residue is irreducible — the last named cut closes as a substantiated negative (Phase-I census input, per the named-cuts framing). Side-observation logged toagent-insights.jsonl: shrink-ratchet baselines now carry slack (current < baseline) and could be re-tightened — a baseline-tightening action, not a collapse. - Still-awaiting (surfaced, unrouted): phantom-ADR orphaned evals (0.47.0 / 0.49.0 / 0.50.0) and pre-existing control-surface drift (gz validate --surfacesflags it; the pre-commit hook does not gate it) — investigate cause before anygz agent sync. - NEXT (resume here): the Sanity-Reduction named-cut pull-order is exhausted (a/b/c landed-or-closed; #618 residual routed to its own ADR/OBPI; d reviewed). The sequenced topmost ADR-0.0.73 QC-binding meta-audit is DONE (9/9, closed out + g0-attested 2026-06-19); the spine advances to B.1 — ADR-0.0.37 real corpus rebuild (reopens behind the completed 0.0.73), then Phase 0 (0.2–0.8). - Floor green at boundary (uv run gz check✓,mainsynced atdec9497d).Amendment (operator verbatim, 2026-06-20) — ADR-0.0.74 MX Mode seated as the topmost P0; B.1 paused behind it. Operator: "handoff and magna carta are stale, 0.0.74 should be a P0 issue, look." → A status review found both steering surfaces blind to ADR-0.0.74-mx-mode-maintenance-hangar (authored 2026-06-20, foundation/heavy, 10 OBPIs, 0/10). It postdates the campaign's last amendment (2026-06-19) and the most-recent handoff (
20260619T231600Z-b1-increment-2-corpus-enrichment.md), so neither sequences it. The ADR's own Intent declares it a "Magna Carta L.0 imperative (immediate)" — P0 by self-ratified text, ahead of B.1. Ruling (operator, this exchange): pause B.1, land 0.0.74 first. Rationale (ratified): B.1 Increment 2's pending_FRESHNESS_FAIL_CLOSED=Trueflag-flip is the exact hand-set staging flag OBPI-0.0.74-09 deletes and generalizes — running B.1 first would hand-set the very flag the hangar exists to retire. After 0.0.74 lands, the freshness gate resolves its severity through the one MX marker mechanism, and B.1 Increment 2 resumes against that honest path (its flag-flip step is subsumed, not performed). Per completion-before-reduction this is construction (the hangar is net-new), not a reductive edit. TheTopmost (sequenced)marker below is updated in the same breath; the stale B.1 handoff is superseded so the next SessionStart orients to 0.0.74.
Authority and amendment (Magna Carta discipline)¶
- It steers; the spine propels. The governance spine (PRD → Constitution → ADR → OBPI → REQ → TASK → Attestation) and GHI repair remain the primary propellants of the work. Every campaign item executes through its governed path — OBPI pipeline, closeout ceremonies, defect-fix routing — exactly as before. The campaign refines and facilitates that machinery toward 1.0: it sequences ceremony, it never substitutes for it, bypasses a gate, or competes with it as a parallel work-ordering system.
- It rules the sequencing. Every session works this plan's topmost
unchecked item whose gate is met. Handoffs, triage briefs, and the MOTD
ADVISE; the campaign governs what is pulled next. No work stream runs
outside it except
emergency-labeled interrupts (§ GHI emergence discipline rule 3), which the campaign itself defines. - It is surfaced mechanically.
scripts/session_orientation.pyrenders the campaign as the FIRST section of every SessionStart digest — plan path, burn-down count, topmost unchecked items, and the authority note. A session that starts without the campaign in view is a defect (collect_campaigncontract,tests/scripts/test_session_orientation.py). - It is living. Checking items off with observed command evidence and regenerating the GHI register are routine session work. Amendments — scope changes, phase changes, new overrides — require operator ratification, recorded in place with the operator's verbatim words, exactly as the rulings above are recorded.
- It dies only by succession. Per the MOTD campaign doctrine ("campaigns supersede in place"), only a ratified successor campaign retires this plan — never silence, never drift.
Doctrine (operator verbatim, 2026-06-10): "I want to build out gzkit, as found, as comprehended, and ONLY THEN make reductive decisions. where it is redundant, I want to know after it is proven; where it is dead/hollow, let an implementation show that; where it works, let working proof speak."
Completion before reduction. Every reductive move (cull, retire, merge, optimize, straighten) is deferred to the post-1.0 reduction pass (Phase I). Mid-campaign course-corrections amend the census; they never change direction. This is the structural cure for the named failure mode: partial corrections leave seams that ensnare later sessions because no model co-owns the whole.
Succession¶
This campaign subsumes and supersedes all prior plans (operator ruling, 2026-06-10), per restore-health's own § Session MOTD §5 doctrine ("campaigns supersede in place"). Operating Rule 1 is preserved: one active plan; this file is the plan. Superseded artifacts (retained on disk for audit, each carrying a supersession banner pointing here):
| Superseded artifact | Was |
|---|---|
return-to-health-plan-2026-05-30.md |
Active canonical recovery plan (emergencies, Tier-0 fires, snapshots A–N) |
ultraplan-brief.md |
Single planning input for ultraplan (restore-health convergence) |
restore-health-convergence-roadmap.md |
Layer-3 sequencing view over the ultraplan brief |
docs/design/ARCHITECTURE-PLANNING-MEMO.md is retained as a historical
doctrine source, not superseded wholesale — but its Boundaries 1–2 are
overridden below. Per-OBPI plan files under .claude/plans/ are execution
artifacts of their briefs, not campaign plans; they are untouched.
Restore-health's unfinished threads are carried forward here, not orphaned:
- #519 (sole open emergency; codex 258K window) → cured inside Phase B (CMS completion — near-top by operator amendment, 2026-06-10) by the ADR-0.0.37 build-out (<15k registry-projected surface, GHI #533) + Gate 5. Closing it fills restore-health's Recovery Closeout retroactively.
- Phase 3/4 GHI register (~38 open) → absorbed into the steady-state triage cadence (§ Cadence).
- The green floor (ADR-0.0.68, Validated) remains the standing invariant:
uv run gz checkgreen onmainat every session boundary, enforced by the pre-push gate + session-green-gate validator.
Four prior directives are explicitly overridden by operator ratification of this campaign (quoted verbatim per DO IT RIGHT 6h):
- Definition of Healthy: "New doctrine, new foundation ADRs, and new validators are frozen unless they directly repair a failing gate." → Replaced by: booked-surface completion and promotion/booking ceremonies are always in scope; unbooked doctrine remains frozen until 1.0.
- ultraplan-brief P3: "these are additive — pace by felt need, not momentum." → Replaced by campaign-cadence burn-down (§ Cadence).
- AGENTS.md § Architectural Boundaries 1: "Do not promote post-1.0 pool ADRs into active work." → Overridden by the full-pool-build-out ruling (Scope decision 1): every live pool item reaches a terminal disposition before 1.0.
- AGENTS.md § Architectural Boundaries 2: "Do not add more pool ADRs to the runtime track." → Same override. The rendered AGENTS.md is amended through the governed corpus path (invariant-coherence byte-compares it; no direct edit) — tracked as Phase B.3.
Scope decisions (booked 2026-06-10, operator dialogue)¶
| # | Decision | Ruling |
|---|---|---|
| 1 | Pool participation | Full pool build-out. All 139 live pool items are processed through the promotion pipeline to a terminal disposition: promoted-and-built, or parked/superseded only when promotion-stage evidence (overlap with a landed surface, absorption shown by implementation) proves it — never by taste. No item left undecided at 1.0. |
| 2 | Canon Foundation workstream | Booked into 1.0. Its ADR(s) are authored early in Phase E; build proceeds in increments per the workstream's §12 ("design covers all; build increments"). |
| 3 | Per-ADR done-bar | Validated or operator-parked. Every booked ADR reaches Validated (audit ceremony) OR is consciously parked by operator attestation with a named reason. Parking is a completion decision and prime Phase-H evidence. |
| 4 | First-wave sequencing | In-flight first, then MOTD. ADR-0.0.69 (02–04) and the ADR-0.0.41 closeout land before the MOTD build opens. Amended same day (operator): CMS completion inserted between in-flight closure and MOTD — "the CMS system must be prioritized as a near-top priority." |
Identity sequence (booked earlier same dialogue): research instrument + published exemplar → personal toolkit → public product. 1.0 serves the first identity; adoption work is not a 1.0 gate.
Goal state — the 1.0 definition¶
gzkit is 1.0 when ALL hold:
- Census reads 100% terminal — every booked foundation + pre-release ADR is Validated or operator-parked; every live pool item has a terminal disposition (built or evidence-parked).
- MOTD shipped per its exit criteria (restore-health § Session MOTD §8): login briefing with 3–5 priority moves, logout continuity, two logrotating logs, advisory-only doctrine.
- Canon Foundation ADRs Validated (or operator-parked with named reason).
- Declared surfaces wired: the 6 manual-only validator scopes
(
router-tables,orphaned-implementation,brief-command-shape,brief-demo-section,brief-cross-references,scenario-reachability) run on a governed cadence; the 3 provenance-gap scopes (advisor-proof-binding,intrinsic-attestation,pointer-anchors) have booked origins; the absorbed pool-triage design (ADR-0.0.46/47) has its surface. - #519 closed; no open emergency; restore-health Recovery Closeout filled.
- Green floor holding; GHI backlog at steady-state triage scale.
- Work-phase theories are lawful — the four-phase theory
(
four-phases-of-work.md) and the airlock + two-graph (work-phases-and-airlock.md) are realized (built — entry-airlock + apparatus alignment), substantiated (apparatus-proven), and made lawful (the binding mechanism is resolved within E.7, not pre-pinned here). Per operator ruling 2026-06-17, Magna Carta is not complete until E.7's theories are law. - v1.0.0 released through the patch-release ceremony.
Phases¶
Green-first is inherited: no phase opens while
uv run gz checkis red. Until MOTD ships (Phase C), this file's checklist is the workplan — sessions work top-down, check items off with observed command evidence.Topmost (sequenced): ADR-0.0.74-mx-mode-maintenance-hangar (MX Mode — Maintenance Hangar) is the topmost P0 pull (operator-ratified 2026-06-20 as a "Magna Carta L.0 imperative (immediate)"; foundation/heavy, 10 OBPIs, 0/10). B.1 (ADR-0.0.37 real corpus rebuild) is PAUSED behind it — it resumes only after 0.0.74 lands, because B.1 Increment 2's
_FRESHNESS_FAIL_CLOSED=Trueflag-flip is the exact staging flag OBPI-0.0.74-09 retires; post-0.0.74 the freshness gate resolves its severity through the MX marker and B.1's flip step is subsumed (not performed). Pull-order: 0.0.74 (OBPI 01→10) → B.1 ADR-0.0.37 corpus rebuild (Increment 2 resumes against the marker mechanism) → Phase 0 enforcement core (0.2–0.8). Prior context retained — ADR-0.0.73 QC-binding meta-audit is DONE (9/9 OBPIs; closed out + g0-attested "Completed" 2026-06-19 — ledgerattested12:36 /lifecycle_transition→Completed 12:37); B.1 Increment 1 LANDED 2026-06-19 (commitc070f28a): OBPI-0.0.37-22's mechanism re-built honestly —gz content commitpromotion seam, corpus content-fingerprint freshness gate (staged warn→fail per OBPI-0.0.41),rendition_committedevent; OBPI-22 staysrepudiatedby design. When B.1 resumes: corpus enrichment → attested compose+commit → marker-resolved freshness →gz obpi completeOBPI-22 → then 02/03 re-point, 21 re-verify, B.2/#519, B.3. This marker is the ratified pull-order — it overrides naive top-down because the prose amendments reorder the spine (B.1 reopens behind ADR-0.0.73). The Phase-0 checkboxes print first in document order but are not what is pulled next; the SessionStart digest (collect_campaign) surfaces this line as "Topmost (sequenced)". Update it in the same breath as any resequencing amendment.
Phase 0 — EMERGENCY: Schema-enforce the fillable artifacts (GHI #615)¶
New entry in the Phase 0 hot-store (operator verbatim, 2026-06-16) — the ADR-0.0.37 verification-theater facade + QC-binding meta-audit. Phase 0's model is already correct — a standing hot store for emergencies; this is a new one dropped in, not a re-purpose. A closeout-skepticism pass exposed ADR-0.0.37's CMS pipeline as "a bullshit facade" ("the current kludge is embarrassing"): the implementation hollowed every stage the ADR faithfully specified (corpus never enriched; composer validates instead of compressing from the corpus; rendition hand-authored and disconnected; the temperature dial projects nothing). Four OBPIs repudiated (02/03/21/22,
model-induced-fabrication). Root finding: the QC machinery never caught it —gz adr audit/gz obpi auditverify receipt-presence + REQ-coverage, never truth (afixture == fixturetautology satisfies coverage); the audit trust model literally "does NOT re-verify." Operator: "if it doesn't catch this sort of thing, then it is bullshit … we clearly need a meta skill that ensures that these qc steps exist and support the pipeline." The cure — a QC-binding meta-audit — is Phase 0's natural sibling to #615: #615 binds the data objects (specs/ledgers/receipts via Pydantic); the meta-audit binds the QC steps (gates/audits/validators/closeout) so each is bound + fail-closed + wired (not prose, fixture-only, mtime-only, empty-input, copy-vs-self, or parked in an unpromoted pool ADR), and every ADR Decision ships executable fidelity assertions the audit runs against the real system. It is the alignment gate. Sequencing: the meta-audit lands before the real ADR-0.0.37 corpus rebuild (B.1, now REPUDIATED/PAUSED), which re-opens behind it — without it any rebuild rots back into facade. The meta-audit must pass its own check.Status (2026-06-16): design complete + operator-approved; BOOKED as ADR-0.0.73 (foundation, heavy,
verification-layer-binding-audit, 6 OBPIs) — 0/6 OBPIs at booking; LANDED + CLOSED OUT 2026-06-19 — 9/9 OBPIs attested, ADR g0-attested "Completed" (ledgerattested12:36 /lifecycle_transition→ Completed 12:37); the ADR self-check is green (gz validate --qc-bindingexits 0). Refinement baked in from the pre-mortem: detection is behavioral, not declarative — each QC step ships a negative-control fixture it MUST fail on, run by--qc-binding(self-registration + static heuristics alone are gameable). Essential cure = OBPIs 03+04 (## Fidelity Assertions+gz adr fidelityrun by closeout/audit), which alone would have caught the ADR-0.0.37 facade. Full locked design + booking steps in handoff.gzkit/handoffs/20260616T091837Z-adr-0.0.37-facade-qc-binding-meta-audit.md.Finding (2026-06-20, live control-by-control review) — the "self-check green" above is resting on a gamed cure;
--qc-bindingdoes NOT catch the ADR-0.0.37 facade it was built for. Both detection channels are defeated. Channel 1 (the 6+1 static theater signatures) is inert:theater_flagsis hardcoded[]on every real step (qc_binding.py:147/:196;QCStepisfrozen, so nothing can populate it). This is the exact "theater_flags hardcoded empty" defect OBPI-0.0.73-02 was repudiated for (2026-06-18); the 2026-06-19 recovery wired only the negative controls, not channel 1. Channel 2 (the behavioral negative-control — this entry's named "essential cure") is itself gamed: the rendition-gate NCs forcefail_closed=True(_qc_negative_controls.py:164/:194), a mode the live gate never runs, so the inert rendition gates (the ADR-0.0.37 facade) are certified genuine. The cure that "alone would have caught the ADR-0.0.37 facade" does not catch it. Disposition: MX fix/repair — pure fix, no ADR (MX doctrine). Channel-1-done-right = the army-of-agents semantic test-audit (assessed-mode-vs- live-mode mismatch, inertness-certifying tests); channel-2 fix = an NC MUST exercise the LIVE configuration, never a forced counterfactual. Under the levels+MX rebuild (ADR-0.0.74) each gate becomes a<subject>_<property>_<disposition>T/F sensor emittingGZ_<LEVEL>to the ledger; MX drains the accrued debt. Connector: open GHI #634 ("repudiated OBPI renders ATTESTED COMPLETED") likely explains OBPI-02'sstatus: Completedfrontmatter vs its "pending re-attestation" body. Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Finding (2026-06-20, control-by-control review, Station 3) — the behave/waiver-ratchet deadlock that triggered ADR-0.0.74-01 is a KIND-BLIND behave gate, not a waiver-ratchet defect.
audit_behave_req_tags(briefs.py:524) computesmissing = [r for r in req_ids if r not in tagged_reqs]with no kind filter — so it demands a@REQscenario for every REQ, including SUPPORT and STRUCTURAL-FENCE REQs that ADR-0.0.59 routes to other proof channels. The kind-aware REQ-coverage gate exempts them (obpi_complete.py:592:if req_kinds.get(req, "BEHAVIOR") in ("SUPPORT", "STRUCTURAL-FENCE"): continue); the behave gate simply lacks that line. Deadlock: a structural REQ can't be tagged (shouldn't need to) and can't be waived (adding tobehave_coverage_waivers.jsongrows the list and trips the waiver-ratchet shrink-only baseline 522). It is ALSO redundant with@covers(both count the samefeatures/**@REQtags). waiver-ratchet is GREEN — not at fault. Disposition: MX direct-fix, no ADR — mirror the:592kind filter intoaudit_behave_req_tags(~3 lines, single module). Under the levels+MX rebuild it becomesbehave_coverage_aligned(T/F, kind-scoped) emittingGZ_WARNING, not exit 3. Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Finding (2026-06-20, control-by-control review, Station 4) — whole-repo audits gate individual OBPI completion (real friction), but the original
audit_pydantic_modelsexample is RETRACTED. Correction (verified):--pydantic-modelsis anexplicitvalidate scope (validate_cmd.py:249), absent from_build_check_steps()(commands/quality.py:324) — so it is NOT agz checkstep and NOT dragged into OBPI completion. The real completion-coupled whole-scope gates ARE ingz check:audit_insights_shape(validates the entire append-onlyagent-insights.jsonlevery run,insights.py:88, wired:344),lock-handoff-coupling(whole-ledger replay),waiver-ratchet(whole registry + data scan),tautological test audit(whole tests AST). These are GREEN checks (real, working), not facade — the defect is completion-coupling: a pre-existing violation anywhere blocks the OBPI in front of you (the "freeze on an unrelated blocker" friction). Disposition: re-level under MX, do not delete — whole-repo violations become accruedGZ_<LEVEL>debt on the ledger that MX drains, NOT hard completion blockers; the OBPI's own diff gates its completion, whole-repo health is a separate accruing sensor. Constraint (2026-04-18 outage lesson): leveled debt MUST stay VISIBLE (ledgered) — that outage was silent accumulation, so leveled+ledgered is not silent. Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Finding (2026-06-20, control-by-control review, Station 5) — the OBPI lock is the CATEGORY ERROR confirmed in code: custody (mutual exclusion) forced to pay grounding's tax. To release a lock,
obpi_lock.py:216-225fails closed (exit 3) without a handoff or--abandon— a custody act gated on grounding evidence, near-vacuous for a single operator. Five grounded defects (verified, not from the sweep): (1) completion never releases the lock (GHI #619) —delete_lockhas twosrccallers (obpi_lock.py:64claim-replace,:228explicit release), zero in anyobpi_completepath; (2) release fail-closed on a handoff (:216-225) — the tax; (3) TTL drift ~12× (GHI #604) — preflight fallback 120m (preflight.py:51),LockData.ttl_minutesno default (lock_manager.py:50), canon 1440m (token-block-discipline.md:73); (4) two divergent reapers —lock_manager.reap_expired_lockspays full tax (:313-333) vspreflight._apply_cleanupraw-unlinks with zero ledger (:76-77); (5) SessionStart auto-reap is fiction — onlysrccaller isobpi_lock.py:295(gz obpi lock list);session_orientation.pynever calls it. GREEN to keep: the O_EXCL claim primitive and the ceremony turn-lock (ceremony_state.py, custody done right). Disposition: model the lock as a lightweight LEASE — O_EXCL + TTL auto-expire; contention emitsGZ_NOTICE/GZ_WARNING, not a fail-closed ceremony; release/reap = plain unlink + ledger event; the handoff is agent-context, never lock-release evidence. Routing split: defects 1/3/4/5 = direct-GHI MX fixes; the de-tax (defect 2 — remove handoff-as-evidence from release) RELAXES token-block Sub-Invariant 5 and amends ADR-0.0.41 — PENDING operator ratification (not yet ruled). Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Finding (2026-06-20, control-by-control review, Station 8 — footguns + a meta-catch). (1) docstring/comment-form
@coversis a signal footgun (REAL): a decorator@coversrecords a runnablefunc_namesource (traceability.py:336); a docstring/comment@coversrecordsstr(py_file)(:368) — a coverage edgegz coverscounts but completion cannot run, so the discovery signal and the completion gate disagree (the trap that bit OBPI-0.0.74-01). Fix:GZ_NOTICEat discovery ("counted but not runnable"), direct-GHI. (2) "opt-in coupling validator" RETRACTED:--lock-handoff- couplingDOES run ingz check(_build_check_steps:352); the"explicit", False(validate_cmd.py:348) only skips the baregz validateumbrella. (3) META-CATCH (matters more than either footgun): this is the SECOND false "explicit/opt-in = not enforced" sweep claim (first:audit_pydantic_models, Station 4). The sweep conflated "explicit in thegz validateregistry" with "not ingz check" — two separate dispatch paths;_build_check_steps()is the real completion-enforcement list. Any remaining sweep "opt-in/not-enforced" claim is suspect and must be cross-checked against_build_check_steps. Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Finding (2026-06-20, control-by-control review, Station 9 — GREEN confirm; review COMPLETE, 9 stations). Preserve & emulate (not bullshit): the floor (Gate 5 attestation, ledger append-only, operator-PII, secrets — never relaxed); verified-this-session GREENs — compose-time
assert_invariant_verbatim(composer.py:57, the one real rendition-cluster enforcement),waiver-ratchet(live, self-tested),audit_insights_shape(insights.py:79, real schema lock), and kind-discipline (obpi_complete.py:592) — the MODEL the rebuild emulates (behave + the rendition gates are RED precisely because they are not kind-aware); sweep-sourced GREENs to spot-verify — the O_EXCL claim primitive, the ceremony turn-lock (ceremony_state.py, custody-done-right), attestation-receipts. Review synthesis: cut the facade (rendition gates, qc-binding's two dead channels) and the friction (whole-repo completion-coupling, kind-blind behave, custody's grounding tax); keep the floor + the few real checks; make severity oneGZ_<LEVEL>system MX drains. Open, unbooked-as-ruled: the de-tax ratification (relax token-block Sub-Invariant 5 / amend ADR-0.0.41). Source: handoff.gzkit/handoffs/20260620T180109Z-levels-mx-gzkit-lobotomy.md.Reframed (operator verbatim, 2026-06-15): "we are attending to schema validation through Pydantic … to create term uniformity with fillable artifacts like specs, ledgers, and receipts — the model has been vibing this entire time it seems." The prior "Vocabulary Config-First Exorcism" prose was a parallel narrative that drifted off the engineering. The defect #615 names is exact and measured: the governance data objects are regex-scraped, not schema-enforced, so their terms drift freely — V.I.B.E.S. at the canon layer, the governance surface become the slop it exists to prevent. The cure is to make the Pydantic models the enforced gate on each fillable data object — the OBPI sidecar, ledger events, receipts — so uniform terms are structural. Frontmatter is rendered, not filled (2026-06-13 barcode ruling): it is the merge of sidecar authorship + live ledger status, and is hands-off to the agent. Operator (2026-06-15): "If frontmatter is rendered, and the agent is told, 'hands off,' then we are likely to be better off in the long run." One GHI carries it — #615 — the sole badge; no others are filed.
The skeleton already exists — we fill it out (observed 2026-06-15): - Ledger — enforced.
LedgerEvent.model_validate()gates every event (src/gzkit/ledger.py:279). The done side. - Specs (OBPI briefs) — 3 of 600 enforced.BriefStructureis real (src/gzkit/governance/brief_structure.py:33; Pydanticextra="forbid", Literallane/status), butparse_brief()defaultsstrict=False, so 597 briefs fall to the unvalidatedLegacyBriefShape— the literal "597/600" in #615's title. The cure moves authorship into a validated sidecar (frontmatter then renders from it, in the barcode chain). The marquee gap. - Receipts — mostly modeled (ObpiReceiptEvidence,AttestationReceiptEntry,AuditReceiptEmittedEvent, …); audit the unmodeled remainder.Mechanical 10-phase detail lives in the rites
vocabulary-config-first-exorcism-GHI-615.md; this checklist is the steering layer over it.Sequencing & scope (operator ratified 2026-06-15; supersedes the 2026-06-14 note). Phase 0 is the CMS-independent enforcement core — Pydantic validation of the sidecar / ledger / receipt data objects + ingesting the 597 briefs' authorship into validated sidecars. The frontmatter render (barcode projection +
--frontmatter-projectiongate + PRD/Constitution lifecycle state machines) stays in the CMS → Firewall → barcode chain, NOT here. So this phase is not parallel to B.1 (two fronts breed the seams "completion before reduction" forbids) and not an immediate front-swap (B.1 CMS is 18/19, one increment from terminal). Land B.1 to terminal, then the Phase 0 enforcement core is the immediate next propelled item — it is genuinely CMS-independent. Q1 of the rites Open Decisions is already ratified (TitleCase frontmatter / snake_case ledger).
- [x] 0.1 Ratify Open Decisions (rites §6) — complete 2026-06-15. Q1 (TitleCase frontmatter / snake_case ledger) prior; Q2–Q6 ratified this session:
- Q2 OBPI frontmatter status:
{Draft, Active, Completed, Abandoned, Drift}(5-term;attested_completed/validatedstay Layer-2 ledger truth, never frontmatter — state-doctrine + § Never #7). - Q3 ADR status: airlineops' 8 verbatim
{Pool, Draft, Proposed, Accepted, Completed, Validated, Superseded, Abandoned};Pending→Proposed,Deprecated→Abandonedremapped during the sidecar ingest. - Q4 lane casing: TitleCase
{Lite, Heavy}in the sidecar + rendered frontmatter (ADR + OBPI); ledger/internal stays lowercase. - Q5 PRD vs Constitution status: kept distinct — PRD
Approved, ConstitutionRatified(different artifacts; unification deferred to Phase I). - Q6 brief enforcement: both-sequenced (see 0.5 + note below).
- [ ] 0.2 Source + Config-First AST guard (rites P1) —
governance/vocabulary.pyper-artifact frozensets + loader + frozen fallback + AST policy test. The frozensets feed the models' Literals; substrate, not a parallel surface. - [ ] 0.3 Bind the models (rites P2) —
core/models.py+brief_structure.pyvalidators derive from the source; extendtests/test_schemas.pyto assert against it, not copies. - [ ] 0.4 Bind the schemas (rites P3) — generate JSON
enums from the source + schema↔source drift-guard. Kills theobpi.json/obpi_brief_structure.jsonlane-casing contradiction. - [ ] 0.5 Enforce the specs (rites P4+P8) — both-sequenced; enforcement core only: bring every brief's authorship under a validated sidecar, A-ingest then B-source, never big-bang. Frontmatter render is the barcode chain's job, not this.
- [ ] 0.5a A — body-parser ingest (bridge). A robust parser reads each
legacy brief's hand-authored frontmatter ONCE → populates the validated
<artifact>.gz.jsonsidecar (ledger wins on conflict; dry-run + per-file report). One-time migration, idempotent. - [ ] 0.5b B — validated sidecar (source). The sidecar is the fillable,
Pydantic-validated authorship surface; the brief validates via the sidecar
model — no
LegacyBriefShapeescape in the gate path. Going forward authoring tools write the sidecar, never frontmatter. - [ ] 0.5c Precedence (sub-requirement, fail-closed). Sidecar + ledger are authoritative. Frontmatter is render-only and hands-off — a model touching it ad hoc is a FOUL (2026-06-13 ruling). Phase 0 never reads frontmatter as source.
- [ ] 0.5d Boundary to the barcode chain. The frontmatter render (merge
sidecar + live ledger status) and its
gz validate --frontmatter-projectionre-render + byte-compare gate are the barcode / product-tree chain's deliverable (CMS → Firewall → barcode), NOT Phase 0. - [ ] 0.6 Enforcement lattice (rites P5) —
gz validate --vocabularycorpus-conformance scope, fail-closed, wired intogz check. - [ ] 0.7 Authoring tools + parser-sprawl + skills/docs (rites P6,7,9) — scaffolders emit canonical terms; the ~14 ADR-frontmatter hand-parsers route through the models; inline-list lint.
- [ ] 0.8 Close GHI #615 (rites P10) — citing landed commits + the enforcement lattice; acceptance = rites §8.
Resolved — brief-enforcement model (rites Q6; operator verbatim, 2026-06-15: "why not both?"). Both, sequenced: A (robust body-parser) ingests legacy briefs → B (validated sidecar) becomes the source, never simultaneous. The parser is not throwaway — it is the one-time legacy-ingest bridge that moves hand-authored frontmatter into the validated
<artifact>.gz.jsonsidecar (ledger wins on conflict); thereafter the sidecar is the fillable source and frontmatter renders from it. Authorship lives in exactly one place (the sidecar); frontmatter is render-only and hands-off — the FOUL guard of the 2026-06-13 ruling, not a dual-source merge. The frontmatter render + its--frontmatter-projectionbyte-compare gate are the barcode chain's deliverable, not Phase 0. Whether the body-parser becomes vestigial after full ingest is a Phase I reduction question ("let an implementation show that"), not a now-decision.
Phase A — In-flight closure¶
- [x] A.1 OBPI-0.0.69-02 (structural-fence channel boundary-invariants
anchor) —
attested_completedpergz adr report ADR-0.0.69(verified 2026-06-10; ADR at 2/4) - [x] A.2 OBPI-0.0.69-03 (closeout-proof derived view + gate repoint) —
attested_completedpergz adr report ADR-0.0.69(verified 2026-06-10; ADR at 3/4). Active-ceremony freshness gate (24h) added per operator ruling; ADR-0.0.41 OBPI-02/03 repointed; pool-ADR task-envelope carve-out gap closed - [x] A.3 OBPI-0.0.69-04 (retire
ln:surface; supersedes #599) —attested_completedpergz adr report ADR-0.0.69(verified 2026-06-11; ADR at 4/4); landed in commitc60c89e4(retire deadln:consumer chain, GHI #601) - [x] A.4 ADR-0.0.69 closeout ceremony → Validated —
Lifecycle: Validatedpergz adr report ADR-0.0.69(Phase-2 audit ceremony 2026-06-11; operator attestation "accept audit";validatedreceipt in ledger;audit/AUDIT.md). Independent spec-reviewer + quality-reviewer both GREEN; 3 non-blocking findings routed (F1→GHI #573, F2/F3→ADR §Post-Validation Notes) - [x] A.5 ADR-0.0.41 Validated 2026-06-12 —
Lifecycle: Validatedpergz adr report ADR-0.0.41(closeout ceremony → Completed + operator "attest completed"; Phase-2 audit ceremony → Validated + operator "accept audit";validatedreceipt in ledger;audit/AUDIT.md). OBPI-01/02/03/04attested_completed; OBPI-05 operator-withdrawn (obpi_withdrawn, superseded by ADR-0.0.65 — handoff-surface REQs; warn-then-reap lock-lifecycle piece carried to GHI #603, Phase E). OBPI-0.0.41-04 (lock-handoff coupling validator →gz validate --lock-handoff-coupling, in the defaultgz checkchain) landed3043819b. In-flight repairs: orphaned 173-min OBPI-03 lock that had stalled the OBPI-03 push (failed pre-push Preflight) reaped viagz preflight --apply(relates to Phase-E #578/#564);closeout_proofvalidator gap (didn't honorobpi_withdrawn/waived REQs — would block ANY ADR closeout with a withdrawn OBPI) fixed with TDD infix(closeout-proof)e1a32cf1. Non-blocking audit shortfall F2 (TTL default canon-24h vs CLI-120m) → GHI #604 (Phase E).
ADR-0.0.65 (handoff system, in-flight at 1/4) is deliberately NOT closed here. Its terminal disposition lands with the MOTD build (C.4), which absorbs it per the ratified MOTD design — completing it standalone in Phase A would fork the very system C.4 consolidates. Do not "fix" this omission.
Exit gate: 0.0.69 and 0.0.41 terminal; main green, synced.
Phase B — CMS completion (near-top by operator amendment, 2026-06-10)¶
The corpus → compress → rendition → playback pipeline (ADR-0.0.37, the Context-Load CMS) lands end-to-end. This is the system that makes "we don't direct edit AGENTS.md" workable: contract changes queue in the corpus and only deterministic playback writes the rendered surface.
- [x] B.0 ADR-0.0.70 Buetow adoption (operator-inserted 2026-06-12; see
Amendment above) — turn-end Stop-hook feedback (gzkit-owned
Stopphase),session-correction-miningchore (third sensor feeding the Promotable→Mechanical ladder),guardrail-feedback-proserule, fourth-source triangulation indocs/governance/harness-engineering-appraisal.md. Checks off at ADR-0.0.70 terminal (all four OBPIs attested + closeout).- Terminal 2026-06-13: ADR-0.0.70
Validatedpergz adr report ADR-0.0.70— all four OBPIsattested_completed, Gate-5 audit ceremony accepted ("accept audit", operator g0): OBPI-01 stop-hook-turn-end-feedback, OBPI-02 session-correction-mining, OBPI-03 guardrail-feedback-prose-rule, OBPI-04 fourth-source-triangulation. Validation receipts (all exit 0):arb-step-unittest-483ae14c…(6097 tests),arb-ruff-ed38ddd7…,arb-step-typecheck-d83e7132…,arb-step-mkdocs-fbec5b2a…. Audit evidence:…/ADR-0.0.70-…/audit/AUDIT.md.
- Terminal 2026-06-13: ADR-0.0.70
- [ ] B.1 ADR-0.0.37 build-out — REPUDIATED-IN-PART; INCREMENT 1 LANDED 2026-06-19.
Increment 1 (commit
c070f28a, staged warn→fail per OBPI-0.0.41): OBPI-0.0.37-22's mechanism re-built honestly — the operator-attestedgz content commitcandidate→committed promotion seam (the missing REQ-22-01 caller forsave_rendition), corpus content-fingerprint + provenance sidecar, the content-based--rendition-freshnessgate that kills the mtime tautology (warn-mode_FRESHNESS_FAIL_CLOSED=False), therendition_committedevent, and the coupled ADR-0.0.73 QC-binding negative control. OBPI-22 staysrepudiatedby design (not re-attested). Increment 2 (next pull): corpus enrichment (OBPI-19 capture of AGENTS.md content) → attested compose+commit of the real renditions → flip the staging flag fail-closed →gz obpi completeOBPI-22. Then 02/03 re-point+re-attest, 21 re-verify, B.2/#519, B.3. Disposition history below (the 2026-06-16 repudiation that Increment 1 cures): The prior "16/19 verified 2026-06-14 viagz adr report" was theater verification —gz adr reportreads attested-completed receipts that were written against facade gates (mtime-only--rendition-freshness, empty-registry--invariant-coherence, fixture-only and tautological tests). A skepticism audit (2026-06-16) repudiated OBPIs 02/03/21/22 (model-induced-fabrication); the CMS pipeline does not render from the corpus. This marquee re-opens behind the Phase 0 QC-binding meta-audit (see Phase 0 amendment 2026-06-16): real rebuild = enrich corpus → compress-from-corpus toward each surface's setpoint (quantization; invariants verbatim; temperature = favoring/eviction under monotonic corpus growth) → committed rendition → deterministic playback. Interim durable progress landed: a real--rendition-floor-coherencegate (the evergreen-verbatim witness) + an operator-attested recompose seating the 7 missing operator doctrines into AGENTS.md (GHI #623, branchfix/adr-0.0.37-real-coherence-gate, commit8f754c45).- Checklist disposition (finalized; ledger-grounded). The active
ADR-0.0.37 target is items 01–10 + 18–27 (the 2026-06-03
corpus → setpoint-compression → committed-rendition → deterministic-playback
- invariant-tier re-alignment). 09 is withdrawn (operator-directed
2026-06-04, never built; invariant-registry migration superseded by the
corpus-rendition track — items 18/22/27 own AGENTS.md authoring;
invariant-coherence lock preserved via OBPI-22 rendition playback).
11–17 are withdrawn from the active scorecard: 11–15 retain valid
Gate-5 completion receipts (their density-dial mechanism is superseded,
their reusable substrate re-homed into 18–27); 16 was created-only (its
orientation-index intent folds into item 27); 17 launched then retired.
OBPI-0.0.37-27 is the capstone disposition — it retired the inert
per-
Bulletdensity_minfilter + three-static-template framing, repointedsync_agents_mdonto the committed-rendition store, folded OBPI-16's orientation-index intent into the substrate doc, and finalized this disposition. (REQ-06 redirected here 2026-06-15: the originalreturn-to-health-plan-2026-05-30.mdtarget was frozen "retained unmodified for audit" on 2026-06-10 and already states 18–27 active.)
- invariant-tier re-alignment). 09 is withdrawn (operator-directed
2026-06-04, never built; invariant-registry migration superseded by the
corpus-rendition track — items 18/22/27 own AGENTS.md authoring;
invariant-coherence lock preserved via OBPI-22 rendition playback).
11–17 are withdrawn from the active scorecard: 11–15 retain valid
Gate-5 completion receipts (their density-dial mechanism is superseded,
their reusable substrate re-homed into 18–27); 16 was created-only (its
orientation-index intent folds into item 27); 17 launched then retired.
OBPI-0.0.37-27 is the capstone disposition — it retired the inert
per-
- Checklist disposition (finalized; ledger-grounded). The active
ADR-0.0.37 target is items 01–10 + 18–27 (the 2026-06-03
corpus → setpoint-compression → committed-rendition → deterministic-playback
- [ ] B.2 Registry-projected <15k surface (GHI #533) — closes #519 (the sole open emergency), fills restore-health's Recovery Closeout.
- [ ] B.3 Play back queued corpus entries into the rendered AGENTS.md through
the pipeline (the two Magna Carta behavior-rules entries, rendered as
one coherent steering-vs-propulsion rule) and land the
§ Architectural Boundaries 1–2 amendment (full-pool override) the same
governed way;
invariant-coherencegreen throughout.
Exit gate: corpus → rendered-surface round-trip works under the validators;
519 closed; no open emergency.¶
Phase C — MOTD build (the cadence engine)¶
Per the designed build plan (restore-health § Session MOTD §7), leaf-first,
absorbing ADR-0.0.65 and implementing ADR-0.0.66 (gz next):
- [ ] C.1
.gzkit/work/store + workplan schema (campaign + daily-brief) - [ ] C.2
session_orientation.py→ lightweight auto-triage (the MOTD)
- [ ] C.3 Directed triage skill (
gz nextUX) - [ ] C.4 Continuity hybrid (subsumes handoff; Stop/clear hook drafts, agent finalizes). Includes the terminal disposition of in-flight ADR-0.0.65 (1/4 at amendment time): its remaining OBPIs complete inside this build or are operator-parked citing the ratified absorption — never left dangling.
- [ ] C.5 Independent logrotation for the two logs
- [ ] C.6 Verb surface folded into ADR-0.0.66; no new top-level verb family
Exit gate: MOTD §8 criteria all observed live.
Phase D — The Census¶
- [ ] D.1 Generate the completion census: every booked ADR × lifecycle × OBPI
× REQ proof channel; every declared surface × wiring state; every live
pool item × disposition state. Machine-derived from ledger + canon
(Layer-3 view, regenerable, never hand-maintained); persisted under
.gzkit/work/as the campaign burn-down the MOTD reads at login. - [ ] D.2 Operator attests the census as the authoritative 1.0 scope.
Census reconciliation includes the GHI #584 class (233 orphaned
obpi_createdledger events with no on-disk briefs across 24 feature ADRs) — every orphan gets a disposition in the census.
Exit gate: census attested; MOTD login brief draws from it.
Phase E — Booked-canon burn-down (waves)¶
Dependency-ordered waves over the ~30 booked ADRs short of Validated (19 Draft + 10 Proposed + stragglers), via MOTD triage. Standing orders:
- [ ] E.1 Canon Foundation ADRs booked early in this phase; increments build through E/F.
- [ ] E.2 Wire the 6 manual-only validator scopes into a governed cadence (chore or check-tier); book origins for the 3 provenance-gap scopes.
- [ ] E.3 Burn Draft/Proposed foundation + pre-release ADRs wave by wave; each wave ends in a release (§ Cadence).
- [ ] E.4 Additive dispatch drift-guards (proof mechanization, not
reduction). Two structural fences over surfaces today correct only by
author discipline: (a) handler-manifest resolution test (#617) —
asserts all 92
_lazy()refs resolve and the 3 manifests agree; (b) validator-enumeration consistency test (#618) — LANDED 2026-06-19 (tests/cli/test_validate_dispatch_consistency.py): asserts everyvalidate()check_*param is dispatched by a runner or the early-return path (and the inverse), and that the parser lambda forwards each — the load-bearing invariant behind the #394 self-include class. This is also Sanity-Reduction cut #618 step 1: the parity net theVALIDATOR_REGISTRYcollapse (now pulled forward per the 2026-06-19 Sanity-Reduction amendment) must keep green. The #617 handler-manifest collapse and the remainingvalidate()signature/predicate/_collect_errorscollapse are the staged cuts that follow, each with its own parity proof. - [ ] E.5 Governance-friction drainage (additive; proof of the quagmire,
then the true fix). The class: ceremony-gate validators that fail-close on
stale-artifact-vs-reality mismatches — the governance surface ensnaring
the work it exists to govern (V.I.B.E.S. at the ceremony layer, sibling to
Phase 0's vocabulary drift). Inaugural cluster surfaced 2026-06-14 during
OBPI-0.0.37-22 completion (captured in
.gzkit/insights/agent-insights.jsonl):- #581 — brief-reconcile
_compute_missing_in_briefneighborhood filter mis-fires in both directions (misses cross-directory couplings; flags git-clean test-infra imports as false positives when a brief allowlists a top-levelsrc/gzkit/*.py). - #612 —
HandoffFrontmatterrejects the full-slugobpi_idthatfind_handoff_for_releaserequires (short-form regex vs exact-match): a release-pairing handoff cannot both validate and match. - #619 —
obpi lock releasehas no first-class completion register path; a completed (not abandoned) OBPI must masquerade as a handoff to release. Sibling cut of #612. - #462 — security-floor fires on additive non-security changes to a
registered surface (canonical scan slot unfilled; routes to its existing
pool.agentic-security-reviewhome, not E.5-owned). Per the 2026-06-14 amendment: each item's true root cause is discovered first, then routed GHI-direct or ADR/OBPI consistent with campaign aims (reductive collapses defer to Phase I). Drainage GHIs file at the moment of discovery (moratorium lifted for this class) and home here.
- #581 — brief-reconcile
- [ ] E.6 Turn-end claim-grounding gate (additive mechanization; GHI #620).
The conversational-claim surface — an agent asserting present-tense
governance state ("OBPI-X complete", "lock held", "tests pass") in prose —
is ungated: AGENTS.md § Never #7 ("read the ledger, not frontmatter") is
prose-only with no mechanical fail-close. ADR-0.0.70's Stop-hook (B.0) is
the existence proof that the turn-end seam can hold a fail-closed gate, but
its scope is ruff over git-dirty
*.pyonly (OBPI-0.0.70-01), it fires after prose is emitted, and it fails open — so it does not reach this surface. Discover the true root-cause fix shape first (candidates, not decisions: (a) structured-claim discipline requiring an inline receipt token whose presence a Stop-hook regex verifies deterministically — gating form, not truth; (b) a telemetry-only turn-end sensor feeding the session-correction miner, pairing with #614). Claim-truth checking is not deterministically decidable the way ruff is; an LLM judge over an LLM claimer relocates the vibe (turtles), so the fix shape is an operator design conversation before booking. Sibling to E.4/E.5; descendant of B.0. - [ ] E.7 Airlock North Star — alignment, tuning, entry-airlock
(additive; the generalization of E.4/E.5/E.6). The 2026-06-16 design
dialogue produced a North Star for the act of working: the
airlock (pack-in/pack-out — pre-flight seam-map → go/no-go in;
drift-diff → block/surface/resolve out) over a two-graph of intent
(LAW/pull) and fact (OBSERVED/push), in four phases
(design/build/fix/refactor). Captured at
work-phases-and-airlock.mdand validated by a 5-pass apparatus scan: AIRLOCK-OUT + captain's-GO are already built (brief-reconcile / obpi-reconcile / validate / closeout / attestation / ledger); the structural gap is the unbuilt AIRLOCK-IN (no seam-map → go/no-go before work) — the cure for compounding exit-discovered drift.gz-obpi-pipelineis the proven reference implementation (operator: "the process that had MOST earned its keep"); the entry-airlock and generalization extend FROM it. The four-phase theory has its own canonical doc (four-phases-of-work.md); the airlock doc §4 references it. E.7 is a 1.0 completion gate (goal-state, operator ruling 2026-06-17): Magna Carta is not complete until these theories are realized (E.7c + E.7f), substantiated (E.7a + ongoing apparatus proof), and made lawful (E.7b — the binding mechanism, adopting ADR and/or fail-close validators, is itself an open question, not pre-pinned). - [x] E.7a Capture + apparatus scan — North Star doc + four-phase theory doc + 5-pass skill scan, findings folded in (complete 2026-06-17).
- [ ] E.7b Adopting foundation ADR for the airlock model, authored when its gate is met — no queue-jump (Phase 0 / B.1 keep their sequence); gz-obpi-pipeline is the exemplar to generalize.
- [ ] E.7c Alignment — map every skill/tool onto {phase, airlock-fn, graph}; close the scan's misfit gaps (sibling modes: intake, meta-governance, continuity, surface/repo-coherence) and the edge-only node-health gap.
- [ ] E.7d Tuning — the drift = diff "tuning loop" refinements (zero-unaccounted-drift, not zero drift).
- [ ] E.7e Renaming — less-cryptic terminology (the five-gate vocabulary that "stuck"; airlock/seam/etc.). Reductive-class → Phase I per completion-before-reduction; operator pre-ratified ("in order"), so it is a committed reduction item, not deferred-indefinitely.
- [ ] E.7f Entry-airlock build — the seam-map → go/no-go pre-flight, generalized from gz-obpi-pipeline; mechanical form gated behind the graph-engine / state-doctrine boundary (judgment-grade now, mechanical later).
Exit gate: all booked ADRs Validated or operator-parked.
Phase F — Canon Foundation build-out¶
- [ ] F.1 Complete the Canon Foundation increments to its ADRs' done-bar.
Exit gate: Canon Foundation ADRs terminal.
Phase G — Pool processing¶
- [ ] G.0 Pool-machinery repairs first — the promote/demote/evaluate pipeline
must be sound before 139 items flow through it: GHI #595 (evaluate gate
errors on pool ADRs), #558 (demote
--on-collision keep-poolstale frontmatter), #536 (promote Target Scope path:line refs). - [ ] G.1 Every live pool item (139 at baseline; see Appendix B) enters the promotion pipeline in MOTD-triaged order (top-signal first).
- [ ] G.2 Terminal disposition per item: promoted → built → Validated, or parked/superseded on promotion-stage evidence with operator attestation.
- [ ] G.3 Pool-hygiene defects from the baseline ranking repaired in flight
(status-drift on
obpi-req-taxonomy-scope-fence, 11 missingstatus:frontmatter, 4 empty Intent sections).
Exit gate: pool index shows zero non-terminal items.
Phase H — 1.0 declaration¶
- [ ] H.1 Census 100% terminal; goal-state checklist all true.
- [ ] H.2 v1.0.0 release through the patch-release ceremony.
Phase I — The reduction pass (post-1.0; out of campaign scope)¶
Only now: re-run the validator load-bearing audit and pool/surface redundancy analysis against the finished system; diff against the Appendix A/B baselines; cull, merge, straighten with working proof speaking. Today's baselines are inputs, never pre-1.0 action lists.
GHI Register — all open issues, homed¶
Layer-3 derived view — regenerated from
gh issue list --state openat every triage pass; never hand-curate the counts. Snapshot 2026-06-10: 37 open. Every open GHI is homed to a phase; an unhomed GHI is itself a defect.
| Home | GHIs | Theme |
|---|---|---|
| A (in-flight) | #538 | STRUCTURAL-FENCE parent-shape validator — the substance of OBPI-0.0.69-02 |
| B (CMS) | #519 (emergency), #533, #579, #580 | Codex 258K window; <15k registry-projected surface; imperative-density budget; criticality-ordered renderer |
| C (MOTD) | #585, #574 | Handoff retention → C.5 logrotation; advise-not-execute mechanization → C.4 |
| D (census) | #584 | 233 orphaned obpi_created events reconciled by the census |
| E (ceremony mechanization) | #516, #596, #573 | Passive-presenter REQ-evidence; BLOCKED-ADR advance; BI-2 classifier TDD redo |
| E (preflight/locks) | #578, #564 | Reaping-handoff coupling; orphan plan-audit receipts |
| E (task governance) | #563, #553, #561 | Task-envelope completion debt from ADR-0.22.0/0.0.64 |
| E (req-kind/covers hardening) | #537, #544, #545, #546, #547 | BEHAVIOR enforcement; grandfathering cache schema; ReqCoverageRecord; bypass-once; gray-zone doctrine |
| E (documents backfill) | #480, #524, #527 | Schema-convention backfill class (3,536 errors) |
| E (briefs/docs hygiene) | #565, #532, #551 | Shell-less Verification contract; manpage refs; REQ-coverage docs |
| E (quality/infra) | #571, #567, #575, #577, #581, #594, #582 | Test doctrine; skills spike pattern; gz insights verb; status projection; reconcile depth; arb retention; subprocess errors= class |
| G.0 (pool machinery) | #595, #558, #536 | Promote/demote/evaluate repairs gating pool flow |
GHI emergence discipline (standing rules)¶
New GHI moments will keep emerging; the campaign absorbs them without direction change:
- Route at the moment of emergence per AGENTS.md § Defect-fix routing and
the direct-fix moratorium: smallest honest fix lands now in one coherent
commit (TDD,
Task:trailer); a GHI is filed only when the fix genuinely cannot, via/ghi-author(never rawgh issue create). - Homed at creation. Every new GHI names its campaign-phase home (or "steady-state triage") in the issue body. Unhomed = defect.
emergencylabel = campaign interrupt. It preempts the current wave and the MOTD brief surfaces it at every login until closed (precedent: #519). Everything else waits its triaged turn — no five-alarm plan forks; the campaign is the fire plan.- Triage at the release drumbeat via
ghi-triage; WIP = 1 for recovery-class items; closure only with observed command evidence (restore-health Phase-4 rule, retained). - The register above is regenerated, never edited — derived view doctrine applies to plans too.
Cadence (the go-to-market rhythm)¶
- Session: login → MOTD briefing (until C ships: this checklist, top-down) → execute the topmost unblocked item via its governed path → logout continuity. Operator rules; the MOTD advises.
- Handoffs are authored relative to the campaign: a session-end handoff is continuity only — its next steps cite campaign item IDs and restate the topmost unchecked items; it carries an explicit subordination note that the campaign, not the handoff, governs what is pulled next. If handoff and campaign disagree, the campaign wins and the variance is reconciled into the campaign.
- Release: weekly drumbeat through the existing patch-release ceremony; every wave that lands capability ships in a named, attested release.
- Triage: GHI steady-state via
ghi-triage; defects route per AGENTS.md § Defect-fix routing (direct-fix moratorium stands). - Concurrency: two sessions ref-lock raced in this working directory on 2026-06-10. Until the lock→branch migration (restore-health §13.7) lands, concurrent sessions coordinate via OBPI locks and avoid simultaneous pushes.
Appendix A — Validator load-bearing baseline (2026-06-10)¶
Frozen evidence for Phase I. Method: per-scope mining of git history (fix-commit subjects read and classified), ledger, insights, and wiring (default set / gz-check / CI / pre-commit / skills / chores).
- 67 scopes total: 11 default, 56 explicit.
- Proven load-bearing (multiple recorded catches): defaults +
insights-shape,task-envelope-coherence,instructions-files-budget,bullet-retention,closeout-proof-binding,behave-req-tags,interviews,line-endings,distribution,complexity-thresholds,surface-fidelity,adr-status-fresh,doc-surface-parity,chores-layout,decomposition,commit-trailers,orientation-freshness,session-green-gate. - Fences with no recorded intrusions (wired, zero catches):
receipt-shape,agents-md-map-conformance,pointer-anchors,tautological-test-audit(1),unscoped-rules(1). - Manual-only, ~zero fires (now wired per Phase E.2 instead of retired):
router-tables,orphaned-implementation,brief-command-shape,brief-demo-section,brief-cross-references,scenario-reachability. - Validator-was-the-defect cases (maintenance tail):
req-kind-discipline(GHI #541),evaluation-justify-binding(GHI #394),kind-invariance(GHI #483),session-green-gate(GHI #600). - Structural root of this tail (#618):
validate()enumerates its 81 scopes across ~6 parallel hand-synced lists — a 78-param signature, the_other_scopes_active = any([...])predicate, and the positional_collect_errors(...)call. #394 is a proven instance (a scope self-included inany([...]), bypassing its solo handler; #473 its sibling). TheVALIDATOR_REGISTRYsingle-source collapse is Phase I reduction; the additive consistency fence is E.4. - Provenance gaps (no commit ever names them):
advisor-proof-binding,intrinsic-attestation,pointer-anchors.
Appendix B — Pool ranking baseline (2026-06-10)¶
Frozen evidence for Phases G and I. Method: strict full-ID matching; insights ×3, git ×3, docs cross-refs ×2, ledger ×1 (registration noise excluded).
- Corpus: 164 pool ADRs on disk; 25 already dead (22 Superseded, 1 Promoted, 1 archived, 1 supersession with frontmatter drift); 139 live.
- Classification: live pool ≈ 59% product / 40% governance-meta / 2 unclear.
- Top signal:
airlineops-direct-governance-migration(153; inflated by one parity checklist),brief-authoring-evidence-checks(104),obpi-pipeline-dispatch-attestation(99),harness-trace-bundles(91),agentic-security-review(85),canonical-vs-runtime-separation(85),harness-aware-execution-modes(84),skill-behavioral-hardening(71),tdd-receipt-stream(71),workflow-specification(71); thenexecution-memory-graph(65),obpi-authoring-mechanical-floor(58),agent-execution-intelligence(52),adr-amendment-tracking(49),harness-lab(48),contract-surface-mechanical-defenses(44),solved-problem-pattern-corpus(43),session-productivity-metrics(41),universal-agent-onboarding(39),attestation-quality-measurement(38). - 24 zero-signal items — all 10 airlineops/opsdev absorption ADRs among
them, batch-demoted in commit
a95bba15(GHI #520) and untouched since. The AirlineOps migrate-vs-absorb question is the largest single strategic block in the pool; Phase G forces its resolution. - Signal theme: the corpus demands proof mechanization (evidence chains, trace bundles, TDD receipts), not new ceremony prose.
Appendix C — Systems-integrity audit (2026-06-20)¶
Read-only, evidence-first audit of gzkit's 11 major systems, run as a 13-agent
background workflow (run wf_7ec7337a-990; ~1.35M agent-tokens; 567 tool-uses;
~10.6 min). Each system was probed by one investigator (trace surface→handler in
code, judge test integrity, read-only live-fire with file:line + exit-code
receipts); negative verdicts were then adversarially challenged. Commissioned
after the operator withdrew confidence in the artifacts ("more facade, lies,
fabrications and bullshit … very close to outright abandoned"). This appendix
records evidence, not reassurance — every line is tagged.
C.0 — Provenance honesty ledger (agent vibe-coding disclosure). The two
in-session diagrams (11-system role map; 7-phase SDLC map) are HYPOTHESIS, not
findings: their module→system attributions, dependency edges, the phase→system
table, and the "prime-suspect" colouring were inferred from filenames, gz
--help, and priors — not read from code. The operator flagged this as
vibe-coding; the charge is correct. Verified correction: src/gzkit/cli/parser.py
is infra-only (53 lines, zero verbs); the verb registry lives in
parser_governance.py, parser_maintenance.py, parser_artifacts.py,
parser_arb.py, and commands/content/. Only the code-traced audit below is
evidence.
C.1 — Method limitation (read before the tally). The verifier pass was asymmetric: it adversarially challenged only non-real verdicts (to catch false accusations), so 9 of 10 "real" verdicts were never stress-tested — the wrong direction for a facade hunt. Read "real" as "the prober read the code as real," not "survived a skeptic." An inverse pass (challenge the "real" verdicts) is the required follow-up.
C.2 — Tally (caveated). 10 real / 1 partial / 0 facade. - Adversarially challenged: only s3 (held → partial) and s8 (overturned → real, but contradicted by its own critical rot — see C.4). - VERIFIED-but-unchallenged (rated real/high, code-traced, no skeptic): s1, s2, s4, s5, s6, s7, s9, s10, s11. - "0 facade" is therefore not a clean bill of health.
C.3 — Where the operator's "facade" read is vindicated (instinct correct here).
- s3 Governance artifacts (authoring) — PARTIAL/high. Schema validators exist
and are tested but are dormant at authoring time: prd()/constitute()
(init_cmd.py:946-1039), plan create (plan.py:221-265), and specify
(specify_cmd.py:798-870) write artifacts before/without validation;
validation is deferred, --author-optional, or test-only; ADR↔OBPI 1:1 linkage
is unvalidated at authoring (specify_cmd.py:811-834). Agent verdict: "the
governance surface claims to validate but makes it optional/deferred/invisible."
= the GHI #615 / Phase 0 emergency, independently corroborated.
- s8 Corpus & content (the AGENTS.md CMS) — CRITICAL rot, verdict DISPUTED.
"Committed rendition is byte-copy, not composed" (.gzkit/renditions/AGENTS.md/
claude.md vs AGENTS.md); render_agents_md() docs-vs-implementation mismatch
(governance/compose.py:48-69) with dead-code params (compose.py:49-50,61-62);
playback path has no LLM/network I/O by design. Bears directly on Phase B.1 /
ADR-0.0.37's claim to have "rebuilt the mechanism honestly" (commit
c070f28a) — flagged as a tension, not a settled refutation.
C.4 — The contradiction to resolve. s8 was rated real by the verifier
(the negative accusation "did not hold"), yet carries two CRITICAL rot
findings describing a facade pattern (byte-copy rendition; docs≠impl). A "real"
verdict cannot coexist with unresolved critical facade rot. s8 is DISPUTED and
must be re-adjudicated by the inverse pass + a wave-2 live-fire (gz content
compose AGENTS.md --consumer claude …; check whether any
composition_candidate_emitted event was ever recorded for AGENTS.md).
C.5 — Soft spots inside "real" systems (untested fail-close).
- s4 Gates & attestation: missing-attestation block has no negative-control
test (tests/commands/test_obpi_complete.py) — Gate 5 is coded but
unproven by test. (Rated real/high, never challenged.)
- s2 Ledger: lifecycle_transition events have no consumer
(ledger.py:692-697) — a write-only event type (the --event-handlers smell).
- s6 Validators: early-return solo-scope handlers don't join error-taxonomy
aggregation (validate_cmd.py:535-653) — echoes Appendix A's #618 structural
tail.
C.6 — Genuinely load-bearing (real, with receipts). s1 CLI core (single
_LAZY_HANDLERS manifest, fail-closed by tests/cli/test_handler_manifest_
resolves.py; gz cli audit live 109/109); s2 ledger spine (append-only
source-of-truth; state/status compute live); s5 ARB, s6 validators, s7
quality/complexity, s9 pipeline, s10 surfaces, s11 issues/release — rated
real/high on code-traced evidence, pending the inverse skeptic pass.
C.7 — Routing (operator doctrine — corrections under owning ADRs/GHIs, never new
pool ADRs).
- s3 authoring-validation → GHI #615 / Phase 0 (already homed).
- s8 rendition byte-copy / compose docs≠impl → re-adjudicate against ADR-0.0.37
Phase B.1 before trusting Increment 1's "rebuilt honestly" claim.
- s4 attestation negative-control test → direct-fix candidate.
- s2 write-only lifecycle_transition → --event-handlers follow-up.
- Next: inverse adversarial pass on the 9 unchallenged "real" verdicts; then
rebuild the systems map on verified module boundaries, coloured by verdicts.
Run artifact: wf_7ec7337a-990 (transcripts under the session workflow dir).
Appendix D — Inverse adversarial audit (2026-06-20)¶
Stress-test of the 10 "real" verdicts from Appendix C, run as a 14-agent workflow
(run wf_d090b0a1-6b3; ~1.61M agent-tokens; 486 tool-uses; ~10.4 min). One
prosecutor per system attacked the "real" rating; the 3 decisive systems (s4, s8,
s9) ran in isolated git worktrees with mutation live-fire (real gz obpi
complete / gz content compose / pipeline runs); any verdict a prosecutor broke
faced a defender who tried to rescue it. Final: 7 real / 3 partial / 0 facade.
The pass flipped 3 verdicts Appendix C had rated real — confirming the C.1
verification-asymmetry was consequential, not cosmetic.
D.0 — Process-integrity note. s7 (Quality & complexity) was downgraded by its
prosecutor but overturned by the defender back to real
(prosecutor_overturned=true) — evidence the pass refutes false accusations, not
just manufactures them. The 7 "real" verdicts each survived a dedicated prosecutor
(6 outright; s7 via defender) — not the C.1 skip.
D.1 — Confirmed defects (survived the defender):
- s8 Corpus & content (CMS rendition) → PARTIAL [critical]. The AGENTS.md "CMS" is cp-with-ceremony.
- Committed
.gzkit/renditions/AGENTS.md/claude.mdis byte-identical to hand-authoredAGENTS.md(diffexit 0; both 29,953 B). - 29 of 45
tier:invariantcorpus entries absent verbatim from both. render_agents_md()(governance/compose.py:48-69) is pure playback;invariants/template_rootparams dead (61-62).- 0
rendition_committedevents; no provenance sidecar — governed ceremony never ran;commit.py:90-103writes candidate bytes verbatim without re-asserting the floor. gz content compose AGENTS.md --consumer claude --candidate <shipped rendition>→ exit 1 (invariant-floor violation): the pipeline cannot accept its own output. (Negative control: a junk candidate also exits 1 — the primitiveassert_invariant_verbatim(composer.py:54-57) genuinely fail-closes.)- Both catching gates shipped warn-only:
rendition_floor_coherence.py:37/rendition_freshness.py:37(_FLOOR_FAIL_CLOSED=False,_FRESHNESS_FAIL_CLOSED=False) → warn to stderr, exit 0, "✓ All validations passed." - ADR-0.0.37 § Decision claims "composed from" the corpus and drift "fails CI"; neither holds in the shipped path.
-
Known/repudiated: OBPI-0.0.37-21/-22 repudiated
cause=model-induced-fabrication(g0, 2026-06-16); handoff20260620T180109Z-levels-mx-gzkit-lobotomy.mdnames "Station 1 (the two rendition gates) is facade as live enforcement," fix path = campaign B.1. Actionable delta: the gates are de-fanged, so CI cannot catch the persistent facade — the_FRESHNESS_FAIL_CLOSED=Trueflip (orientation names this OBPI-0.0.74-09). -
s5 ARB middleware (attestation receipt gate) → PARTIAL [critical, NEW]. Forged receipts pass the gate that matters.
validate_attestation_receipts._classify_one(governance/trust_audits/attestation_receipts.py:101-146) checks file-exists +exit_status==0+ category, but never calls_provenance_error(arb/validator.py:177-199).- Live-fire: a receipt with canonical ID + fabricated
step.commandis accepted asresolved(exit 0) by the attestation gate; the same receipt is caught bygz arb validate(non-canonical provenance). - Two pathways:
gz arb validate(CLI/advisory) enforces provenance; the fail-closed gate atgz obpi complete(obpi_complete.py:345) does not. No negative test for forgedstep.command(test_attestation_receipt_validator.py). ADR-0.0.24 § Decision lists three checks, omits provenance. -
Impact: attestation evidence is forgeable through the binding gate — the Fabrication backstop has a hole.
-
s2 Ledger & state → PARTIAL [documentary].
lifecycle_transitionmislabeled consumer. Waiver (governance/trust_audits/events.py:51-53) claims "consumed by gz state"; live-fire showsget_artifact_graph()unchanged by the event andstate.pynever calls the sole consumerget_effective_gate_statuses. Actual consumers:status.py,context_cmd.py. Mechanism functions (defender confirmed gate-smoothing,ledger.py:418-482); defect is the wrong-consumer label — state-doctrine accuracy (Architectural Boundary 6). One-line fix.
D.2 — Survived adversarial attack (real, battle-tested): s1 CLI core, s4 Gates & attestation, s6 Validators, s7 Quality & complexity (defender-rescued), s9 Pipeline, s10 Control surfaces, s11 Issues & release. s4 and s9 withstood worktree mutation live-fire (the attestation block and pipeline stage-gate held).
D.3 — Reconciled verdict (both passes, all 11 systems): 7 real (s1,s4,s6,s7,s9,s10,s11) / 4 partial (s2,s3,s5,s8) / 0 facade.
D.4 — Routing (corrections under owning ADRs/GHIs — never new pool ADRs):
- s5 → GHI-tracked direct fix: wire the provenance check into
validate_attestation_receipts + add the forged-step.command negative test.
- s8 → campaign B.1 / ADR-0.0.37 (homed); actionable delta = flip the two
rendition gates fail-closed (OBPI-0.0.74-09 retires the staging flag).
- s2 → one-line doc fix (events.py:52 consumer label).
- s3 → GHI #615 / Phase 0 (Appendix C).
Run artifact: wf_d090b0a1-6b3.
Appendix E — Strategies to earn an "A" (2026-06-20)¶
Grade today (agent assessment, reconciled across both audit passes): C+ — competent engineering, badly over-scoped, with several gates coded but never proven to reject. The road to an A runs through subtraction and proof, not addition. For a tool whose stated purpose is to make stochastic vibing structurally inert, the grade is set by two axes: - Integrity — every claimed enforcement is mechanically proven to fail-closed. - Proportionality — nothing ships that is not proven load-bearing.
More ceremony lowers the grade. Proven, minimal ceremony raises it. This appendix refines existing phases where it can and proposes two new mechanical floors (E.2, E.4); it does not start a parallel plan.
A-grade rubric (the bar to clear): 1. All four partial defects (D.1 / D.3) closed, each with a negative-control test. 2. 100% negative-control coverage — every fail-closed gate has a test that feeds a known violation and asserts exit≠0. 3. Apparatus reduced to its proven load-bearing core (validators, pool, verbs, CMS). 4. Zero enforcement-claim-vs-behavior gaps across ADRs / rules / docs. 5. The two-pass self-audit is a standing cadence gate, not a one-off.
E.1 — Close the integrity holes (refines existing routes).
- s5 (forgeable Gate 5) — highest priority: a governance tool that accepts
fabricated attestation evidence negates its own reason to exist. Wire
_provenance_error into validate_attestation_receipts; ship the
forged-step.command negative test. GHI-tracked direct fix.
- s8 (CMS cp-with-ceremony) — campaign B.1: either make the pipeline genuinely
compose (re-commit a real rendition through the ceremony so
rendition_committed > 0) or retire the pretense; flip both rendition gates
fail-closed (OBPI-0.0.74-09). Until one or the other lands, ADR-0.0.37's
"composed from corpus / fails CI" claims are unmet — mark them so (E.4).
- s3 (dormant authoring validation) — Phase 0 / GHI #615.
- s2 (mislabeled consumer) — one-line fix (events.py:52).
E.2 — Prove every gate fails-closed (NEW floor — the biggest integrity lever).
The common root under all four partials is gates never tested to REJECT (s4
attestation, s5 receipts, s8 rendition all shipped without a negative-control).
Mandate: every fail-closed surface — validator scope, Gate-5 check, pipeline stage
gate — ships with a test that feeds a known violation and asserts exit≠0. Enforce
with a new gz validate --negative-control-coverage scope (or extend
--tautological-test-audit) that fail-closes when any gate lacks a rejection test.
This makes permanent and mechanical exactly what the inverse audit did by hand.
Coded ≠ enforced; only a passing negative-control proves a gate.
E.3 — Cut to the load-bearing core (refines Phases I and G — the biggest
proportionality lever).
- Validators: Appendix A already classifies them. Retire or consolidate every
"zero-catch / manual-only / provenance-gap" scope unless E.2 proves it
load-bearing. Target: each shipped validator has a recorded catch OR a passing
negative-control. (The #618 VALIDATOR_REGISTRY single-source collapse belongs
here.)
- Pool ADRs: 139 live (Appendix B) is a graveyard, not a backlog. Phase G
forces migrate-vs-absorb; an A means the pool is burned to a small real queue.
- Verbs / skills: apply tool-skill-runbook Invariant 1 as a reduction pass —
any verb that no runbook moment and no recorded use justifies is a cut candidate,
not merely a fence violation.
- The CMS (a design call, not a bug-fix): is a corpus→compose→rendition
pipeline justified to assemble two markdown contract files, or is the machine
bigger than its product? Either make it genuinely earn its keep or replace it
with something far smaller. This is the single largest proportionality question
in the tree, and the worst rot (s8) sits inside it.
E.4 — Zero enforcement-claim-vs-behavior gaps (NEW — the honesty axis). For a
governance tool, a false claim of enforcement is worse than none — it is the
facade (ADR-0.0.37 claims "fails CI"; the gate exits 0. arb-middleware.md
promises provenance enforcement the attestation gate skips). Mandate: every "fails
CI / is enforced / composed from / validated" assertion in ADRs, rules, and docs
resolves to a tested, mechanically-true behavior — or is deleted / downgraded to
"planned." Consider a gz validate --enforcement-claims scope that scans the claim
vocabulary and binds each assertion to a proving test.
E.5 — Make the self-audit permanent (refines Phase C cadence). The discipline that found the truth — symmetric adversarial verification (challenge the reassuring verdicts, not only the damning ones), mutation live-fire in isolated worktrees, claim-vs-behavior probing — must run on a cadence, not once. Wire the two-pass harness into the MOTD cadence engine with E.2's negative-control coverage as its mechanical floor. An A-grade self-governing tool re-proves its own integrity on a schedule; a C+ proves it once and drifts.
Bottom line: the A is not more governance — it is less, proven. Close the four holes, prove every gate rejects, shed the apparatus that no catch or test justifies, delete every unmet enforcement claim, and make the self-audit standing. Integrity proven + proportionality achieved = A.