feat(receipts): verification receipts for 20 tools across 7 ecosystems with a positive-evidence floor - #105
Merged
Conversation
…s with a positive-evidence floor Before, the TaskCompleted receipt gate only recognised tsc and bun test, vitest, jest, npm test, matched anywhere in the raw command, so Python, Go, Rust, PHP, Swift and Dart projects could never satisfy it and a commit message mentioning jest forged a receipt. Now a runners table covers bun test, vitest, jest, npm/pnpm/yarn/bun run test, pytest, go test, cargo test, phpunit, pest, php artisan test, swift test, dart/flutter test, plus tsc, mypy, pyright, phpstan, go vet, go build, cargo check, cargo clippy, swift build. Each tool has a per-tool summary parser calibrated on real output: cargo pads Finished to 12 columns, pytest -q prints an undecorated summary, PHPUnit prints OK-but banners and counts skipped tests in Tests. Commands are matched on the quote and heredoc stripped text, anchored at command position, and the runner must be the last command of the list. Redirected or piped-away output is not evidence, no-run and informational flags never count, and a receipt now needs positive evidence: tests executed above zero with zero failures, or the tool's success line, or documented silence with intact output. A missing exit code means no capture. Threat model documented: this is a guard against forgetting to verify and against honest shortcuts, not a security control against deliberate output fabrication. Five challenger rounds validated this against real cargo, pytest, PHPUnit and bun captures; a ReDoS in the option-tolerant prefix was caught and fixed. bash-command-anchor now exports its parts; CMD is unchanged. Gate messages were generalised for the new tool set. Tests: 1779 to 1837.
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
Changes
Test plan
Breaking changes
None