fix(prose-tests): prescribe the cross-check, drop a check that cannot fire, lint the scope#573
Open
leeovery wants to merge 1 commit into
Conversation
This was referenced Jul 27, 2026
This was referenced Jul 27, 2026
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:33
7331b27 to
3f2fced
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:33
f141d41 to
57c2940
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:35
3f2fced to
5a4fc5c
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:35
57c2940 to
334973a
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:37
5a4fc5c to
948daa9
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:37
334973a to
995afd9
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:39
948daa9 to
f46d9e3
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:40
995afd9 to
963d371
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:42
f46d9e3 to
5b0673f
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:42
963d371 to
fd67ef4
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:44
5b0673f to
c2c7abf
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:44
fd67ef4 to
8e11bc3
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:46
c2c7abf to
4de7f8e
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:46
8e11bc3 to
85650d2
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:48
4de7f8e to
6e95a39
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:48
85650d2 to
f7a5638
Compare
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:50
6e95a39 to
b12965b
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:50
f7a5638 to
e990814
Compare
… fire, lint the scope Three things the full run turned up, none of them failures. The asserter had begun comparing the action record against the walker's narrative unprompted, and reporting where they diverged. It is the right instinct and it was nobody's instruction, so a run that depended on it was depending on a coincidence. It is now required, with both directions named: narrated but not recorded means the walker described something it did not do, and the step resting on that claim fails; recorded but not narrated is usually orientation and fails nothing, but is reported, because a call that touched state and went unmentioned is the shape a silent repair takes. The two streams exist so neither is taken on trust, which only holds if they are actually set against each other. engine_before_write was declared on every case and could only ever fire on the three that write state. Reporting N/A seven times is honest but it is still a check dressed as coverage, so it is declared only where a walk can trip it. The check itself stays: it is the anti-fabrication guard for anything that lands state, and cases that land state are the direction we are heading. The scope lint is new. A case's file list is not documentation — it decides whether editing a file selects that case for a run, so prose the walk goes through but the case omits can be changed without the test that covers it ever running again. Every case has such gaps. The list cannot be built by following links: the reachable set is far wider than the walked one, and a case that declared everything reachable would be selected for branches it deliberately stops before. So it is computed from the walk's own Reads and reported as a finding about the case, correcting nothing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
leeovery
force-pushed
the
fix/prose-closing-turn-and-known-difference
branch
from
July 27, 2026 14:51
b12965b to
f1cbc1d
Compare
leeovery
force-pushed
the
fix/prose-prescribe-what-we-observed
branch
from
July 27, 2026 14:51
e990814 to
6325906
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.
Three things the full run turned up, none of them failures.
The asserter's cross-check is now prescribed
It had begun comparing the action record against the walker's narrative unprompted, and reporting divergences. Right instinct — but nobody's instruction, so any run depending on it was depending on a coincidence.
Now required, both directions named:
The two streams exist so neither is taken on trust. That only holds if they're actually set against each other every time.
engine_before_writedeclared only where it can fireIt was on all ten cases and could only ever trip on the three that write state. Reporting
N/Aseven times is honest, but it's still a check dressed as coverage.The check itself stays — it's the anti-fabrication guard for anything landing state, and state-landing cases are the direction we're heading.
New: the scope lint
A case's
files[]isn't documentation — it decides whether editing a file selects that case for a run. Prose the walk goes through but the case omits can be changed without the test covering it ever running again. Every case has such gaps today.It can't be built by following links: the reachable set is far wider than the walked one, and a case declaring everything reachable would be selected for branches it deliberately stops before (
session-loop.md,task-loop.md,conclude-discovery.md…). So it's computed from the walk's ownReadcalls, and reported as a finding about the case — correcting nothing, since which files belong is an authoring judgement.Test plan
cats, and reports each file once🤖 Generated with Claude Code
Stack