diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 4e404e1..13c53bc 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..R6 structural rulings + the stage-status vocabulary A/B | operator rules each individually | operator | Drafted only (charter section 5; GA-F10 Phase-4 note) | +| 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 RATIFIED 2026-07-18 (`docs/audit/ga-rulings.md`); GA-R2 draft delivered; GA-R6, GA-R4, 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 d85e145..87c0e56 100644 --- a/docs/audit/ga-rulings.md +++ b/docs/audit/ga-rulings.md @@ -116,14 +116,35 @@ ## GA-R1 -- Single source of truth (status), size budget, rotation, as-built division -**Status: DRAFT (delivered 2026-07-18; awaiting operator ruling).** +**Status: RATIFIED 2026-07-18 (operator, with amendments C1 + C2).** +Question as presented (2026-07-18): "Adopt GA-R1 as written -- including +the 360-line cap accounting (body + signature section), same-commit +rotation, the Phase-5 demotions list, and signature-replacement rule 7 -- +or with what amendment?" Operator answer (2026-07-18), exact utterance: +"Ratify with C1 and C2: Amendment C1 (new rule): 'Any commit that changes +a status CURRENT-STATE.md carries -- a gate's state, a capture's currency, +a pin, the decision queue -- updates CURRENT-STATE.md in that same commit. +A status-changing commit that does not touch it is defective by +construction. Phase-5 implementation: repo-lint gains a check flagging +commits that modify state-bearing surfaces (captures, ga-rulings, +design-decisions Status lines, ledger gate rows) without touching +CURRENT-STATE.md.' ; Amendment C2 (extends rule 1): 'CURRENT-STATE.md is +authoritative over other documents, never over measurement. Where a fresh +capture or live measurement contradicts it, the measurement wins: the +document is corrected in the same commit as the new capture, and the +divergence is noted rather than silently harmonized.'" -**Proposed ruling text:** +**Ratified ruling text (as amended; rule 1 extended by C2, rule 8 added +by C1):** 1. `docs/CURRENT-STATE.md` is the ONLY status authority. A status claim (stage state, gate state, plan count, version pin, deploy readiness, decision-queue state) is hand-written NOWHERE else; every other surface - either points at CURRENT-STATE.md or is history. + either points at CURRENT-STATE.md or is history. CURRENT-STATE.md is + authoritative over other documents, never over measurement. Where a + fresh capture or live measurement contradicts it, the measurement wins: + the document is corrected in the same commit as the new capture, and + the divergence is noted rather than silently harmonized. 2. CURRENT-STATE.md itself asserts nothing unevidenced: every claim cites captured command output (dated capture files under `docs/audit/`, or a quoted command + output), a path:line, or a commit hash. @@ -149,8 +170,43 @@ 7. The operator must be able to read the document in full before any signature. Each new signature REPLACES the signature section (git history keeps the old ones); signature blocks do not accumulate. +8. Any commit that changes a status CURRENT-STATE.md carries -- a gate's + state, a capture's currency, a pin, the decision queue -- updates + CURRENT-STATE.md in that same commit. A status-changing commit that + does not touch it is defective by construction. Phase-5 + implementation: repo-lint gains a check flagging commits that modify + state-bearing surfaces (captures, ga-rulings, design-decisions Status + lines, ledger gate rows) without touching CURRENT-STATE.md. --- -Drafts not yet delivered: GA-R2, GA-R6, GA-R4, GA-R7, stage-status -vocabulary A/B (in that order). +## GA-R2 -- Changelog consolidation + +**Status: DRAFT (delivered 2026-07-18; awaiting operator ruling).** + +**Proposed ruling text:** + +1. Changelogs are session-scoped scratch: they record what a session did. + They are NEVER citable as status authority (Phase 1 proved they lie -- + GA-F14; standing wording per the charter). +2. On stage close, per-stage consolidation (the proven v1 do-doc pattern): + the stage's changelogs collapse into ONE consolidated per-stage record; + the individual files are preserved in git history via the consolidation + commit and removed from the working set. +3. Consolidation ROUTES content to its durable home per the as-built + division (GA-R1 rule 6): configuration-of-record detail to the relevant + as-built; traps and invariants to platform-traps/the skill; ruling + material to design-decisions; narrative history to the consolidated + stage record (or docs/archive/). Status content is CURRENT-STATE.md's + alone and is not copied anywhere. +4. Working-set target: docs/ under 25 files. The one-time Phase-5 sweep + consolidates the existing 95 changelogs per stage to reach it, history + preserved. +5. A changelog is named and scoped to its session and stage; nothing in a + changelog outlives consolidation except by moving to a durable home + (rule 3). No new doc class is created to work around this. + +--- + +Drafts not yet delivered: GA-R6, GA-R4, GA-R7, stage-status vocabulary +A/B (in that order).