feat(claim-evidence)!: refuse calibrated false-refutation shapes at intake - #145
Merged
Conversation
tangletools
approved these changes
Aug 17, 2026
tangletools
left a comment
Contributor
There was a problem hiding this comment.
✅ Auto-approved drewstone PR — b635c379
This PR was opened by the trusted drewstone account.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.
This approval is provisional. It rests on the audit running. If the audit cannot run — for example the CLI bridge rejects it — this approval is dismissed rather than left standing, so an unrun check never reads as a passing one.
tangletools · auto-approval · reason: drewstone_author · 2026-08-17T01:45:40Z
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.
The hole
The record-time gate already refuses three evidence shapes that a blind grader cannot use: no check, a constant-emitter check, and no expected value. A downstream discovery fleet measured five more failure shapes after that boundary shipped:
\\nsequences as an enormous first shell word.These are evidence-integrity failures, not research policy. A gate that admits a check the grader is guaranteed to refuse is not a gate.
Change
assertGradeableEvidenceandgradeForwith the same static refusal vocabulary for:key=valuetokens;verifyGradeableEvidence:bash -nfirst;cwdand environment;ClaimGraderather than inventing a second verdict system.node:child_processonly when the verifier is invoked, preserving importability for consumers that never execute shell evidence.Compatibility
This is a breaking change at the record boundary: rung-4/5 evidence that was previously accepted can now throw
UncheckableClaimError. That is intentional and follows the package's prior major-release convention for stronger evidence admission.Below rung 4, behavior remains unchanged. A check that parses and genuinely refutes a claim still returns
contradicted; an environment failure remainsunrunnable.Tests
The new suite proves record/grade wording parity, each static refusal, no tightening below the threshold, bash syntax refusal, exact cwd/environment execution, successful verification, and a parsed check that refutes its claim.