Skip to content

The gate that gates master now carries the count it prints - #2784

Merged
gHashTag merged 1 commit into
masterfrom
w700-gate-failures-ratchet
Aug 29, 2026
Merged

The gate that gates master now carries the count it prints#2784
gHashTag merged 1 commit into
masterfrom
w700-gate-failures-ratchet

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Refs #2762

t27c suite --repo-root . --ratchet --corpus-only is the command corpus-ratchet.yml runs on every push to master. It prints

GATE FAILURES:     42

and exits 0. The exit code was decided by the expectations ledger alone, so the catalog gate's 42 unexpected findings, the lexer and parser conformance tables, the silent-backend-drop check and the Verilog keyword check were all printed into a log and ignored.

Proven by planting, before and after

A conformance case that cannot pass (decls: Some(99) on a two-declaration module):

conformance table count exit
before 24/25 GATE FAILURES: 43 0
after 24/25 GATE FAILURES rose 42 -> 43 (+1) 1

Same planted case, same command. That is the whole change.

Three rules, the ones the discard volume already uses

The count is pinned in suite_expectations.json as max_gate_failures:

  • a rise fails — the regression signal that did not exist
  • a fall fails until it is re-blessed, for the same reason an unexpected PASS does: unclaimed slack is where the next regression hides
  • no pin fails, and a run that did not count them is drift rather than agreement — a run that skipped the counting is not a run that found none

Blessing writes what the run printed, so lowering is automatic on a re-bless and raising is a diff a human reads.

Pinned at 42, which is the catalog gate: 109 records, 43 findings, 1 allowed. Those 42 are now held, not fixed — what changes is that the forty-third would stop a push.

Five unit tests: rose, fell, unpinned, uncounted, exact.

cargo test --no-fail-fast   2437 passed, 0 failed
suite --ratchet             RATCHET: CLEAN, exit 0
parse-conform               24/24, exit 0
check_seal_coverage.py      exit 0
check_specs_generate.py     exit 0
check_elab_ratchet.py       exit 0

🤖 Generated with Claude Code

…ints

W700. `t27c suite --repo-root . --ratchet --corpus-only` is the command
corpus-ratchet.yml runs on every push to master. It prints

    GATE FAILURES:     42

and exits 0. The exit code was decided by the expectations ledger alone, so the
catalog gate's 42 unexpected findings, the lexer and parser conformance tables,
the silent-backend-drop check and the Verilog keyword check were all printed into
a log and ignored.

PROVEN BY PLANTING, BEFORE AND AFTER. A conformance case that cannot pass
(`decls: Some(99)` on a two-declaration module):

    before   parser conformance: 24/25     GATE FAILURES: 43     exit 0
    after    parser conformance: 24/25     GATE FAILURES rose 42 -> 43 (+1)   exit 1

Same planted case, same command. That is the whole change.

The count is pinned in `suite_expectations.json` as `max_gate_failures`, with the
three rules the discard volume already uses:

  * a RISE fails -- the regression signal that did not exist
  * a FALL fails until it is re-blessed, for the same reason an unexpected PASS
    does: unclaimed slack is where the next regression hides
  * NO PIN fails, and a run that did not count them is drift, not agreement --
    a run that skipped the counting is not a run that found none

Blessing writes what the run printed, so lowering is automatic on a re-bless and
raising is a diff a human reads.

Pinned at 42, which is the catalog gate: 109 records, 43 findings, 1 allowed.
Those 42 are now held, not fixed -- what this commit changes is that the
forty-third would stop a push.

Five unit tests: rose, fell, unpinned, uncounted, exact.

    cargo test --no-fail-fast  2437 passed, 0 failed
    suite --ratchet            RATCHET: CLEAN, exit 0
    parse-conform              24/24, exit 0
    check_seal_coverage.py     exit 0
    check_specs_generate.py    exit 0
    check_elab_ratchet.py      exit 0

Refs #2762

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-29 06:23:04 UTC

Summary

Status Count
Total Open PRs 8
PRs with Failing Checks 7
PRs with All Checks Green 1
READY 0
FAILING 7
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=347e84842d90 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit a2377b6 into master Aug 29, 2026
33 checks passed
@gHashTag
gHashTag deleted the w700-gate-failures-ratchet branch August 29, 2026 06:33
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