Skip to content

feat(verify): census the whole-crate verification steps (weak evidence, #262) - #344

Open
avrabe wants to merge 3 commits into
mainfrom
feat/verification-weak-evidence-census
Open

feat(verify): census the whole-crate verification steps (weak evidence, #262)#344
avrabe wants to merge 3 commits into
mainfrom
feat/verification-weak-evidence-census

Conversation

@avrabe

@avrabe avrabe commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

The warn half of #262’s warn-then-fail proposal. Reports; does not fail.

Why now

The whole-crate step count is regressing: ~54 at the 2026-07 traceability audit, 70 measured today. Without a signal it drifts back up as fast as it is worked down.

What a whole-crate step costs

cargo test -p X with no test named asserts "something in this crate passes", not "this test verifies this requirement".

It is also the one step shape that cannot detect evidence drift. The existing guard (cargo_tests_passed(...) == 0, pulseengine.eu#89) needs a name to check against — so under a whole-crate step, a test that is renamed, deleted, or #[ignore]d leaves the step green.

That is not hypothetical. FV-FALCON-NOTCH-001 runs cargo test -p falcon-core as its closed-loop evidence for NOTCH-P01, and the only notch test in that crate is #[ignore]d pending #290. The step runs 60 unrelated tests and reports PASS. Reported on #290.

Behaviour

  • Annotates each whole-crate step inline
  • Prints a census at the end — including on green runs, because a gate that only speaks when it fails cannot show a backlog shrinking
  • Pass/fail is unchanged; exit code is unchanged
$ python3 scripts/run-falcon-verification.py --filter (has-tag "wasm-pipeline")
  [   PASS] (0.16s) FV-FALCON-PIPELINE-001: cargo test -p relay-mix-quad — WHOLE-CRATE step: names no test (#262)
  [   PASS] (0.13s) FV-FALCON-PIPELINE-001: cargo test -p relay-rate — WHOLE-CRATE step: names no test (#262)
  [   PASS] (0.11s) FV-FALCON-PIPELINE-001: cargo test -p falcon-sitl-hover — WHOLE-CRATE step: names no test (#262)

# 3 whole-crate step(s) — weak evidence, name the verifying test(s) (#262):
EXIT=0

Why warn and not fail

The backlog is 70 steps; failing immediately would block unrelated work. Convert to a hard failure once it is worked down — #343 starts that (70 → 65).

Authored during the 2026-08-06 GitHub Actions outage; checks dispatch when Actions recovers.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG

#262)

The whole-crate step count is REGRESSING: ~54 at the 2026-07 traceability audit,
70 measured today. #262 anticipated this and proposed warn-then-fail; this is the
warn half.

A whole-crate `cargo test -p X` step asserts "something in this crate passes",
not "THIS test verifies THIS requirement". It is also the one step shape that
cannot detect evidence drift: the existing guard (`cargo_tests_passed(...) == 0`,
pulseengine.eu#89) needs a name to check against, so under a whole-crate step a
test that is renamed, deleted, or `#[ignore]`d leaves the step green.

That is not hypothetical. FV-FALCON-NOTCH-001 runs `cargo test -p falcon-core`
as its closed-loop evidence for NOTCH-P01, and the only notch test in that crate
is `#[ignore]`d pending #290 — so the step runs 60 unrelated tests and reports
PASS. Reported on #290.

Reports, does not fail. The backlog is 70 steps; failing now would block
unrelated work. The goal is to stop the count drifting up, and to make it
visible on GREEN runs — a gate that only speaks when it fails cannot show a
backlog shrinking. Convert to a hard failure once the backlog is worked down.

Verified locally:

  $ python3 scripts/run-falcon-verification.py --filter '(has-tag "wasm-pipeline")'
    [   PASS] (0.16s) FV-FALCON-PIPELINE-001: cargo test -p relay-mix-quad — WHOLE-CRATE step: names no test (#262)
    [   PASS] (0.13s) FV-FALCON-PIPELINE-001: cargo test -p relay-rate — WHOLE-CRATE step: names no test (#262)
    [   PASS] (0.11s) FV-FALCON-PIPELINE-001: cargo test -p falcon-sitl-hover — WHOLE-CRATE step: names no test (#262)
  # 3 whole-crate step(s) — weak evidence, name the verifying test(s) (#262)
  EXIT=0

Pass/fail behaviour is unchanged: steps still PASS and the run still exits 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG
@avrabe
avrabe enabled auto-merge (squash) August 7, 2026 19:05
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