Skip to content

master: Corpus Ratchet red at 760a787 -- five unexpected failures, four spec-side #8957

Closed

Description

@gHashTag

master: Corpus Ratchet red at 760a787 -- five unexpected failures, four spec-side

First corpus-ratchet run after the 2026-10-10 landing burst + Actions queue drain
(run 38120214535, 07:02Z 2026-10-11). Verdict: ledger 71/71, UNEXPECTED FAILURES 5.

Per-spec causes

  1. specs/a/b_c.t27 [parse-no-discard] -- "parser reached EOF but DISCARDED 1
    top-level token". A stray trailing } at EOF: Wave 552's original file ended
    at dummy()'s closing brace; the t27b test-block batches t27b checked: test blocks for 7 tiny sibling specs in specs/a*, specs/agents #8488/specs: one distinct real test for a/b_c and a_b_c, replacing the #8488 twins (Closes #8508) #8496 added the
    test block plus one brace too many.
  2. specs/a_b/c.t27 [parse-no-discard] -- same stray-} shape, same batches.
    Also surfaced: its seal records spec_hash 702d0ffd... but the tree is at
    4208dee... -- a stale seal that moves again with this fix; reseal in the same
    PR.
  3. specs/compiler/optimizer.t27 [parse-no-discard] -- "DISCARDED 84 top-level
    tokens": the inline ; comments after code (Census the optimizer: 4 of 7 passes have no precondition, and dead_store_elim deletes calls #8502 census tests) are
    tokenized and then discarded -- the same defect as t27c: inline ; comment prose is tokenized -- "this test documents" mints a phantom TestBlock declaration [parked, foreign fix] #8581, now quantified by
    the discard counter. Spec-side fix here: move the four inline comments onto
    their own lines (full-line comments are stripped before tokenizing, so they
    mint no tokens). The compiler-side tokenizer fix stays parked as t27c: inline ; comment prose is tokenized -- "this test documents" mints a phantom TestBlock declaration [parked, foreign fix] #8581.
  4. specs/memory/graph/ingest.t27 [parse] -- "unterminated string literal
    opened at line 414:34": let's / we're in ; comment prose. The
    apostrophe opens a char literal the parser never closes, so the whole spec
    fails parse (it has failed parse since memory/graph slice 4: ingest.t27 -- the extraction state machine and the LLM effect slot #8493 landed; the PR-side ratchet run
    was advisory and the queue was jammed). Reword the three comment phrases.
  5. specs/port/trinity/src/tri/orchestrator_bench.t27 [gen-verilog] --
    "unsupported multi-dimensional array of aggregate type [10][]const u8 for
    local variable commands": the known 2-D array-of-struct lowering gap
    (gen-verilog: test-local [N][]const u8 rejected as 2-D array-of-struct; 7 port specs Broken in the catalog #8521, docs/reports/W469_2D_STRUCT_ARRAY_DESIGN.md). The port must stay
    faithful to the Zig source, so this one is ledgered, not rewritten: a hand
    entry in docs/reports/suite_expectations.json with issue gen-verilog: test-local [N][]const u8 rejected as 2-D array-of-struct; 7 port specs Broken in the catalog #8521, and
    max_entries moves 71 -> 72 in the same commit.

Fix

One PR: stray-brace removal (2), comment relocation (1), apostrophe reword (1),
ledger entry + cap raise (1), reseals for every spec whose hash moves.

Refs #6063 (steward lane; the red was found while clearing the post-burst gate
stack).

User Scenarios

  • Given the corpus ratchet runs at commit 760a787, When the ratchet executes, Then it reports 5 unexpected failures instead of 0.
  • Given specs with stray trailing } braces, When the parser processes them, Then it discards top-level tokens and fails parse-no-discard.
  • Given inline ; comments after code in optimizer.t27, When tokenized, Then 84 tokens are discarded and parse-no-discard fails.
  • Given apostrophes in comment prose in ingest.t27, When parsed, Then an unterminated char literal causes parse failure.
  • Given a 2-D array of struct in orchestrator_bench.t27, When gen-verilog runs, Then it fails with unsupported type error and must be ledgered.

Requirements

  • FR-001: The stray trailing } in specs/a/b_c.t27 MUST be removed so parse-no-discard passes.
  • FR-002: The stray trailing } in specs/a_b/c.t27 MUST be removed and its seal MUST be resealed.
  • FR-003: The four inline ; comments in specs/compiler/optimizer.t27 MUST be moved to full-line comments so zero tokens are discarded.
  • FR-004: The three apostrophe-containing comment phrases in specs/memory/graph/ingest.t27 MUST be reworded to avoid char literal tokenization.
  • FR-005: A ledger entry for issue gen-verilog: test-local [N][]const u8 rejected as 2-D array-of-struct; 7 port specs Broken in the catalog #8521 MUST be added to docs/reports/suite_expectations.json and max_entries MUST be increased from 71 to 72.
  • FR-006: All specs whose content hash changes MUST have their seals regenerated.

Success Criteria

  • t27c specs/a/b_c.t27 --parse-no-discard exits 0
  • t27c specs/a_b/c.t27 --parse-no-discard exits 0
  • t27c specs/compiler/optimizer.t27 --parse-no-discard exits 0
  • t27c specs/memory/graph/ingest.t27 --parse exits 0
  • t27c specs/port/trinity/src/tri/orchestrator_bench.t27 --gen-verilog exits 0 (ledgered expectation)
  • python -m tools.corpus_ratchet reports UNEXPECTED FAILURES 0 and ledger 72/72
  • Seal files for specs/a_b/c.t27 and any other modified specs are updated

Boundary

  • specs/a/b_c.t27
  • specs/a_b/c.t27
  • specs/compiler/optimizer.t27
  • specs/memory/graph/ingest.t27
  • specs/port/trinity/src/tri/orchestrator_bench.t27
  • docs/reports/suite_expectations.json

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions