Skip to content

Bound the boot collapse relay to the grounding reply (stop mid-session boilerplate)#356

Merged
StarshipSuperjam merged 2 commits into
mainfrom
claude/jovial-ramanujan-061210
Jun 30, 2026
Merged

Bound the boot collapse relay to the grounding reply (stop mid-session boilerplate)#356
StarshipSuperjam merged 2 commits into
mainfrom
claude/jovial-ramanujan-061210

Conversation

@StarshipSuperjam

@StarshipSuperjam StarshipSuperjam commented Jun 30, 2026

Copy link
Copy Markdown
Owner

A green mechanical check below shows this change conforms to the engine's rules — not that it is correct. What covers correctness is the behavioural steps in Review and your own read of the change; a green check is never a substitute for that. Your merge is the binding gate.

Purpose

Stop the boot grounding relay from leaking into mid-session as invented boilerplate.

  • A standing-alarm relay was being re-stapled onto a later, non-boot turn as "Before we start setup, one standing reminder from the boot check (unchanged since last session):" — a wrapper that exists nowhere in the engine; the model invented it.
  • The engine's (unchanged since last session) machinery (the D-269 anti-habituation collapse) is correct and deterministic; the defect was a relay-discipline gap, not a logic bug.

Impact: standing alarms read as a once-per-session reminder in plain words, not recurring wallpaper — which is exactly what D-269 exists to prevent.

Scope

Bound the AI-facing collapse contract to the grounding reply, and mirror the rule in the runbook.

  • boot.py: extend the AI-facing collapse-contract instruction (and its adjacent comment) to say the relay is a once-per-session act in the grounding reply — no invented "boot check" / "before we start setup" preamble, no re-surfacing the framing on later turns of the same session.
  • boot-session-start.md: mirror the same one-sentence rule in the D-269 bullet so the inline instruction and the canonical runbook agree.
  • test_boot.py: new assertion that the assembled briefing carries the bound.
  • graph.json: regenerated for the two surface edits.

Impact: future sessions relay a standing alarm once, at boot, in plain words.

Out of scope

The deterministic collapse mechanism itself.

  • No change to boot_alarm_ledger.py, _relay_lines, _pushed_alarms, or the ledger compare — the structured-value collapse decision is correct and untouched.
  • The pre-existing disposition-issue-resolution offline-only meta-check note (no local GitHub token) is unrelated and present on clean main.

Impact: this is the smallest fix that closes the leak — instruction text, one test, a regen.

Risk

Low; guardrail-adjacent, not guardrail-weakening. This touches a guarded engine tool (boot.py), so engine-guard will flag it and hold the merge until the guardrail-ack label is applied.

  • The change strengthens an anti-habituation discipline; it loosens no gate. But boot.py is on the guarded list, so the flag is expected.
  • Text-only: no executable path changes, so the collapse behaviour and the operator-visible relay payload are unchanged (verified — see Validation).

Impact: the guard flag is the engine doing its job; the ack is a deliberate, separate acknowledgment of the guarded-file touch — left for the maintainer to apply, never self-applied.

Validation

