fix(specs): the 28 specs typecheck refused while gen emitted them (Refs #6446) - #6491
Merged
Merged
Conversation
Contributor
6 tasks
This was referenced Oct 5, 2026
Contributor
PR DashboardGenerated at: 2026-10-05 16:01:03 UTC
Summary
Seal Status
|
gHashTag
force-pushed
the
claude/t27c-gen-typecheck
branch
from
October 5, 2026 16:02
672dbf5 to
6abab22
Compare
Contributor
PR DashboardGenerated at: 2026-10-05 16:03:54 UTC
Summary
Seal Status
|
This was referenced Oct 5, 2026
Merged
#6446) tri misread on master: 35 spec-shape pairs, 0 silent, 35 refused by typecheck, in 28 specs. Each refused field is now the declaration it described: untyped `variants` / `enum : [..]` / `values : ,` fields become enum(u8) with the variants from the trinity .tri sources; tools/schema and tools/registry get entry slices for their maps and `enum_values` for the keyword-named field; the igla pipeline Contract field `invariant` (a keyword) is `invariant_expr`; sequence_hdc gets its map type back. exit_codes and namespace gain tests (L4). conv2d_layer compiles now, which exposed its kernel loops indexing past the 2x2 buffer; loops and tests fixed (2/2 pass). Lab (t27c-lab, master c82953e + this diff): tri misread 0 pairs, RATCHET CLEAN 84/84, check_specs_generate OK. The 25 typecheck ledger entries for these specs are dropped (109 -> 84, cap follows) and the 52 seals of the changed specs are re-saved with zig on PATH. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Refs #6446) ActivationType, Agent, AgentStatus and HealthStatus had a second definition only because the untyped-field structs in dense_layer / mha_block, faculty_board, swarm_agents and eternal_monitor were read as structs. As enums they no longer conflict; ledger 88 -> 84. Written by tri types ratchet --bless on the t27c lab (file byte-identical). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ActivationType, Agent, AgentStatus and HealthStatus no longer conflict once their untyped variants/values sides are enum(u8). tri types classified: OK on the Railway lab (84 names, 50 DRIFT, 34 DISTINCT). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
force-pushed
the
claude/t27c-gen-typecheck
branch
from
October 5, 2026 16:12
6abab22 to
433e1c4
Compare
Contributor
PR DashboardGenerated at: 2026-10-05 16:16:07 UTC
Summary
Seal Status
|
This was referenced Oct 5, 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 #6446. This is the spec half (goal 2). The gen-path typecheck gate (goal 1) is hand-written Rust. Under the 2026-10-05 t27-only PR rule it is held on a branch and is not in this PR.
What
On master,
tri misreadreported 35 spec-shape pairs, 0 silent, 35 refused bytypecheck, in 28 specs.gen*does not run typecheck, so all 28 still emitted Rust and C that cannot be parsed (pub variants: ,,pub GET: ,). Each one is fixed at the source:variants : , # a | b | c(recovered as an untyped field)enum(u8) { a, b, c }, variants from the original trinity.triParsedCommand->union(enum))struct { enum : [A, B] }enum(u8) { A, B }enum_type : "enum", values : , X : Autoenum(u8) { X }enum : [any]?,[K: V]mapsenum_values : [str]?, entry slicesPropertyEntry/ToolEntry/PermissionEntryinvariant : string(invariantis a keyword)invariant_expr : stringmap[:]const u8, PackedBigInt>map<[]const u8, PackedBigInt>Other changes:
field : Float # text,lines, where#swallowed the comma. They now readfield : Float, // text. The non-ASCII characters in those comments were removed (L3).i, j < k*k), andthen result != undefinedon a void call. The loops and tests are fixed and pass 2/2.Measured on the Railway t27c lab
Measured on master c82953e plus this diff (
/data/gengate), using the same commands as the lab gates.tri misread --list, before (lab run of master 36ad787):after:
t27c suite --corpus-only --ratchet: RATCHET CLEAN, ledger 84 / observed 84.check_specs_generate.py: OK, 1327 specs, 1326 generate, 1 known-broken.check_seal_currency/check_seal_coverage: none of the changed specs are listed. The 3 stale seals that remain (specs/automation/kanban-card-chat.t27,specs/runtime/process.t27x2) are stale on master too.Ledger and seal changes
docs/reports/suite_expectations.json: 25 entries removed, 109 -> 84, andmax_entriesfollows to 84.phase: typecheck, issue: 3225, reason "typecheck refuses a struct field with no type or a literal type (t27c misreads Rust macro calls and typeless fields; eight .t27 files are Markdown #5923, defect Fourteen specs parse, typecheck, and emit a field with no type — and a literal in type position is accepted #3225)".UNEXPECTED PASS (fixed -- remove from the ledger), and no other entry moved..trinity/seals/: 52 seals for the 28 changed specs, re-saved on the lab withPATH=/opt/zig:$PATH t27c seal <spec> --saveand checked withtri seals sync-twins(517 already consistent, 0 written).spec_hashchanged for all of them, and the gen hashes changed because the output now carries real enum declarations.Not in this PR: the gen gate
The gate (
typecheck_gatebefore every gen path, seal and compile-all/compile-project, the HTTP handlers, thetri misreadcontrol and a regression test) is hand-written.rs. Under the owner's 2026-10-05 rule ("no new PR may contain hand-written code in any language other than t27") it is pushed toclaude/t27c-gen-typecheck-gateand no PR is opened for it.Files
.t27(hand-written spec source): the 28 specs above..trinity/seals/*.json, written byt27c seal --save.docs/reports/suite_expectations.json: 25 entries dropped by a JSON filter on the exact entries the ratchet named as fixed, and the cap lowered to match.docs/now/2026-10-05-misread-specs-6446.md.🤖 Generated with Claude Code