From cd1675a90c2eaaa82b45bc11960decdade0ba88c Mon Sep 17 00:00:00 2001 From: kami Date: Fri, 28 Aug 2026 01:59:12 +0400 Subject: [PATCH] Record F38 and F39 The agent guessed an undocumented schema and was never told it guessed wrong. The operator noticed the stall before the system reported anything. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_011xsXyr5J1RACo71YeKG3Pu --- BURNIN.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/BURNIN.md b/BURNIN.md index fc59d7f..e5750e0 100644 --- a/BURNIN.md +++ b/BURNIN.md @@ -1607,3 +1607,32 @@ implement launch -> correction above accepted plan above accepted research The correction is held until the plan successor is definitely live. Posting earlier still exercises F20 and F23, but it cannot prove a mid-plan correction outranks accepted research and the current trajectory. + +### F38 and F39: the agent guessed a schema, and was never told it guessed wrong + +Run 5 sealed `research.json` at 01:47:52 and wrote +`{"from": "research", "to": "plan"}`. Nothing moved for five minutes. The +operator noticed before the system reported anything. + +```text +research artifact: json: cannot unmarshal string into Go struct +field Research.dead_ends of type workphase.DeadEnd +``` + +F38: the brief said `Seal .orchestra/research.json before you ask` and +described the contents in prose. It never stated the schema. The agent wrote +`dead_ends` as strings where the decoder wants `{tried, why_failed}` objects. +Everything else in the artifact was correct. + +F39: `requestPhase` refused through `recordError` alone. `answerRefusedPhase` +ran only on a coordinator 409, so a local decode failure reached nobody. The +session parked at a boundary with no feedback, and worker health holds one +error slot (F18), so even that trace was overwritable. + +F39 is the serious half. F38 alone costs one corrected file. F39 turns any +local refusal into a silent stall. + +Fixed in `0bd86e2`. The brief carries the shape, and every local refusal now +reaches the agent. `TestPhaseSealSchemasDecode` decodes each documented shape +with the function the worker uses: flipping `dead_ends` back to strings +reproduces run 5's exact error at build time.