The gate that gates master now carries the count it prints - #2784
Merged
Conversation
…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>
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-08-29 06:23:04 UTC
Summary
Seal Status
|
This was referenced Aug 29, 2026
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.
Refs #2762
t27c suite --repo-root . --ratchet --corpus-onlyis the commandcorpus-ratchet.ymlruns on every push to master. It printsand 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):24/25GATE FAILURES: 4324/25GATE FAILURES rose 42 -> 43 (+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.jsonasmax_gate_failures: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.
🤖 Generated with Claude Code