diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 51f0798..517d675 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -208,7 +208,7 @@ | # | Gate | What closes it | Owner | Evidence of current state | |---|------|----------------|-------|---------------------------| | G1 | Audit Phase 3: fresh-agent grounding test | 3 clean-context probes score the 7-question set against this doc; holes map made | session | CLOSED 2026-07-18: 3 probes, 21/21 PASS, holes H1 (amended into G9) + H2 (no action) -- `docs/audit/phase3-grounding-test-20260718.md` | -| G2 | Audit Phase 4: GA-R1..R7 structural rulings + the stage-status vocabulary A/B | operator rules each individually | operator | IN PROGRESS: GA-R3, GA-R5, GA-R1, GA-R2 RATIFIED 2026-07-18 (`docs/audit/ga-rulings.md`); GA-R6 draft delivered; GA-R4, GA-R7, vocabulary A/B pending | +| G2 | Audit Phase 4: GA-R1..R7 structural rulings + the stage-status vocabulary A/B | operator rules each individually | operator | IN PROGRESS: GA-R3, GA-R5, GA-R1, GA-R2, GA-R6 RATIFIED 2026-07-18 (`docs/audit/ga-rulings.md`); GA-R4 draft delivered; GA-R7, vocabulary A/B pending | | G3 | Audit Phase 5: repair sweep of GA-F01..F14 (incl. memory hygiene GA-F05..F08, skill sweep) | operator-gated fix batches, each commit naming its GA-F | operator + session | FREEZE in effect; zero fixes applied (charter section 1) | | G4 | The two D-130 verifications (charter-exempt, read-only/throwaway): (v7) v0.9.8 volume-replace-under-running-domain on a throwaway domain; (v8) lifecycle ignore_changes suppression of the forced replacement | run them, capture output | session | TO RUN (`docs/audit/env-snapshot-20260718.md:47-49`) | | G5 | D-130 mechanism ruling (seed-volume durable fix) | operator rules in Phase 5, quoting G4's captured output | operator | D-130 unassigned; next-free D confirmed 130 (`ledger-scan` run 2026-07-18; no `^## D-130` in design-decisions.md) | diff --git a/docs/audit/ga-rulings.md b/docs/audit/ga-rulings.md index 674ac23..5c35539 100644 --- a/docs/audit/ga-rulings.md +++ b/docs/audit/ga-rulings.md @@ -237,14 +237,38 @@ ## GA-R6 -- Executable definition of done -**Status: DRAFT (delivered 2026-07-18; awaiting operator ruling).** +**Status: RATIFIED 2026-07-18 (operator, with amendments E1 + E2 + E3).** +Question as presented (2026-07-18): "Adopt GA-R6 as written -- including +rule 3's supersession of the charter's hard-coded 5/0/6 by the +CURRENT-STATE section-5 mechanism -- or with what amendment?" Operator +answer (2026-07-18), exact utterance: "Ratify with E1, E2, and E3: +Amendment E1 (scope): 'Rules 1-2 govern stage closes and +verification-type gates. Gates whose closer is an operator ruling close +per GA-R5: the recorded, pushed ruling (Status block with paired question +and utterance, commit hash) is that gate's closure evidence. A gate row +states which type it is.' ; Amendment E2 (extends rule 1): 'A check named +as a closer must itself have a green test harness per the standing +delivery discipline before its verdict counts. Where a closer is later +found to pass vacuously (the DOCFIX-194 class -- passing without +exercising what it claims to verify), the closure is VOID, the gate +reopens, and the check defect gets its own finding.' ; Amendment E3 (new +rule): 'There is no conditional close. A gate with any named remainder +either stays open, or the remainder is split into its own gate row (with +its own closer) and the original closes on its check alone. Closed with +carry-forwards is not a state.'" -**Proposed ruling text:** +**Ratified ruling text (as amended; rule 1 extended by E2, rules 6-7 +added by E1/E3):** 1. A stage or gate is CLOSED only when a NAMED executable check passes -- a script, harness, or gauntlet target -- and the closing commit records the check's captured output or cites its dated capture file. - Prose cannot close a stage. + Prose cannot close a stage. A check named as a closer must itself have + a green test harness per the standing delivery discipline before its + verdict counts. Where a closer is later found to pass vacuously (the + DOCFIX-194 class -- passing without exercising what it claims to + verify), the closure is VOID, the gate reopens, and the check defect + gets its own finding. 2. The check is named IN ADVANCE in the gate's CURRENT-STATE.md row (the "what closes it" cell names the executable), so closure is mechanical, not judged after the fact. @@ -263,8 +287,43 @@ 5. A closed stage's definition-of-done record (the named check + its output citation) rotates to the stage's consolidated record or as-built per GA-R1 rule 5. +6. Scope (E1): rules 1-2 govern stage closes and verification-type + gates. Gates whose closer is an operator ruling close per GA-R5: the + recorded, pushed ruling (Status block with paired question and + utterance, commit hash) is that gate's closure evidence. A gate row + states which type it is. +7. No conditional close (E3): a gate with any named remainder either + stays open, or the remainder is split into its own gate row (with its + own closer) and the original closes on its check alone. "Closed with + carry-forwards" is not a state. --- -Drafts not yet delivered: GA-R4, GA-R7, stage-status vocabulary A/B (in -that order). +## GA-R4 -- Ledger rotation + +**Status: DRAFT (delivered 2026-07-18; awaiting operator ruling).** + +**Proposed ruling text:** + +1. Session close writes a BOUNDED summary to `docs/session-ledger.md`: + hard cap 15 lines per closed session. +2. The closed session's full body moves to `docs/archive/` (dated file) + in the same close commit; the ledger keeps the summary plus a one-line + pointer to the archived body. +3. The ledger's live working set stays under 300 lines total. If a close + would exceed it, the oldest closed-session summaries rotate to the + archive in the same commit. +4. Fence discipline is unchanged: the `--fences` validation and section + ownership rules stay exactly as they are; the machine-derived section + remains machine-owned. +5. The ledger records SESSION narrative only (what happened, in what + order, what was handed off). Status remains CURRENT-STATE.md's alone + (GA-R1): a ledger line touching status is a pointer, never a claim. +6. One-time Phase-5 rotation: the current ~1142-line ledger is rotated + per rules 1-3 (bodies to archive, bounded summaries retained), + history preserved in git. + +--- + +Drafts not yet delivered: GA-R7, stage-status vocabulary A/B (in that +order).