diff --git a/BURNIN.md b/BURNIN.md index d4416fb..1c74a60 100644 --- a/BURNIN.md +++ b/BURNIN.md @@ -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//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//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