feat: add zero-config local proof check - #56
Merged
Merged
Conversation
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.
Goal
Make CounterProof produce useful local evidence before a developer has to open a pull request.
New first-run command
It automatically resolves a base branch, detects or accepts the test runner, runs Regression Witness on HEAD vs BASE, runs Proof Integrity, and prints one scoped local evidence result.
Example:
The wording is deliberate: a red→green witness plus a clean evidence surface is not called
VERIFIED,proof ready, product correctness, or merge readiness.Strict mode
returns non-zero unless both narrow conditions hold:
WITNESSED;CLEAN.This is a CI-friendly evidence gate, not an approval verdict.
Conservative auto-detection
Base preference:
CounterProof uses the merge-base with HEAD and refuses to invent a base when none can be resolved. Runner detection reuses the existing onboarding detector; teams can still pass
--test-commandexplicitly.Real verification
Tests construct a real Git repository, create a feature branch with an actual regression test, run real pytest execution, and perform the detached BASE replay. Clean-install CI also installs the wheel into a fresh environment and executes:
Machine-readable boundary
JSON output keeps the same semantics:
status: the evidence status, e.g.witnessed;strict_gate.passed: only the exact-witness + clean-integrity gate;evidence_scope:submitted-judge;oracle_alignment:unverified.Capability truth
counterproof auditand the public capability JSON list local-check as TESTED only after the real-repository and clean-install paths pass.Why this matters
Before:
After:
This PR changes time-to-first-value without expanding what CounterProof claims the evidence proves.