Repository navigation
master: untrusted-input and Corpus ratchet red since 07:26Z (#6930 catalog count, #6875/#7211 assertionless port tests) #7401
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
Description
What is red
Three non-required gates on master went red at 07:23-07:26Z on 2026-10-07. Each was red on the head of the PR that moved it, and the merger merged past it. No open issue names any of them (searched 08:52Z).
| Gate | Finding on master (run 37595240051 / 37595240011, head 18689bc) | Moved by | That PR's own check |
|---|---|---|---|
| untrusted-input | the help string (109) matches the catalog (110): one build, two numbers |
#6930 (catalog gains a 110th CATALOG: record; bootstrap/src/main.rs:453 still says 109) |
untrusted-input: fail |
| Corpus ratchet | specs/port/tools/check_catalog_integrity.t27 0 -> 5 assertionless tests |
#6875 | Corpus ratchet: fail |
| Corpus ratchet | specs/port/fpga/verilog/gft_dup3_jtag.t27 0 -> 1 assertionless test |
#7211 | Corpus ratchet: fail |
Why it matters
Every PR opened after 07:26Z inherits these reds (#7366 and #7392 both show them with finding sets identical to master's). A reviewer reading those PRs has to diff against master to tell the inherited reds from new ones.
The repair, by kind
- Catalog count: pick 109 or 110 and make the help string, the catalog and the README block agree.
python3 scripts/ci/test_catalog_table_matches_the_gate.py --writere-takes the README block. The help string is in Rust (bootstrap/src/main.rs), so the edit needsowner-approved-foreign. - Assertionless tests: give each
testin the two port specs an assertion, or drop it (1792 of 9842 spec tests have a body that is one comment: { /* verify baseline */ } #3141). Do not ledger them.
Not in this issue
- spec-guards: spec-guards: knowledge_graph declares three tests twice, gf16_uart_sim_bench collides after lowering #7383.
- cli-tri census: ci: cli-tri red on master since #7320 -- the quiet census moved 167 -> 181 and was not re-blessed #7384.
- Seal Coverage: Seal Coverage has been red on master since #2841: four gen-c fixes changed generated output without re-sealing #5557.
- t27b-native-ratchet: t27b-native ratchet is red on every master run since it landed: ledger 099ac2224 predates 16 improvements and 40+ new specs #7023.
Acceptance
-
python3 scripts/ci/test_catalog_table_matches_the_gate.pyexits 0 on master. - The Corpus ratchet job's
assertionlessstep exits 0 on master.
🤖 Generated with Claude Code
Boundary
specs/port/fpga/verilog/gft_dup3_jtag.t27specs/port/tools/check_catalog_integrity.t27bootstrap/src/main.rsscripts/ci/test_catalog_table_matches_the_gate.py
User Scenarios
- Given the catalog has 110
CATALOG:records and the help string inbootstrap/src/main.rs:453says 109, when theuntrusted-inputgate runs, then it fails with "the help string (109) matches the catalog (110): one build, two numbers". - Given
specs/port/tools/check_catalog_integrity.t27has 5 tests without assertions andspecs/port/fpga/verilog/gft_dup3_jtag.t27has 1 test without assertions, when the Corpus ratchet job runs itsassertionlessstep, then it fails because these tests are assertionless.
Requirements
- FR-001: The help string in
bootstrap/src/main.rsMUST match the actual catalog record count (either both 109 or both 110). - FR-002: The catalog table in the README MUST be regenerated via
python3 scripts/ci/test_catalog_table_matches_the_gate.py --writeto agree with the chosen count. - FR-003: All
testblocks inspecs/port/tools/check_catalog_integrity.t27MUST have assertions, or the assertionless tests MUST be removed (not ledgered). - FR-004: All
testblocks inspecs/port/fpga/verilog/gft_dup3_jtag.t27MUST have assertions, or the assertionless test MUST be removed (not ledgered). - FR-005: The script
python3 scripts/ci/test_catalog_table_matches_the_gate.pyMUST exit 0 on master after the fix. - FR-006: The Corpus ratchet job's
assertionlessstep MUST exit 0 on master after the fix.
Reactions are currently unavailable
Activity
gHashTag commentedon Oct 7, 2026
Reopened 2026-10-07: the bulk close of issues without a
## Boundarysection was reverted by the owner. Nothing to do here; this comment replaces the earlier close notice.github-actions commentedon Oct 17, 2026
Re-filed as #9884.
An attempt claimed this issue on 2026-10-08 and left an empty branch. A dispatch row that has spent its retry ceiling is released once and then keeps its issue for good, which is the right rule for a third identical failure and the wrong outcome for an issue nobody ever attempted twice. The new issue carries the same work, the same boundary, and today's brief.
Closing this one so the swarm can take the work again.