feat(prose-tests): the mid-flow substitution, and a world only prose can describe#555
Open
leeovery wants to merge 1 commit into
Open
Conversation
leeovery
force-pushed
the
prose-tests/asserter-knows-stubs
branch
from
July 26, 2026 13:37
db46617 to
e81714b
Compare
leeovery
force-pushed
the
prose-tests/discussion-conversation-stub
branch
from
July 26, 2026 13:37
c9f9f1a to
f83df8e
Compare
…can describe The conversation stub was designed at length and never exercised. Writing the case proved the mechanism needed no change — a stub is named content, the case owns the trigger, and "once the file is created from the template, the map seeded, and the initialisation commit made" is as observable a moment as an engine dispatch. What the case did need was a third shape of end state. A discussion's subtopics are derived by the model from whatever context it has, so their names and number differ run to run and no recipe can pin the resulting world. Cases like that now set `world: "claims"`: the delta is taken against the fixture, expected to be non-empty, and judged against the case's stated claims. It is the weakest of the three shapes and reached for last — a world a recipe can build must be built, and validation refuses claims mode alongside an assertion state. The case walks discussion initialisation for real — resume detection, topic start before any map command, the file from the template, subtopics recorded pending, the commit — then substitutes the session it cannot simulate and resumes to the review boundary. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
leeovery
force-pushed
the
prose-tests/asserter-knows-stubs
branch
from
July 26, 2026 13:43
e81714b to
f4cfb5a
Compare
leeovery
force-pushed
the
prose-tests/discussion-conversation-stub
branch
from
July 26, 2026 13:43
f83df8e to
9d3d1b3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
"Derive initial subtopics from whatever context is available"— so their names and number differ run to run and no recipe can pin the resulting world. Such cases now set"world": "claims"incase.json: the delta is taken against the fixture, expected non-empty, and judged against the case's stated claims.claimsalongside anassertion-state.cjs, because a world a recipe can build must be built.The case itself walks initialisation for real: resume detection on a missing file,
topic startbefore any map command (the map requires the item to exist), the file from the template withTriageseeded(none), subtopics recordedpending, the commit — then substitutes the session and stops at the review boundary without dispatching anything.Test plan
npm testgreen: 1699 tests, 0 fail. Corpus: 13 cases, 2 stubs, valid.🤖 Generated with Claude Code