Make a doctor row carry the observation its verdict rests on - #487
Merged
Conversation
The defect history of this command is a history of values held and not recorded. #49 had the redirected hook target in hand and printed it into prose. #128 and #149 failed a working hook by probing a synthesized path, which a row naming what was actually executed would have exposed on first read. #382 printed the stale pin inside its own ok line. #63 had the fetch exit code. #335 and #458 were verdicts built on counting a different convention's vocabulary. Every row now carries an evidence map beside its sentence: what was executed, what it returned, and the counts a conclusion rests on. A non-ok row must carry at least one key, so a claim with nothing behind it does not typecheck as a complete row. Process output is kept as a bounded excerpt rather than collapsed to present-or-empty, because hook-runtime and inject-runtime diagnose from stderr first lines -- the reference implementation sanitises there and this one reads there. Paths render home-relative so a pasted bug report does not carry someone's directory layout. The text report is byte-identical. The pinned snapshot is what says so. Limit: evidence answers what was observed, not whether the observation was the right one to make -- #335's wrong count would now be visible in a field rather than prevented Ruled-out: collapsing stdout and stderr to present or empty, as the reference does | it sanitises against paths and tokens it cannot inspect, while these checks diagnose from the first line and would lose the diagnosis Ruled-out: leaving evidence optional on non-ok rows | a conclusion without its observation is the shape every defect above shares, and optional means absent in the row nobody looked at Warn: the 200-character cap is a judgement with no measurement behind it, and a diagnostic whose useful part sits past it will be silently cut with only the paired truncated flag to say so Blast: local Undo: easy Certainty: firm Verified: thirteen of thirteen rows carry evidence with zero empty maps, no value contains an absolute home path, the excerpt cap and its paired truncated flag hold in both directions, and the text and check-order snapshots are unchanged across the change Provenance: authored Record-Id: r-evidence465
CommitLore — record lintTrailers: clean — 1 commit in Active constraints for the paths this PR touchesLimits (109)
Ruled out (251)
Truncated: 119 lines omitted — the comment hit GitHub's 65000 character limit. Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
6 tasks
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.
Closes #465. Fifth ticket of Doctor · Diagnostic Rigor. Text report byte-identical — the pinned snapshot is what says so.
The defect history is a history of values held and not recorded
oklineEvery row now carries an evidence map beside its sentence. A non-ok row must carry at least one key, so a claim with nothing behind it does not typecheck as a complete row.
Two deliberate departures from the reference
Process output stays a bounded excerpt rather than collapsing to present-or-empty. The Swift reference sanitises there against paths and tokens it cannot inspect; these checks diagnose from the stderr first line and would lose the diagnosis.
Paths render home-relative, so a pasted bug report does not carry someone's directory layout.
Verified
Text and check-order snapshots unchanged. 91 cases across the doctor, snapshot and trusted-author suites. Dogfood re-run after committing.
Stated limits
Evidence answers what was observed, not whether the observation was the right one to make. #335's wrong count would now be visible in a field rather than prevented.
The 200-character cap is a judgement with no measurement behind it — a diagnostic whose useful part sits past it is silently cut, with only the paired
_truncatedflag to say so.