Skip to content

docs(#558): m-driver-pin-rollout — gate discharged, doc designed, PARKED at the quorum gate (D-13) - #685

Merged
sunholo-voight-kampff merged 1 commit into
devfrom
sprint/iter188-driver-pin-rollout-doc
Aug 13, 2026
Merged

docs(#558): m-driver-pin-rollout — gate discharged, doc designed, PARKED at the quorum gate (D-13)#685
sunholo-voight-kampff merged 1 commit into
devfrom
sprint/iter188-driver-pin-rollout-doc

Conversation

@sunholo-voight-kampff

Copy link
Copy Markdown
Collaborator

Iteration 188 record. Docs only — no code change; the deliverable is a design doc that parked at the quorum gate, plus the measurements that park it well.

The gate is discharged

The charter's m-driver-pin-rollout row was tagged [BLOCKED-ON-EVIDENCE] pending "≥3 consecutive V1 fires logging the pin with a normal iteration completing". Measured, with controls: 5 pin lines in /tmp/ailang-mission-control.log, DRIVER PIN FAILED = 0 with its known-positive control firing, fires 185/186/187 each pinned → started → completed with charter records.

Gate 2 corrected the item's scope before the designer ran

  • nightly-lang-eval.sh is not a launchd entry point — no plist installed or in-repo, no crontab, no log (control: nightly-eval.plist in both locations). The charter's "five" is four.
  • Those four split into repo-rooted (nightly-eval.sh:28, os-rotation-filler.sh:12) and script-only (mission-recovery.sh, rig-watchdog.sh — no REPO=, zero repo reads).
  • None spawns claude (0/0/0/0; mission-recovery.sh:50 is a comment, control mission-control.sh = 24), so the charter's per-checkout human onboarding prerequisite applies to zero of them.

Two findings the designer added, both confirmed first-party

  • Averted rig hazard: dev.ailang.mission-recovery.plist injects MISSION_NAME=v1 at StartInterval 240, so the pin helper's default dir would have checkout --forced the live V1 mission worktree every four minutes under a running iteration.
  • The acceptance gate is red at base: make test-launchd-drivers is 9-passed/26-failed rc=2 inside a pinned session vs 17/0 rc=0 with AILANG_DRIVER_*/MISSION_WORKDIR/MISSION_NAME sanitized. CI is green only because CI's env is clean.

Why it parks

Quorum BLOCKED ×2, both reviewers present both rounds, all four objections measured rather than forwarded. Round 2's two objections came back worse than filed:

  • os-release-snapshot.sh / publish-unified-dashboard.sh root themselves from $0, not cwd, so the doc's data-continuity strategy cannot work by construction — and the reviewer's own proposed_fix presumes an audit result that is false.
  • The automatic source-clone updater does exist (os-rotation-filler.sh git-pulls every 45 min), refuting the literal premise — but M2 pins that very filler, so the rollout would delete the only delivery path for every later milestone.

Both need a controller-invented resolution, which the narrow-refinement carve-out forbids → Standing rule 2 binds. D-13 asks Mark one word: (A) exclude the filler / (B) fast-forward inside pin-root.sh / (C) re-root durable writes through $AILANG_DRIVER_SRC.

metered=$0.1778 against the $5 ceiling.

🤖 Generated with Claude Code

…KED at the quorum gate (D-13)

The `[BLOCKED-ON-EVIDENCE]` gate on the charter's m-driver-pin-rollout row is now
DISCHARGED by measurement: 5 pin lines in the V1 driver log, `DRIVER PIN FAILED` = 0
with its known-positive control firing, and fires 185/186/187 each pinned, started and
completed with charter records.

Gate 2 then corrected the item's scope before any designer ran. `nightly-lang-eval.sh`
is NOT a launchd entry point (no plist installed or in-repo, no crontab, no log — control:
`nightly-eval.plist` present in both locations), so the charter's five are four; and those
four split into repo-rooted (nightly-eval, os-rotation-filler) vs script-only
(mission-recovery, rig-watchdog, which have no REPO= and read zero repo artifacts). None of
the four spawns `claude` (0/0/0/0; mission-recovery's single hit is a comment, control
mission-control.sh = 24), so the charter's per-checkout human onboarding prerequisite
applies to zero of them — a question the charter explicitly asked to be measured.

Designer `claude:claude-fable-5` (rotation, two bounded passes) produced a 434-line doc
with 24 verification rows and found two things the controller had not, both confirmed
first-party: `mission-recovery.plist` injects MISSION_NAME=v1 at a 240s interval, so the
pin helper's default dir would have `checkout --force`d the LIVE V1 mission worktree every
four minutes under a running iteration; and `make test-launchd-drivers` is 9-passed/26-failed
rc=2 inside a pinned session versus 17/0 rc=0 with AILANG_DRIVER_*/MISSION_WORKDIR/MISSION_NAME
sanitized — the acceptance gate is red at base in exactly the environment the loop runs in.

Quorum BLOCKED twice, both reviewers present in both rounds, all four objections measured
rather than forwarded. Round 1's fetch-timeout objection had a false premise (the helper
already bounds the fetch via `_pin_bounded` at 120s) but correct substance (120s is 2x
rig-watchdog's 60s cadence); one bounded revision applied per-driver bounds plus a
non-vacuous AC. Round 2 blocked again, and measuring made both new objections WORSE than
filed:

  V23 — `os-release-snapshot.sh` and `publish-unified-dashboard.sh` root themselves from
        `$0`, not the caller's cwd, so the doc's `cwd=$REPO_DURABLE` data-continuity
        strategy cannot work by construction. The reviewer's own proposed_fix presumes the
        audit comes out clean; it does not, so applying it verbatim would have written a
        false row into the document.
  V24 — an automatic source-clone updater DOES exist: `os-rotation-filler.sh` git-pulls at
        :197/398/426/458 every 45 minutes, which is why the clone reads 0 behind. That
        refutes the objection's literal premise — and its conclusion survives for a worse
        reason, because M2 pins that very filler, so the rollout would delete the only
        automatic delivery path for every later milestone.

Both need a controller-invented resolution, which the narrow-refinement carve-out forbids,
so Standing rule 2 binds: PARKED needs-human-review with every measurement banked, and a
new one-word decision D-13 (A: exclude the filler / B: fast-forward inside pin-root.sh /
C: re-root durable writes through $AILANG_DRIVER_SRC).

Also fixes two bookkeeping defects in the loop's own records: the mission log's entry
counter had drifted (iteration 187 wrote `## 187`, colliding with iteration 185's entry),
and that entry omitted the words "Iteration 187", which is what made Gate 4's staleness
tell read 0 on a healthy log while its control read 1.

metered=$0.1778 (two quorum rounds x two present reviewers) against the $5 ceiling.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@sunholo-voight-kampff
sunholo-voight-kampff merged commit 36e399c into dev Aug 13, 2026
21 checks passed
@sunholo-voight-kampff
sunholo-voight-kampff deleted the sprint/iter188-driver-pin-rollout-doc branch August 13, 2026 00:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant