Skip to content

specs: one distinct real test for a/b_c and a_b_c, replacing the #8488 twins (Closes #8508) - #8496

Merged
gHashTag merged 2 commits into
masterfrom
queen-8472-a
Oct 10, 2026
Merged

gHashTag merged 2 commits into
masterfrom
queen-8472-a

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Closes #8508. Replaces what #8488 landed in specs/a/b_c.t27 and specs/a_b/c.t27: byte-equal twin test_module_exists bodies plus assert-true blocks in both files (the assertionless shape the corpus ratchet gates against — latent red while master's corpus-ratchet runs sat cancelled).

One distinct, real test per spec now:

  • specs/a/b_c.t27 — test b_c_dummy_returns_true asserts dummy() == true (the module's only declared value)
  • specs/a_b/c.t27 — test c_dummy_value binds the dummy() result to a local first and asserts it — no byte-equal twin of the sibling

Both verified on the t27c lab: one test, one pass, zero FAIL, one runtime assert executed, zero vacuous passes.

🤖 Generated with Claude Code

Each of the two acceptance-criteria stubs declares exactly one function,
dummy(), and nothing else; each now carries one test block asserting what
that function returns. specs/agents/{v,w,x,y,z}.t27 from the same issue
were already checked by #6620, so this PR covers the two specs that were
still pass_vacuous at lab run 285512a.

Closes #8472

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gHashTag

Copy link
Copy Markdown
Owner Author

Superseded mid-flight: PR #8488 (branch queen-8472, commit 50fbc78, author "Trinity Bee") merged as 1f4863e at 2026-10-10 09:53Z and closed #8472 while this branch was being verified on the t27c lab. Both branches edit the tail of the same two files, so this PR now conflicts.

What differs from what landed: this branch adds ONE test per file with distinct bodies (no byte-equal twin, per the issue's own sibling rule) and no assert true block -- the shape tools/check_assertionless_spec_tests.py (corpus-ratchet, "No new assertionless spec test") exists to catch, and which #8488 adds to both files. Lab verification at 0c5aa6c: t27c test-report = 1 test / 1 pass / 0 FAIL / 1 runtime assert executed / 0 vacuous passes per spec.

Auto-merge disabled; left open for the coordinator to decide whether to adopt these tests over the landed twins or close as superseded. Separately, the t27b-native-ratchet ledger is pinned at 606611c and stale against master: this run showed 8 UNEXPECTED PASS rows (6 of them from #6620/#6623 already on master, not from this branch) and 6 UNLISTED -- the steward ledger needs a re-bless independent of this PR.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-10 10:20:27 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 50
PRs with All Checks Green 0
READY 0
FAILING 50
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=bd3352ccb90e != 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).

…rue (#8508)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-10 10:46:01 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 0
FAILING 49
PENDING 0
NO CHECKS YET 0

These columns do not partition: 0 + 49 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=bd3352ccb90e != 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 f06ea76 into master Oct 10, 2026
24 of 32 checks passed
gHashTag added a commit that referenced this pull request Oct 11, 2026
…ledger + reseals (Closes #8957) (#8962)

* corpus: repair the five unexpected failures at 760a787 (Closes #8957)

Four spec-side fixes and one ledger entry, per the ratchet verdict of run
38120214535:

- specs/a/b_c.t27, specs/a_b/c.t27: drop the stray trailing `}` the t27b
  test-block batches (#8488/#8496) left at EOF -- the parser reached EOF
  after discarding it (1 top-level token each).
- specs/compiler/optimizer.t27: the four inline `;` comments moved onto
  their own lines. Inline `;` prose is tokenized and then discarded (84
  tokens; the #8581 defect), full-line comments are stripped before the
  tokenizer runs, so the same words mint no tokens where they now sit.
- specs/memory/graph/ingest.t27: reword the three comment phrases whose
  apostrophes (`let's`, `we're`) opened a char literal at 414:34 that
  never closed -- the spec has failed parse since #8493 landed.
- specs/port/trinity/src/tri/orchestrator_bench.t27: ledgered, not
  rewritten -- the port stays faithful to the Zig source's
  `commands : [10][]const u8`, and gen-verilog's 2-D array-of-aggregate
  lowering is the known gap (#8521, W469). max_entries 71 -> 72.

Seals for every spec whose hash moved follow on the lab in this PR.

Refs #6063 (steward lane).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* dupe-bodies: ledger the t27b plan-spec helper groups (Refs #8957)

The 2026-10-10 landing burst added t27b plan specs whose self-contained
helper bodies are byte-identical to siblings', moving the Duplicate Body
Ratchet at 760a787:

- same [3]: int_cast_plan.t27 joined opaque_plan.t27 + type_text.t27
  (bytewise string compare, the crypto-family bytes*_eq/same precedent).
- bits [2]: ast_shape.t27's `bits` is ast_scan.t27's `mask` under its
  local name (pack marks into a u32 bitmask).
- clear [6, 2]: a second clear-named group -- ast_scan.t27 `clear` +
  ast_shape.t27 `wipe` -- beside the long-ledgered sdk_contract six.

All are the established per-spec helper convention: each plan spec stays
self-contained rather than importing shared plumbing. Ledger moved in
this commit (dupe_scan --bless; 186 groups, 678 bodies).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* corpus: peel the next layer -- ingest imports, optimizer braceless tests (Refs #8957)

Lab re-run of the ratchet on the branch showed the first fixes were
necessary but not sufficient; the two remaining failures had a second
defect each.

- specs/memory/graph/ingest.t27: with the apostrophe strings gone, the
  parser next refuses `import MemoryGraphTypes;` at line 8 -- `import`
  is not a keyword of this language (ingest is the only spec in the
  corpus that uses it; 153 use `use`, and slices 1-3 of this very
  family reference each other with no import lines at all). Dropped the
  four lines: the module graph resolves without them.
- specs/compiler/optimizer.t27: the discard count was 84 before AND
  after the comment move, so the comments were never the source.
  `t27c parse-complete --causes` names the top channel "a whole
  braceless block falling back" -- it is the 24 braceless given/then
  tests #8502 added. All 24 rewritten to explicit braced form
  (`var` + `assert`), same names, same expressions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* corpus: in-body comments are //, not ; -- measured, then applied (Refs #8957)

Minimal repro against t27c (lab, master binary) pins the comment law:

- `;` at top level: stripped, always parsed.
- `;` between `test <name>` and `given` (braceless sugar header): parsed.
- `;` inside a braced body, fn OR test block, full-line or trailing:
  NOT a comment -- it reaches the parser as a Semicolon token and fails.
- `//` inside a fn body: parsed (optimizer's July `// driver pass`).

Two consequences, both applied:

- specs/memory/graph/ingest.t27: all 31 indented `;` comment lines were
  parse errors waiting in line order (the file has never parsed); now
  `//`.
- specs/compiler/optimizer.t27: my own layer-2 rewrite had just moved
  the placeholder comments into braced test bodies -- illegal as `;`,
  now `//`.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* corpus: ingest trailing comments -- the three after-code semicolons (Refs #8957)

Same law as the previous commit: a ; after a complete statement is a
Semicolon token, not a comment. The three trailing annotations move to
the // form, which the parser reads as a comment after a statement
(optimizer's // driver pass since July).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* corpus: ingest loops -- C-style for is not this language's loop (Refs #8957)

The two exhaustive-check fns use C-style for headers, which reach the
parser as an expression and fail on the var at 346:10. Rewritten as
while loops with explicit counters -- the form every healthy spec uses
(and which the reference compiles). && and ! stay: 219/562 healthy
specs use them.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* seals: re-seal the optimizer twins and a_b_c_spec after the corpus repairs (Closes #8957)

optimizer.t27's spec hash moved with the braced-test rewrite and a_b/c.t27
with the stray-brace fix; a_b_c_spec.json was already stale on master
(seal-verify MISMATCH in the same run that exposed the five). Sealed on
the lab with zig on PATH; armored transfer, md5-verified against the lab
files.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.

specs: a/b_c and a_b_c test bodies are byte-equal twins carrying assert true (from #8488)

1 participant