Skip to content

test(prose): quick-fix scoping, the whole definition stage in one walk - #579

Merged
leeovery merged 1 commit into
mainfrom
test/prose-quickfix-scoping
Jul 27, 2026
Merged

test(prose): quick-fix scoping, the whole definition stage in one walk#579
leeovery merged 1 commit into
mainfrom
test/prose-quickfix-scoping

Conversation

@leeovery

@leeovery leeovery commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Quick-fix was the only work type with no coverage anywhere. This walks its entire definition stage — entry, context, complexity, specification, format, tasks, conclusion — stopping at the bridge handoff. The first case to take a phase from its opening argument to its completion render.

  • Spine: a seven-element ordering chain across the pass — status check → spec start → spec complete → plan start → plan complete → scoping complete → completion render.
  • conduct carries every user interaction, including the format menu, as a disposition of the described person — and the choice is made a fact by an invariant on project.defaults.plan_format local-markdown, not trusted to roleplay.
  • The carrier deliberately lacks the "where" so gather-context's questioning arm is the only honest reading of its judgement-shaped guard — that's what keeps the case deterministic.
  • New mainlines/quickfix.cjs (init + create, mirroring the feature mainline).

First run: FAIL, correctly — four findings

  1. Confirmed prose defect (both walks): gather-context re-asks the what/why the carrier answers — guard blind to the session log's Exploration, question block a static fence. Fixed four PRs up.
  2. The confirmation walk skipped prescribed registration calls while converging on a passing world — caught by calls_include, the exact hazard it exists for. Walker rule fixed three PRs up.
  3. Orchestrator reported one run's checks for both. Fixed two PRs up.
  4. Orchestrator's own commands leaked into the walker's action log. Fixed one PR up.

Test plan

  • Corpus valid at 13; snapshot byte-deterministic; gates green
  • Full verification is the re-run above the stack, post-reload

🤖 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 👈 current
  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
  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/investigation-no-reask branch from 90c7074 to 41bd445 Compare July 27, 2026 15:57
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 01b05cc to 4a35923 Compare July 27, 2026 15:57
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 41bd445 to e9c9a50 Compare July 27, 2026 15:58
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 4a35923 to f81e281 Compare July 27, 2026 15:58
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from e9c9a50 to 750408e Compare July 27, 2026 15:59
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from f81e281 to 1281307 Compare July 27, 2026 15:59
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 750408e to 839ac1b Compare July 27, 2026 16:00
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 1281307 to 07eac5d Compare July 27, 2026 16:00
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 839ac1b to d807b0c Compare July 27, 2026 16:01
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 07eac5d to 1e4ce9d Compare July 27, 2026 16:01
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from d807b0c to 4e1b761 Compare July 27, 2026 16:02
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 1e4ce9d to 3de9e49 Compare July 27, 2026 16:02
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 4e1b761 to 6e99bc0 Compare July 27, 2026 17:05
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 3de9e49 to 325361b Compare July 27, 2026 17:05
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 6e99bc0 to 610bf6a Compare July 27, 2026 17:06
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 325361b to f0abbad Compare July 27, 2026 17:06
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 610bf6a to 83d2f14 Compare July 27, 2026 17:06
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from f0abbad to c693277 Compare July 27, 2026 17:06
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 83d2f14 to 65a44f1 Compare July 27, 2026 17:07
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from c693277 to eee7e13 Compare July 27, 2026 17:07
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 65a44f1 to fc20113 Compare July 27, 2026 17:08
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from eee7e13 to fda06a8 Compare July 27, 2026 17:08
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from fc20113 to 1e0b88b Compare July 27, 2026 17:08
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from fda06a8 to 03e0c60 Compare July 27, 2026 17:08
@leeovery
leeovery force-pushed the fix/investigation-no-reask branch from 1e0b88b to d978a36 Compare July 27, 2026 17:08
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from 03e0c60 to e19e6a8 Compare July 27, 2026 17:08
@leeovery
leeovery changed the base branch from fix/investigation-no-reask to main July 27, 2026 17:09
Quick-fix was the only work type with no coverage anywhere. This walks
its entire definition stage — entry, context, complexity, specification,
format, tasks, conclusion — stopping at the bridge handoff. The first
case to take a phase from its opening argument to its completion render.

The spine is a seven-element ordering chain across the pass: the entry's
status check, then specification started and completed, then planning
started and completed, then scoping completed, then the completion
render. Alongside it, the format choice is pinned in code — the project
default must be set to local-markdown — rather than trusted to roleplay:
conduct carries every user interaction here, including the format menu,
as a disposition of the described person, and the invariant is what
makes the choice a fact.

The carrier deliberately holds the what and the why but not the where,
so gather-context's questioning arm is the only honest reading of its
guard. That guard is judgement-shaped, and a carrier that plainly lacks
one of the three is what keeps the case deterministic.

First run: FAIL, correctly. Step 3 caught gather-context re-asking the
what and why the carrier already answers — its guard reads only the seed
and description, blind to the session log's Exploration, and its
question block is a static fence prescribing all four questions
regardless. Both walks reproduced it. The run also caught the
confirmation walk skipping prescribed registration calls while
converging on a passing world — the exact hazard the deterministic
checks exist for — and exposed two harness gaps in the reporting and the
recorder, each fixed above this in the stack.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@leeovery
leeovery force-pushed the test/prose-quickfix-scoping branch from e19e6a8 to 7973ae5 Compare July 27, 2026 17:09
@leeovery
leeovery merged commit 591fd16 into main Jul 27, 2026
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