Skip to content

Add run --prove-fail: execute every check against a declared known-bad state - #104

Open
heyjawrsh wants to merge 2 commits into
NateBJones-Projects:mainfrom
heyjawrsh:prove-fail
Open

Add run --prove-fail: execute every check against a declared known-bad state#104
heyjawrsh wants to merge 2 commits into
NateBJones-Projects:mainfrom
heyjawrsh:prove-fail

Conversation

@heyjawrsh

Copy link
Copy Markdown

A check of mine passed against a state I had deliberately broken — it grepped a README that already contained the words from earlier work, so it could not tell new material from old. --baseline had nothing to say about it: baseline proves a check does not false-FAIL on an unmodified tree, and nothing proved the mirror.

--prove-fail is that mirror. Each task may declare known_bad, a shell command that mutates its scratch dir into the failure the check claims to detect. The mode runs it, then runs the task's real check against that state, in a fresh scratch dir (a detached worktree when the manifest uses worktrees). The check failing is the good outcome — reported as proved, with the failure output shown, since that output is what a retry prompt receives. A check that passes on known-bad work is reported BROKEN.

Unlike --baseline, exit is nonzero when anything is broken, inconclusive, or errored: a pass on a known-bad state is not a judgment call to defer. The two flags refuse to run together — they answer different questions. Spawns no workers, writes no eval rows.

Tests: tests/test_prove_fail_mode.py, seven hermetic cases (proved, broken, skipped, failing known_bad, inconclusive, field validation, flag conflict), modeled on test_baseline_mode.py —nonexistent engine binary so nothing can spawn, RINGER_NO_SELF_UPDATE=1. Full suite green on macOS. Rebased on current main.

…d state

--baseline proves a check does not false-FAIL on an unmodified tree.
Nothing proved the mirror: that a check does not false-PASS on a broken
one. A check that cannot fail is a task that cannot be verified.

Each task may declare known_bad, a shell command that mutates its scratch
dir into the failure the check claims to detect. --prove-fail runs it,
then runs the task's real check against that state, in a fresh scratch
dir (a detached worktree when the manifest uses worktrees). The check
FAILING is the good outcome, reported as proved with the failure output
shown -- that output is what a retry prompt would receive. A check that
PASSES on known-bad work is reported BROKEN.

Unlike --baseline, which always exits 0 and leaves judgment to the
orchestrator, exit is nonzero when anything is broken, inconclusive or
errored: a pass on a known-bad state is not a judgment call. The two
flags answer different questions and refuse to run together.

Spawns no workers and writes no eval rows.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant