fix(prose-tests): what a write put in a file is evidence, not incident#577
Merged
Conversation
This was referenced Jul 27, 2026
Merged
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 15:54
2bcfad6 to
59e6967
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 15:56
78d87b0 to
ac14bca
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 15:56
59e6967 to
0ff3350
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 15:57
ac14bca to
3a13c80
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 15:57
0ff3350 to
5f44049
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 15:58
3a13c80 to
99409d7
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 15:58
5f44049 to
7a33436
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 15:59
99409d7 to
9ec1b03
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 15:59
7a33436 to
ef6682b
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 16:00
9ec1b03 to
534c255
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 16:00
ef6682b to
e8e2840
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 16:01
534c255 to
0ae49af
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 16:01
e8e2840 to
ff03d53
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 16:02
0ae49af to
bbf15cb
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 16:02
ff03d53 to
b006d1e
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 17:05
bbf15cb to
79f2273
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:05
b006d1e to
84ade1a
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 17:06
79f2273 to
dc96a58
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:06
84ade1a to
555d8f6
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 17:06
dc96a58 to
bf3ebe0
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:06
555d8f6 to
5776dff
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 17:07
bf3ebe0 to
53ee32a
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:07
5776dff to
f9b57ff
Compare
leeovery
force-pushed
the
feat/prose-conduct
branch
from
July 27, 2026 17:07
53ee32a to
9f4c13c
Compare
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:07
f9b57ff to
8477688
Compare
The symptom-gathering case failed on a claim that could not be verified: that the user's ignorance was recorded in the investigation file rather than left as template placeholders. The asserter was right to refuse — nothing in its prompt showed the file's post-interview content. The Edit record truncated the written text at 400 characters, and the world delta names added paths without carrying content. That cap was a read's rule applied to the wrong thing. Only a read is incidental: nothing is ever claimed about the bytes a walker read back out of a file, so those are trimmed hard and stay trimmed. But what a write put in a file settles every claim about the artifact a phase leaves behind — and in claims mode the response is the only copy of that content the asserter will ever see. The discovery cases escaped this by luck alone: their content lands via workunit create, a Bash call, which already kept 10,000 characters. Write, Edit and NotebookEdit responses now get the produced-output ceiling alongside Bash. Reads keep the hard trim. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
leeovery
force-pushed
the
fix/prose-writes-are-evidence
branch
from
July 27, 2026 17:08
8477688 to
96ed05f
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
The symptom-gathering case failed on a claim that could not be verified — not one that was wrong. The claim: the user's ignorance was recorded in the investigation file rather than left as template placeholders. The asserter's refusal was correct:
The cap was a read's rule applied to the wrong thing. Only a read is incidental — nothing is ever claimed about bytes a walker read back out of a file, so those stay trimmed at 400. But what a write put in a file settles every claim about the artifact a phase leaves behind, and in
claimsmode the tool response is the only copy of that content the asserter will ever see.The discovery cases escaped this by luck alone: their content lands via
workunit create, a Bash call, which already kept 10,000 characters. Anything written by Write/Edit was invisible.Fix:
Write,Edit,NotebookEditresponses now get the produced-output ceiling alongsideBash. Reads keep the hard trim.Test plan
test-prose-record-action.cjs— 25/25, with two new cases: a long EditnewStringsurvives untruncated and legible; a long Write the same🤖 Generated with Claude Code
Stack