diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 4b36721..9baf506 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -36,10 +36,10 @@ (`tofu -chdir=opentofu state list` shows no `vvr1_dc0` or `vr1_dc0_uplink` resources; output quoted in section 2). - A grounding audit is underway with a FULL FREEZE on fixes (charter - section 1, commit `148dcef`). Phase 1 (deterministic inventory + measured - snapshot) is complete (commits `af2e312`, `e999b03`). This document is - the Phase-2 deliverable. Phases 3-6 (probe test, structural rulings, - repair sweep incl. the D-130 ruling, exit criteria) have NOT run. + section 1, commit `148dcef`). Phase 1 complete (`af2e312`, `e999b03`); + this document is the Phase-2 deliverable (ACCEPTED on external review, + `c49da79`); Phase 3 complete -- 3 probes, 21/21 PASS, holes map at + `docs/audit/phase3-grounding-test-20260718.md`. Phases 4-6 have NOT run. - The vcloud host bookend (patch + reboot onto kernel -136, `docs/dc0-deploy-readiness.md:107`) HAS happened: host rebooted ~2026-07-17 23:39, both guests self-recovered via autostart @@ -207,7 +207,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 | Not run (no probe outputs exist; charter section 4) | +| 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) | | 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`) | @@ -215,7 +215,7 @@ | 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 | | G7 | New captured plan == the post-D-130 expected triple recorded in section 5 | re-plan to a capture file after G5+G6 | session | Impossible today: expected triple UNRESOLVED (section 5) | | G8 | Same-session pre-apply re-verify: 6 planes still empty (0 leases / 0 attached domains) | run in the SAME session as the apply | session | Last verified in a prior session only (finding doc:259-265) | -| G9 | DC0 outer apply (deploy step A) | operator-gated, logged (`run-logged.sh`), after G1-G8; audit exit criteria met (charter Phase 6) | operator | STOPPED (`43b29d7`); state shows nothing DC0 applied | +| G9 | DC0 outer apply (deploy step A) | operator-gated, logged (`run-logged.sh`), after G1-G8; audit exit criteria met (charter Phase 6). CANONICAL ENTRY DOC (probe hole H1): `runbooks/dc-dc-phase2-tofu-dc-substrate.md`, with `docs/dc0-deploy-readiness.md` section E as the step table | operator | STOPPED (`43b29d7`); state shows nothing DC0 applied | | G10 | Deploy steps B-E in-sequence gates: SEC-010 `--host-nodes --check` on vvr1-dc0; depth-4 nested boot; D-125 foreign-MAC egress test; MAAS reachability + `TF_VAR_maas_api_key` before step D; netem placeholder step E | exercised during the gated deploy | session (each mutation operator-approved) | Not reached (`docs/dc0-deploy-readiness.md:67-84,170-179`) | | G11 | Operator signs THIS document | read top-to-bottom; discrepancies resolved in the document | operator | Unsigned (this is the draft) | | G12 | `vr1-dc1` build | operator rules dc1 transit/rack addressing; then vars + substrate authored | operator | HELD (`docs/dc0-deploy-readiness.md:100-103`) | diff --git a/docs/audit/phase3-grounding-test-20260718.md b/docs/audit/phase3-grounding-test-20260718.md new file mode 100644 index 0000000..f270c8d --- /dev/null +++ b/docs/audit/phase3-grounding-test-20260718.md @@ -0,0 +1,361 @@ +# Phase-3 fresh-agent grounding test -- scorecard and holes map (2026-07-18) + +Charter section 4. Three clean-context probes (A/B/C), identical prompts, +independent runs, no shared scratchpad, repo-only at HEAD `c49da79`, +read-only, live commands forbidden. Each answered the 7-question set with +path:line citations. Scored by the audit session against ground truth +(docs/CURRENT-STATE.md + the Phase-1 captures); load-bearing probe citations +spot-verified against the tree before scoring (opentofu-validate.sh:189 PASS +line; platform-traps.md:142 in-place bounce; workflow doc :311-316 config.xml +clobber). Raw probe returns are in the appendices (punctuation normalized to +ASCII; content verbatim). + +## Scorecard + +| Q | Probe A | Probe B | Probe C | Verdict | +|---|---|---|---|---| +| 1 stage + next action | PASS | PASS | PASS | unanimous, correct (Stage 3/Phase 2, apply STOPPED, next = audit Phase 3 + G4 verifications) | +| 2 applied vs authored (3+3) | PASS | PASS | PASS | all from state/measurement citations, none from changelog prose | +| 3 open gates + closers | PASS | PASS | PASS | all reproduced G1-G15 with owners | +| 4 pre-apply commands + required reading | PASS | PASS | PASS | all three concluded NO APPLY IS JUSTIFIABLE TODAY (expected triple UNRESOLVED pending D-130) -- the correct answer | +| 5 three most dangerous traps | PASS | PASS | PASS | seed-replace bounce + KiB-vs-MiB unanimous; third pick varied (no-cpu-block/svm, in-place bounce, config.xml clobber) -- all real, all cited | +| 6 D-NNN ruling authority | PASS | PASS | PASS | unanimous: design-decisions.md Status line ONLY; changelogs not trustable (GA-F14) | +| 7 DC0 redeploy entry doc | PASS | PASS | PASS | all reached runbooks/dc-dc-phase2-tofu-dc-substrate.md and correctly answered "NOT without leaving the repo" (operator gates + out-of-repo secrets); first-opened doc DIVERGED -> hole H1 | + +Score: 21/21 answers PASS. Zero wrong, zero UNANSWERABLE, zero guessed +values. No question was failed by any probe; the double-weight rule +(all-three-fail) had nothing to attach to. + +Primary success metric (operator-endorsed, charter 1a): a cold session can +stand up from the repo alone and know where it is -- MET at this checkpoint. +All three probes oriented CLAUDE.md -> SKILL.md routing table -> +docs/CURRENT-STATE.md without being steered. + +NOTE: this is the Phase-3 baseline, not the exit gate. Charter Phase-6 item 3 +requires a NEW trio at audit exit, scoring 7/7 on at least two of three. + +## Holes map (the Phase-5 documentation queue from this test) + +- **H1 (minor, routing):** the repo names no SINGLE entry document for the + DC0 deploy. Probe A opened the phase-2 runbook (via the workflow gap + register), probe B opened dc0-deploy-readiness.md (its own "a FRESH session + starts the deployment from here" banner), probe C opened CURRENT-STATE.md + then the workflow doc then the runbook. All converged on the same runbook, + so this scored PASS, but the readiness doc's falsified DEPLOY-READY banner + (GA-F02, frozen) makes the ambiguity live. AMENDED same-day: the G9 row of + CURRENT-STATE.md now names the canonical entry path. Residual (banner + correction) already queued as GA-F02 in Phase 5. +- **H2 (note, no action):** the charter's Phase-6 item 4 still cites the + standing 5/0/6 gate; probes B and C both met it and both correctly resolved + precedence to CURRENT-STATE.md section 5 (UNRESOLVED pending D-130). The + charter's own escape clause ("if the audit legitimately changes the + expected counts...") covers this; no amendment. +- **Observations (positive):** the stale CLAUDE.md hostname (GA-F05) misled + no probe; probe A correctly inferred from committed audit state that it was + itself a Phase-3 probe -- the repo carries the audit's own state cold. + +## Disposition + +- G1 CLOSES with this scorecard (evidence: this file + appendices). +- CURRENT-STATE.md amended (line-neutral, within the ~350-line budget): + G1 evidence cell -> run + result; section-1 phase status; G9 row -> the + canonical entry path (H1). The amended version is the G11 review copy. +- Next per sequencing directive: operator personally runs section 10's + commands and reads CURRENT-STATE.md top-to-bottom as the substance of the + G11 signature; Phase 4 ruling drafts then go to the operator one per + exchange (GA-R5 discipline). + +--- + +## Appendix A -- probe A return (normalized to ASCII) + +1. Stage / next action. Stage 3 / Phase 2 of the VR1 DC-DC track ("OpenTofu +builds each DC substrate"), with the DC0 outer tofu apply (deploy step A) +STOPPED at its own gate, and a grounding audit with a FULL FREEZE on fixes in +effect (docs/CURRENT-STATE.md:27-42; stop commit 43b29d7; charter commit +148dcef). Audit Phase 1 and Phase 2 are done, and Phase 2 was ACCEPTED on +external review (commit c49da79; docs/audit/grounding-audit-20260718.md, +"Phase-2 review disposition"). The very next action is audit Phase 3 -- the +fresh-agent grounding test, three clean-context probes scoring this exact +7-question set (gate G1, docs/CURRENT-STATE.md:210; charter:135-158) -- this +session appears to be one of those probes. Then probe holes fold into +CURRENT-STATE.md, operator signs it (G11), then Phase-4 rulings (c49da79 +sequencing note 1). + +2. Applied vs authored-only. Applied (from tofu state + measurement, +docs/CURRENT-STATE.md:49-97): (a) the voffice1 headend VM (MAAS 3.7.2 + LXD +5.21.5), (b) the office1-opnsense edge VM (26.7), (c) the office1-local +network, the three D-100 mesh-link networks, the six live vr1-dc0 plane +networks, and the dc0/dc1 storage pools -- 20 resources total (2.1). +Authored-but-NOT-applied (docs/CURRENT-STATE.md:133-157): (a) module +"vvr1_dc0" -- the DC0 containment VM (opentofu/main.tf:360), (b) module +"vr1_dc0_uplink" -- the D-125 simulated ISP net (opentofu/main.tf:341), +(c) the entire inner root opentofu/vr1-dc0-substrate/ (no state file); also +D-129 scripts/opnsense-plugins.sh (built, not live-applied), SEC-010 +enforcement, and phase3-6 runbooks. + +3. Open gates. G1-G15, tabulated with owners and closers at +docs/CURRENT-STATE.md:206-224. Highlights: G1 Phase-3 probes (this +exercise); G2 Phase-4 GA-R1..R6 rulings (operator); G3 Phase-5 repair sweep +of GA-F01..F15 (freeze until then); G4 the two D-130 throwaway verifications +(v7/v8); G5 the D-130 seed-volume mechanism ruling (operator, quoting G4 +output); G6 state reconcile of autostart+seed without bouncing guests; G7 a +fresh plan capture equal to the post-D-130 expected triple (impossible today +-- the triple is deliberately unrecorded, :199-201); G8 same-session +re-verify the 6 planes are empty; G9 the gated DC0 outer apply itself; G10 +deploy steps B-E in-sequence gates; G11 operator signature on +CURRENT-STATE.md; G12 vr1-dc1 addressing ruling; G13 D-129 residuals; G14 +nine OPEN SEC rows; G15 D-068/D-071 rulings. + +4. Before any tofu apply. Check the workflow doc's tooling gap register for +open blockers (SKILL.md:141-142), open the logged shell bash +scripts/run-logged.sh