diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index f142fd1..3391a02 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -209,7 +209,7 @@ |---|------|----------------|-------|---------------------------| | 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 | ruling-type gate (GA-R6 rule 6): closes when every item carries a GA-R5 Status block | operator | CLOSED 2026-07-18: all seven GA-R + vocabulary (Option A + H1) RATIFIED, utterances quoted (`docs/audit/ga-rulings.md`, through commit `fe4f1c4` + this one) | -| G3 | Audit Phase 5: repair sweep of GA-F01..F15 (incl. memory hygiene GA-F05..F08, skill sweep) | operator-gated fix batches, each commit naming its GA-F | operator + session | Batch 0 OPENED by operator 2026-07-19; items 0.1 (repo-lint L10, GA-R1/C1), 0.2 (SEC repoint, GA-R4/F3), 0.3 (counter hardening, GA-F15), 0.4 (extractor vocab scan, GA-F10/H1) landed; batch verification pending; FREEZE holds for all un-gated surfaces | +| G3 | Audit Phase 5: repair sweep of GA-F01..F15 (incl. memory hygiene GA-F05..F08, skill sweep) | operator-gated fix batches, each commit naming its GA-F | operator + session | Batch 0 OPENED by operator 2026-07-19; items 0.1 (repo-lint L10, GA-R1/C1), 0.2 (SEC repoint, GA-R4/F3), 0.3 (counter hardening, GA-F15), 0.4 (extractor vocab scan, GA-F10/H1) landed; Batch 0 verification PASSED 2026-07-19 (3 harnesses green, gauntlet ALL GREEN 69, repo-lint 0-fail); Batches 1-6 await their gates; FREEZE holds for all un-gated surfaces | | 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) | | G6 | State reconcile of autostart + seed WITHOUT bouncing guests | gated mechanism per the finding: `tofu import` (reads autostart back) or state surgery, or an operator-scheduled maintenance-window apply; `-refresh-only` is PROVEN a no-op | operator | Operator earlier selected reconcile-first (finding doc:136); superseded into audit sequencing by `2b718f5`; nothing reconciled yet | diff --git a/docs/changelog-20260719-phase5-sweep.md b/docs/changelog-20260719-phase5-sweep.md new file mode 100644 index 0000000..3e133e1 --- /dev/null +++ b/docs/changelog-20260719-phase5-sweep.md @@ -0,0 +1,69 @@ +# Changelog 2026-07-19 -- GA Phase-5 sweep session (one changelog for the whole +# session per GA-R2 amendment D1; batches append here as they close) + +Executing session for the Phase-5 repair sweep (`docs/audit/phase5-sweep-plan.md`, +reviewed PASS + S1-S5). Every batch is operator-gated at its stated gate point; +every commit names its GA-F/GA-R trace and carries its own revert note. Status +lives in `docs/CURRENT-STATE.md` (GA-R1) -- this file records what CHANGED. + +## Batch 0 -- tooling first (OPENED by operator 2026-07-19; repo-only, no cloud contact) + +1. **0.1 repo-lint L10 status-coupling check (GA-R1 rule 8 / C1)** -- commit `0b991a5`. + - WHAT: `repo_lint.py` gains L10: a change set modifying a state-bearing surface + (anything under `docs/audit/`; a `**Status:` line in design-decisions.md; a + gate row `| G |` in session-ledger.md) without touching CURRENT-STATE.md is + flagged. Pending working-tree set when dirty, HEAD commit when clean. WARN this + batch (`L10_FAIL = False`); the flip to FAIL is a one-constant change due at + Batch 1 open (sweep plan: "WARN for one batch"). + - WHY: amendment C1's Phase-5 implementation clause, verbatim. DIVERGENCE NOTED: + the sweep plan's item 0.1 paraphrase said "CURRENT-STATE gate rows", which is + vacuous (editing a CURRENT-STATE row touches CURRENT-STATE by construction); + the ratified utterance says "ledger gate rows" and the ruling wins. The ledger + carries no gate rows today; the pattern guards their reappearance. + - Harness: tests/repo-lint T34-T41 (git fixtures), 42/42 PASS. + - REVERT: `git revert 0b991a5`. + +2. **0.2 ledger-scan SEC reporting repointed at security-ledger.md (GA-R4/F3)** -- + commit `b504cb6`. + - WHAT: scan emits open COUNT + ID list + register-of-record pointer; row-level + disposition text dropped from scan output. Session-ledger machine-derived SEC + bullet re-seeded to pointer + count form. G14 evidence cell repointed at + `docs/security-ledger.md` same commit. + - WHY: F3 verbatim ("pointer and a scan-derived count, never row-level + dispositions"). MEASUREMENT CORRECTION (GA-R1/C2): G14's count said 9; its own + enumeration and the scan both measure 8 OPEN rows -- corrected to 8, divergence + noted in the cell. + - Harness: tests/ledger-scan +4 checks, 41/41 PASS. + - REVERT: `git revert b504cb6` (restores the 2026-07-18 cell incl. its count error). + +3. **0.3 ledger-scan wrap-aware next-free exclusion (GA-F15)** -- commit `527f1fd`. + - WHAT: the "next-free"/"reproduc*" exclusion now suppresses the matching line + AND the immediately following line (window exactly one line, reset per file), + so a quoted next-free value whose hyphenated token wraps no longer counts as an + assignment. Chose this over assignment-site counting: DOCFIX/BUNDLEFIX have no + single register file to key assignment sites on (unlike D headers). + - WHY: GA-F15 -- the wrap class fired twice live inside the audit itself + (CURRENT-STATE section 9, now marked FIXED). Live counters re-verified + UNCHANGED post-fix: D=130, DOCFIX=197, BUNDLEFIX=052. + - Harness: tests/ledger-scan +3 checks, 44/44 PASS. + - REVERT: `git revert 527f1fd`. + +4. **0.4 record-audit status scan keyed to the legal token set (GA-F10 / vocab H1)** + -- commit `f7580fd`. + - WHAT: extractor knows Option A: legal OPEN/BLOCKED/HELD/CLOSED (OPEN was + previously UNSCANNED -- post-migration OPEN-vs-CLOSED contradictions would have + been invisible); DONE/TO RUN/RUNNING added; new report section 6 classifies + every distinct token and flags illegal tokens + event words (VOID/REOPENED/ + SUPERSEDED) minted in status position. Prose event words stay legitimate + row-history vocabulary. Report-only: 0/1/2 exit contract unchanged. + - WHY: H1 requires the scan before any token migration (Batch 2.5 dependency). + Live sanity run (scratch --out; the committed Phase-1 capture untouched): + 12 distinct tokens, 163 flagged counted occurrences = Batch 2.5's work-list. + Contradiction groups 12 -> 13 on the scratch run: the OPEN-token detection + gain, not drift. + - Harness: tests/record-audit +9 checks, 33/33 PASS. + - REVERT: `git revert f7580fd`. + +Batch 0 verification: all three touched harnesses green (42/42, 44/44, 33/33), +full gauntlet + repo-lint results recorded in the batch completion report and the +ledger entry for this session. diff --git a/docs/session-ledger.md b/docs/session-ledger.md index 9331212..1c3637e 100644 --- a/docs/session-ledger.md +++ b/docs/session-ledger.md @@ -1156,3 +1156,13 @@ - POST-CLOSE ADDENDUM (2026-07-19): sweep plan externally reviewed PASS; amendments S1-S5 applied in a single commit (15ccfbd). Batch 0 was PRESENTED and HELD -- operator routed execution to the fresh session. Fresh session: read docs/audit/phase5-sweep-plan.md + docs/CURRENT-STATE.md, then gate Batch 0. + +## SESSION 2026-07-19 -- Phase-5 sweep, Batch 0 (IN FLIGHT; this session continues per S5a) + +- Bootstrap clean (pull up-to-date at 16af82a; repo-lint 0-fail/1-legacy-WARN; scan reconciled). +- Operator OPENED Batch 0 (gate point per the sweep plan). Items landed, one commit each with + revert notes: 0.1 repo-lint L10 (0b991a5), 0.2 SEC repoint (b504cb6), 0.3 wrap-aware counters + (527f1fd), 0.4 extractor vocab scan (f7580fd). What/why: docs/changelog-20260719-phase5-sweep.md. +- Status of gates/batches lives in docs/CURRENT-STATE.md ONLY (G3 row updated per-commit). +- L10 severity flip (WARN -> FAIL, one constant) is DUE AT BATCH 1 OPEN -- do not forget. +- Next gate: operator opens Batch 1 (D-130 verification pair v8/v7 -> ruling -> reconcile -> re-plan).