Full unittest discover green for everything touched; the pre-existing offline FAIL is unrelated.

  • test_boot.py: 115 tests pass, including the new test_collapse_contract_bounds_the_relay_to_the_grounding_reply.
  • test_knowledge.py (59) and test_self_map.py (41) pass after the graph.json regen; self-map.md was already in sync (a content edit doesn't move the manifest).
  • Behavioral check: python tools/boot.py pack shows the AI-facing instruction now carries the once-per-session / no-preamble / no-mid-session-resurface bound, and the operator-visible relay lines are unchanged.
  • The one CI-suite hard finding seen locally (disposition-issue-resolution did not catch its fixture) is the known token-less environment limitation — it reproduces identically on clean main and bites correctly in CI where the token exists.

Impact: an approver can rely on the change being mechanically clean and behaviour-preserving for the collapse logic.

Review

A four-lens deliverable-gate cold review ran (each lens grounded against the source itself); all four cleared it with no blocking or serious findings.

  • Depth that ran: full unit suite + a behavioral read of the assembled briefing, then four independent cold-context review passes — does it meet what was asked, is the software underneath healthy, is it safe to release, does it work for the operator. Each read the diff and ran the change itself.
  • Outcome: no blocking or serious findings from any pass. Two minor points recurred across three passes — the bound was stated in three places with only one mechanically pinned, and the instruction was long and leaned on an invented coinage. Both were fixed in this PR (the code comment now defers to the emitted instruction; the wording was trimmed and the coinage dropped).
  • Those post-review fixes were validated (115 boot tests green, graph + self-map back in sync) but not re-reviewed — so the reviewed version and the merged version differ by that cosmetic tightening.
  • One disclosed residual (spec pass): the only mechanical correlate for an instruction-shaped fix is "the bounding words are present in the briefing," not proof a live model obeys on a later turn — inherent to this class of change, and a behavioral demo would not add much over a multi-turn live session.

Nothing here is something you can run yourself — there's no settled description for this project yet.

Impact: the engine's own account of the review — the approver's merge is the binding gate.

Files of interest

The AI-facing instruction is the load-bearing change.

  • .engine/tools/boot.py — the collapse-contract instruction + comment (the actual fix).
  • .engine/operations/boot-session-start.md — the mirrored D-269 rule.
  • .engine/tools/test_boot.py — the new assertion.
  • .engine/knowledge/graph.json — regenerated.

Impact: the boot.py instruction is what future sessions read every session start.

Claude involvement

Diagnosis and wording are AI judgment; the edits are mechanical.

  • I traced the leak (two cold Explore agents + a full-repo grep) and confirmed the wrapper text is model-invented, not engine-emitted. The bounding wording is mine, in the existing AI-facing register.
  • The decision surface — D-269 / boot-session-start.md — is where this judgment lives.

Impact: the load-bearing judgment is the wording of the bound; everything else is mechanical.

StarshipSuperjam and others added 2 commits June 30, 2026 09:54
…n boilerplate)

The AI-facing collapse contract (D-269) told the assistant HOW to render a
collapsed standing alarm but never bounded WHEN — so a session could re-staple
the "(unchanged since last session)" framing onto an invented "boot check" /
"before we start setup" preamble on a later, non-boot turn. That re-introduces
exactly the habituation D-269 fights, one layer up at the relay, and leaks
internal-machinery jargon into operator copy.

Add a bounding clause to the AI-facing instruction in boot.py (and mirror it in
the boot-session-start runbook): the relay is a once-per-session act in the
grounding reply, named in plain words, with no invented preamble and no
re-surfacing on later turns. Text-only — the deterministic collapse logic
(boot_alarm_ledger, _relay_lines) is unchanged. New test asserts the bound is
present in the assembled briefing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Address two convergent nits from the cold review (no blocking/serious found):
reduce the bound's triplication by having the code comment defer to the emitted
instruction (only the emitted string is test-pinned), and trim the emitted
string — drop the "restapling the boot wrapper" coinage and a negation — so the
instruction is less skimmable. Test-pinned substrings unchanged; 115 boot tests
green, graph + self-map back in sync.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@StarshipSuperjam StarshipSuperjam marked this pull request as ready for review June 30, 2026 17:01
@StarshipSuperjam StarshipSuperjam added the guardrail-ack Deliberately approves a guardrail-weakening change; clears the engine-guard block. label Jun 30, 2026
@StarshipSuperjam StarshipSuperjam merged commit 716d1f0 into main Jun 30, 2026
9 of 10 checks passed
@StarshipSuperjam StarshipSuperjam deleted the claude/jovial-ramanujan-061210 branch June 30, 2026 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

guardrail-ack Deliberately approves a guardrail-weakening change; clears the engine-guard block.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant