CI: three-valued verdicts, so the gate stops lying in both directions
Jesse Daniel Brown+1: Claude Opus 5 (1M context)
25779ea
Two faults, both found by this gate behaving the way AGENT-DISCIPLINE.md
section 12 says a gate must not:
1. clippy reported failure on a repo with no crate at the root. A repo
that cannot be measured is NOT_MEASURED, not broken.
2. the float grep printed "OK: zero float types" when src/ did not
exist -- a pass declared after scanning zero files. It could not
fail, so it proved nothing.
Now every check emits MEASURED_PASS / MEASURED_FAIL / NOT_MEASURED with
a mandatory reason, the float step reports how many files it scanned,
and the final gate goes red only on MEASURED_FAIL.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CI: three-valued verdicts, so the gate stops lying in both directions
Jesse Daniel Brown+1: Claude Opus 5 (1M context)
e30428c
Two faults, both found by this gate behaving the way AGENT-DISCIPLINE.md
section 12 says a gate must not:
1. clippy reported failure on a repo with no crate at the root. A repo
that cannot be measured is NOT_MEASURED, not broken.
2. the float grep printed "OK: zero float types" when src/ did not
exist -- a pass declared after scanning zero files. It could not
fail, so it proved nothing.
Now every check emits MEASURED_PASS / MEASURED_FAIL / NOT_MEASURED with
a mandatory reason, the float step reports how many files it scanned,
and the final gate goes red only on MEASURED_FAIL.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CI: three-valued verdicts, so the gate stops lying in both directions
Jesse Daniel Brown+1: Claude Opus 5 (1M context)
0fbe1df
Two faults, both found by this gate behaving the way AGENT-DISCIPLINE.md
section 12 says a gate must not:
1. clippy reported failure on a repo with no crate at the root. A repo
that cannot be measured is NOT_MEASURED, not broken.
2. the float grep printed "OK: zero float types" when src/ did not
exist -- a pass declared after scanning zero files. It could not
fail, so it proved nothing.
Now every check emits MEASURED_PASS / MEASURED_FAIL / NOT_MEASURED with
a mandatory reason, the float step reports how many files it scanned,
and the final gate goes red only on MEASURED_FAIL.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pin channel 1.81.0 with clippy+rustfmt; rust-version = "1.81"; replace
rust-1.97-independent-verification.yml with rust-1.81-clippy-verification.yml
(clippy --all-targets -D warnings, hard fail on any f32/f64, tests, receipt).
Re-run on real rustc 1.81.0 (eeb90cda1) before landing: clippy -D warnings
clean, zero float types, all tests pass. The run records in docs/ now read
1.81 because the runs were actually repeated on 1.81 - not because the lines
were edited.
Lint fix needed to reach clippy-clean on 1.81 (behaviour-preserving):
needless_range_loop: iterate axes.iter_mut().enumerate() instead of indexing 0..60 (src/lib.rs:690). 30/30 tests.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Promote measured DBBH→DBWH Path 2
Jesse Daniel Brown
Unverified signature
c7fa4a4
Merge the audited no-store CRT recovery, watcher-gated reprojection, storage applicability, verification receipts, and Rust 1.97 CI workflow.