Skip to content

fix(prose-tests): a confirmed failure reports both runs' checks#581

Open
leeovery wants to merge 1 commit into
fix/prose-world-log-is-the-walkersfrom
fix/prose-orchestrator-per-run-checks
Open

fix(prose-tests): a confirmed failure reports both runs' checks#581
leeovery wants to merge 1 commit into
fix/prose-world-log-is-the-walkersfrom
fix/prose-orchestrator-per-run-checks

Conversation

@leeovery

@leeovery leeovery commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

The quick-fix verdict showed one CHECKS block with two FAILs. What actually happened: the first walk's checks all passed and it failed only on a path step; the confirmation walk then skipped two prescribed calls and its checks caught that. The single block was the second run's, standing silently for both — reading as though the case's checks failed, when the failures were one walk's behaviour.

The orchestrator was obeying its own instruction — report the evidence from the second run — which is right for path evidence and wrong for checks: checks that pass on one walk and fail on the other are not a property of the prose. They're the two walks behaving differently, and that variance is itself a finding — the exact signal separating a defect from an unreliable walk.

A confirmed or flaky verdict now carries both runs' check blocks, labelled (first walk: / confirmation:), with any divergence named as walk variance. Untangling this took transcript archaeology the report should have made unnecessary.

Test plan

  • Agent-prose change; takes effect on reload, proven by the case re-run above the stack

🤖 Generated with Claude Code

Stack

  1. docs(design): prose-tests programme design log #544
  2. feat(prose-tests): the framework — cases, worlds, runner, skill #545
  3. test(prose): feature happy-path corpus — five worlds, seven cases #546
  4. test(prose): bugfix corpus — the investigation-centric surfaces #548
  5. test: retry recursive teardown removals — kill a class of phantom failures #549
  6. fix(entry-skills): close the handoff fences — six files render their arms wrong #550
  7. docs: a contributing page for working on the system #551
  8. fix(entry-skills): every handoff arm says to invoke the skill #552
  9. fix(implementation): environment setup belongs to the setup reference alone #553
  10. fix(prose-tests): the asserter is told which substitutions were armed #554
  11. feat(prose-tests): the mid-flow substitution, and a world only prose can describe #555
  12. test(prose): claims assert consequences, not what was displayed #556
  13. feat(prose-tests): record everything the agents do, results included #557
  14. fix(discussion-entry): the handoff reports the source it actually had #558
  15. fix(prose-tests): the stop hook records, and names the model that walked #559
  16. fix(prose-tests): command output was never actually recorded #560
  17. feat(prose-tests): judge the walk as told, not the summary returned #561
  18. feat(prose-tests): decide in code what an agent should not be deciding #562
  19. test(prose): a case starts where a session starts #563
  20. feat(prose-tests): walk on Sonnet, judge on Opus, escalate a failure #564
  21. test(prose): give the eight read-only cases something that can fail #565
  22. test(prose): only walks that can be observed, and checks that survive the trip #566
  23. fix(prose-tests): the verdict names only the model the record names #567
  24. test(prose): discovery, walked to the point where work first exists #568
  25. fix(prose-tests): the asserter judges which of prose or walker was at fault #569
  26. docs(conventions): a step whose reference routes every exit still signposts #570
  27. test(prose): discovery's epic arm, to the same durability boundary #571
  28. fix(prose-tests): keep the walk's closing turn, and name the one live difference #572
  29. fix(prose-tests): prescribe the cross-check, drop a check that cannot fire, lint the scope #573
  30. test(prose): declare the prose each case actually walks #574
  31. fix(investigation): the symptom interview never ran for work shaped in discovery #575
  32. feat(prose-tests): conduct — playing a person where a script cannot reach #576
  33. fix(prose-tests): what a write put in a file is evidence, not incident #577
  34. fix(investigation): the interview starts from the carrier, not over it #578
  35. test(prose): quick-fix scoping, the whole definition stage in one walk #579
  36. fix(prose-tests): the world log is the walker's record #580
  37. fix(prose-tests): a confirmed failure reports both runs' checks #581 👈 current
  38. fix(prose-tests): each prescribed command runs as written #582
  39. fix(scoping): context gathering reads the whole carrier, asks only the gaps #583

This was referenced Jul 27, 2026
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 150a6a0 to a2928b6 Compare July 27, 2026 14:33
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 5291ed9 to fad792e Compare July 27, 2026 14:33
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from a2928b6 to 5a4f771 Compare July 27, 2026 14:35
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from fad792e to 83ad9fa Compare July 27, 2026 14:35
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 5a4f771 to 2299367 Compare July 27, 2026 14:38
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 83ad9fa to 111d6db Compare July 27, 2026 14:38
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 2299367 to 4b2b6ea Compare July 27, 2026 14:40
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 111d6db to 4b7b731 Compare July 27, 2026 14:40
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 4b2b6ea to ce87e48 Compare July 27, 2026 14:42
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 4b7b731 to de40142 Compare July 27, 2026 14:42
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from ce87e48 to 6d2c558 Compare July 27, 2026 14:44
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from de40142 to ffa0f38 Compare July 27, 2026 14:44
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 6d2c558 to c70435a Compare July 27, 2026 14:46
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from ffa0f38 to c288e01 Compare July 27, 2026 14:46
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from c70435a to e1bf94e Compare July 27, 2026 14:48
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from c288e01 to e0b47ad Compare July 27, 2026 14:48
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from e1bf94e to bea249c Compare July 27, 2026 14:50
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from e0b47ad to 368c476 Compare July 27, 2026 14:50
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from bea249c to 8101795 Compare July 27, 2026 14:52
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 368c476 to 60f79a3 Compare July 27, 2026 14:52
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 8101795 to 2958054 Compare July 27, 2026 15:43
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 60f79a3 to 6035c9f Compare July 27, 2026 15:43
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from 2958054 to bda6557 Compare July 27, 2026 15:44
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 6035c9f to 1f1b477 Compare July 27, 2026 15:44
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from bda6557 to a47bfa5 Compare July 27, 2026 15:46
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 1f1b477 to 9f7512f Compare July 27, 2026 15:46
The quick-fix verdict showed one CHECKS block with two FAILs in it. What
actually happened: the first walk's checks all passed and it failed only
on a path step; the confirmation walk then skipped two prescribed calls
and its checks caught that. The verdict's single block was the second
run's, standing silently for both — reading as though the case's checks
failed, when the check failures were one walk's behaviour.

The orchestrator was following its own instruction: report the evidence
from the second run. That instruction is right for the path evidence and
wrong for the checks, because checks that pass on one walk and fail on
the other are not a property of the prose at all. They are the two walks
behaving differently — and that variance is itself a finding, the exact
signal that separates a defect from an unreliable walk.

A confirmed or flaky verdict now carries both runs' check blocks,
labelled per run, with any divergence between them named as walk
variance. Untangling this from the verdict took transcript archaeology
that the report should have made unnecessary.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@leeovery
leeovery force-pushed the fix/prose-world-log-is-the-walkers branch from a47bfa5 to a6e8d20 Compare July 27, 2026 15:48
@leeovery
leeovery force-pushed the fix/prose-orchestrator-per-run-checks branch from 9f7512f to 4c3d6b4 Compare July 27, 2026 15:48
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