Record the typed mismatch and the reopen, proven in run 11

The last rung. A plan sealed through the phase endpoint asserted a helper the
script does not define, and the implementer reported it rather than improvising
or working around it.

Every authority property held. The report carried an observation and no
replacement plan. Orchestra chose the transition. The old plan stayed accepted
until the replacement sealed, then moved to PlanHistory, and progress did not
carry across the ref change. The replacement rendered verbatim into a fresh
implement session.

The three failed attempts are kept, because each was the agent being right: a
file it can restore is reversible, a human correction is authoritative, and a
competent planner does not author a false premise.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVbaKucEYBjMqVeUgJUsc1
This commit is contained in:
2026-08-28 17:06:18 +04:00
parent c4306dba28
commit 936fa74cf0
+55 -9
View File
@@ -1992,12 +1992,57 @@ reads as authoritative.
| A legacy plan degrades honestly | Decoded from the real CAS artifact `1e12fcf0`: zero phases, 1646 bytes of markdown, the legacy notice present, the progress block empty |
| Review, resubmission and merge still work | Run 8: PR 11, changes requested, resubmitted, merged, receipt binds `ec320c82` |
### What is not proven
### The typed mismatch and the reopen, run 11
**The typed mismatch and the reopen.** `.orchestra/plan-mismatch.json` was never
written, across two deliberate attempts.
Proven whole, on the fourth attempt. The three failed attempts are worth
keeping, because each one was the agent being right.
Both attempts tested the wrong thing, and the agent was right both times:
The setup that worked removes the planner from the loop and the race with it.
Let research seal normally, then `POST /v1/tasks/<id>/phase` from the TUI
surface with a plan authored to assert something false about the repository.
Run 11's plan said `scripts/orchestra_e2e_healthcheck.sh` defines an
`emit_json()` helper at line 12 with three call sites and a format global. The
script has none of those.
```text
13:01:28 implement launched against the false plan
13:01:56 PlanMismatchRecorded phase-1 requested_action=replan
13:01:56 plan reopened; plan_ref still 91c4dbd4; plan_history empty
13:02:33 replanning session launched
13:03:42 replacement refused at seal, a command outside verification policy
13:04:46 corrected replacement seals
plan_ref 91c4dbd4 -> b9bcb60a
plan_history [] -> ['91c4dbd4']
plan_progress empty
13:05:28 fresh implement session, 7827 bytes of replacement plan verbatim,
phase-1 "not started"
```
The report carried an observation and no replacement plan:
```text
observed: "defines no helper at all. Line 12 is 'exit 0' inside the
--help branch. Output leaves the script from four bare
printf calls (lines 8-11 help, line 21 json, line 25 plain
success)..."
contradicts: "Phase 1 edits that helper, Phase 2 moves its three call
sites, and Phase 3 deletes the global. None of those three
targets exist in the file."
evidence: six file:line citations
requested_action: replan
```
Every authority property held. The agent reported and did not decide. A
recorded mismatch did not supersede the accepted plan, which stayed accepted
for the whole replanning window. Progress did not carry across the ref change.
`fb7135e` fired a second time inside this run, on the replacement plan, which
is the seal-time refusal working on a plan nobody set up to fail.
### Three attempts that failed, and why they were wrong
Each of these tested something that is not a plan mismatch. The agent was right
every time:
- Rewriting a file the plan depends on is *reversible*. The implementer
restored it from master and commented "Restore the byte-pinned USAGE
@@ -2008,12 +2053,13 @@ Both attempts tested the wrong thing, and the agent was right both times:
as an outstanding item: "The accepted plan text still specifies exit 2 and an
in-loop chain; it is stale against the correction."
- Letting a competent planner author the plan cannot produce this case at all.
It researches first, so its premises are true.
`plan-mismatch.json` is for the case where the **repository** contradicts the
plan and no human has spoken. Proving it needs a purpose-built task where the
plan asserts something false about the repo that the implementer cannot make
true. The clean route is `POST /v1/tasks/<id>/phase` from the TUI surface,
which seals an authored artifact with no intervention race: seal a plan whose
phase says to extend a helper that does not exist.
plan and no human has spoken. In a repository the agent fully controls, that
has to be constructed: a false premise the implementer cannot repair and cannot
rewrite.
### Defects found, all fixed