story-038: A test module is named for what it checks - #36
Merged
Conversation
The run escalated and this commit is a holding place for what it left in the working tree, so the work survives a checkout of another branch. It is not a decision about that work: the story did not finish and nothing here has been accepted or reviewed.
Escalation reason: verifier did not produce required artifacts: verification-result.json
To put these changes back in the working tree:
git reset --mixed HEAD~2
The run escalated and this commit is a holding place for what it left in the working tree, so the work survives a checkout of another branch. It is not a decision about that work: the story did not finish and nothing here has been accepted or reviewed.
Escalation reason: verifier did not produce required artifacts: verification-result.json
To put these changes back in the working tree:
git reset --mixed HEAD~2
Implemented by the l5 harness story workflow.
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.
Thirty-two modules under
tests/were namedtest_story_NNN_validation.py. The number is meaningful for exactly as long as the story is in flight; once it merges the name says only that somebody once worked on a numbered thing. A reader looking for the tests covering the revert check, the resume guard or the retry routing had no way to find them but to grep.Zero story-numbered modules remain.
The rename was the easy half
The shared baseline resolution identified a story by the commit that added its validation file, so
git mvsilently repoints every renamed module's baseline at the rename commit — each differential assertion then compares almost nothing and passes. Vacuously green, which is the defect class stories 015, 016, 026, 029 and 031 all existed to remove.The story replaced path-inference with a declared
STORY_ORIGINSmap: a module names the file that identifies the story it validates, and the resolution reads that rather than inferring it from its own path. Two modules that merged the coverage of two stories declare both origins and raise a message naming the module and both origins when called without one; a stale origin is refused.Verified independently after the run, against the merged history rather than a fixture — each renamed module still resolves to its own story and not to the rename commit
929ba58:The retry is worth reading
Verification failed once and routed to
implementation. Both findings were real and neither was about the renames themselves:test_contract_assertions_bite.py, all one cause: a helper walkedgit logfor the old filename, and since the rename the newest revision touching it is the rename commit. Exactly the trap above, in the one place the declared-origins map did not reach.test-results.jsonrecorded 2077; the committed tree collected 2074. The verifier settled it with an AST census of every module before and after — 1344 → 1388 test functions, +44 — establishing that no assertion was lost in the rename and that the discrepancy was in the count, not the coverage.The second is the kind of finding a green suite hides, and it was produced by driving the comparison rather than reasoning about it.
Also in this branch
The verifier's self-route budget (
426fe1f, already on main) is present here. This story's first attempt escalated on 2026-08-14 when the verifier ended its turn without writingverification-result.json— it started the suite, needed ~7 minutes, and reported prose at the 9-minute mark. That is row two of story-036's conversion table with no budget to spend at the verifier; the grant closes it.Verification
2111 passed, 37 writtenimplementationOne thing noted, not introduced here
test_self_routing_retry.pyresolves its endpoint to story-036's escalation commit rather than its completion commit, because the run commit is the oldest commit that added the identifying file and story-036's escalation committed the tester's file before the story finished. That is a property of the resolution's design for any story that escalated and resumed, and it predates this story. Worth knowing; not a reason to hold this.🤖 Generated with Claude Code