Repository navigation
t27f: frontend.t27 -- T27F is t27's frontend, every visual surface in one law, served by TRI CLAW (Closes #10537) - #10551
Merged
Merged
Conversation
… one law, served by TRI CLAW (Closes #10537) The owner asked that everything visual be gathered into one tool, T27F, the frontend of t27, made through several tools, and that T27F go into TRI CLAW. - specs/t27f/frontend.t27 (module T27fFrontend): 13 surfaces (spec graph, outline, map still, graph page, hot stream, check-run, preview, particle reel, still, map video, live particles, UI plan, dashboard), what draws each today, intent -> surface routing, a stand-in when the wanted surface cannot be made, claim_ok (nothing undrawn is claimed made), and which surfaces TRI CLAW serves through the t27 home of specs/t27mcp/service.t27. - Skill t27f: renamed T27F Frontend; "What T27F is" redefined around the frontend, the spec diagram kept as its core; stale "What exists" rows fixed (graph page live, reels are surfaces, not applications). - Pointers in CLAUDE.md, AGENTS.md, specs/OWNERS.md, four spec headers and the skill card specs/skills/t27-t27f.t27 now point at the new definition. - 16 seals rewritten with t27c seal --save on the Railway lab; ledger row for frontend.t27. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; master merged it without a row (Closes #10537) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
This was referenced Oct 18, 2026
Merged
This was referenced Oct 18, 2026
Closed
Contributor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…6 for the two blocked ones (Closes #10537) Evidence: the t27b-native-ratchet job of master run 90f6248 (fresh t27b built from master) lists app-tabs, systolic, preflight, reset_queue and t27mcp/visual_output as UNLISTED t27b pass, and kill_rule as blocked on ExprCall(undeclared fn). linear_zoh (blocked on ExprCall(@sin)) was already added on this branch. Non-pass rows are now 136, so max_not_pass equals reality (loop-tools-tracked). Merged origin/master first (also brings the Ring -> RingPeak rename 911166f). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> # Conflicts: # .claude/skills/t27f/SKILL.md
This was referenced Oct 18, 2026
Contributor
PR DashboardGenerated at: 2026-10-18 19:44:02 UTC
Summary
Seal Status
|
This was referenced Oct 18, 2026
gHashTag
enabled auto-merge (squash)
October 18, 2026 19:54
This was referenced Oct 18, 2026
# Conflicts: # .claude/skills/t27f/SKILL.md
This was referenced Oct 18, 2026
Closed
Contributor
PR DashboardGenerated at: 2026-10-18 20:29:49 UTC
Summary
Seal Status
|
This was referenced Oct 18, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
Every line comes from master. The two igla_own_model seals conflicted because master's #10551 changed specs/t27f/topic_engine.t27 in their closure. This merge keeps this branch's seals; the next commit reseals both against the merged tree on the Railway lab (Refs #10461). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…efs #10461) Master's #10551 changed specs/t27f/topic_engine.t27, which is in the closure of both seals. Resealed on the Railway lab with t27c built from 0102386: own_model.t27 10/10, own_model_board.t27 6/6, and t27c gen-json still writes gen/json/igla/own_model_board.json byte for byte (sha256 3b2c0bce...b5cf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…ART receipt (Closes #10461) (#10475) * fpga(ax7203): ternary mat-vec over real tern-tc-9m weights in DDR3, UART receipt (Closes #10461) Cell 26 of specs/igla/own_model.t27 (epic #10024), the compute step on top of the DDR3 read path of #10248. - specs/fpga/ddr3_ternary_matvec.t27: the board spec. It receives the 20,480 bytes of blocks.0.attn.k.weight (tern-tc-9m, sha256 3102abdf...ce9c, offset 10,589,476) on UART RX P20, packs them into 640 beats of 256 bits, writes them to DDR3, reads them back one beat at a time and steps through their trits one per clock: y_r = sum_c w_rc * x_c, x_c = int8(37c + 11), wrapping 32 bits. Receipt on N15: T27 TERN N= S= C= Y= E= F= L= PASS|FAIL. - specs/fpga/tern9m_l0_k_weights.t27: the same bytes as 2,560 u64 words made with od, and the tests that compute S_EXPECT and Y_EXPECT from them with the board spec's own fold and trit_term; the FF-as-+1 mutant and a one-byte change both miss. - Tests on the Railway lab: 9/9 and 5/5, 0 vacuous. A copy of the board spec with the FF trit read as +1 fails its own test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fpga: board_receipt.t27 holds the receipt pieces the AX7203 board specs shared (Refs #10461) fold, hex_digit and the PASS/FAIL verdict characters were written three times, in rc_filter_ax7203, ddr3_head_bandwidth and ddr3_ternary_matvec; dupe-bodies named them. They now live in one pure module, specs/fpga/board_receipt.t27 (4 tests, 0 vacuous), and each board spec uses it. ddr3_head_bandwidth keeps its own four-verdict verdict_char for the SLOW and KILL lines. The head_bandwidth and rc_filter netlists emitted after the move equal the ones from before it, up to line order, comments and the function name. Seals written on the Railway lab with zig on PATH; three t27b ledger rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * dupe-bodies: drop the hex_digit group from the baseline (Refs #10461) board_receipt.t27 now holds the one hex_digit the three AX7203 board specs had each written, so the group is gone and the gate asked for the ceiling to come down with it: 1 line removed by tools/dupe_scan.py --bless. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * elab ratchet: rows for board_receipt 0 and tern9m_l0_k_weights 8 (Refs #10461) Both specs arrive with cell 26 and gen-verilog emits a module for each, so the ratchet read them as NEW. board_receipt elaborates clean. The 8 in the weights spec are all names it takes by `use` from board_receipt and from ddr3_ternary_matvec (a t27b spec gen-verilog skips); the weights are test data the board receives over the UART, never synthesized. Measured on CI (iverilog 12.0) and on the Railway lab (11.0): 214 errors, baseline now 214. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ddr3_ternary_matvec: the board judges against S_EXPECT and Y_EXPECT out of reset (Refs #10461) The first board run printed the right N, S, C and Y with E=F=0, and FAIL: s_want and y_want reset to 0. The tests set them before each run, so the spec passed while the hardware compared a correct receipt against 0. Both registers now reset to the pinned constants (t27b emits them as the reset values), and a new first test asserts the out-of-reset values before any test assigns them. With the old `= 0` initializers that test fails; the FF-as-+1 mutant still fails its trit test. 10/10 pass, 0 vacuous; seals written on the Railway lab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * tern9m_l0_k_weights: pin the two FAIL receipts the negative controls print (Refs #10461) The mutant test only said Y != Y_EXPECT and the byte-0 test only said S and Y differ. Both now also assert the exact values, read off the spec's own failing assert_eq with 0 in their place, not off the board: - Y_MUT_FF = 0x3E5E6C8ED51DF5C8, Y of the FF-as-+1 mutant on the real bytes - S_FLIP0 = 0x4B58160720ABB81C, Y_FLIP0 = 0x9A50D884522C2320, the real design on the bytes with byte 0 changed from FF to 01 On the AX7203 the mutant bitstream printed Y=3E5E6C8ED51DF5C8 FAIL and the design printed S=C=4B58160720ABB81C Y=9A50D884522C2320 FAIL, so each negative control fails for the predicted reason. 5/5 pass, 0 vacuous (asserts 4, 3, 1, 2, 6); resealed on the Railway lab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * own_model: cell 26 verified, compute from DDR3 on the AX7203 reviewed (Refs #10024, Refs #10461) Cell 26 ("Full model on FPGA, DDR3") moves from draft to verified at 15 percent. specs/fpga/ddr3_ternary_matvec.t27 computes y = W x on the AX7203 from the tern-tc-9m layer-0 K weights held in DDR3. Its UART receipt equals what the weights spec's test computes, and both negative controls print FAIL. Review 5565244743 is the reviewer bee on head 21ccad3. The model verdict was approve, and it named each of the three red checks as master's. The bee posted it as NEEDS_PERSON because the head changes seal files, the same hold as review 5563181513 on #10428 (cell 9). The board now reads 4 published, 23 verified, 0 drafts, 0 gaps; 62%. own_model.t27 passes 10/10 and own_model_board.t27 passes 6/6, 0 vacuous, on the Railway lab. The seals and gen/json/igla/own_model_board.json were written there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * seals: reseal own_model and own_model_board after the master merge (Refs #10461) Master's #10551 changed specs/t27f/topic_engine.t27, which is in the closure of both seals. Resealed on the Railway lab with t27c built from 0102386: own_model.t27 10/10, own_model_board.t27 6/6, and t27c gen-json still writes gen/json/igla/own_model_board.json byte for byte (sha256 3b2c0bce...b5cf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #10537
The owner asked for everything visual to be gathered into one tool, T27F: t27's frontend, its own way of showing things, made through several tools. They also asked for T27F to go into TRI CLAW. This PR gives T27F one law, one definition, and pointers to that definition everywhere else.
What changes
specs/t27f/frontend.t27(moduleT27fFrontend, new) holds:claw/t27fcheck-run, PR previewSURFACE_STATUS,SURFACE_MAKER). Each surface is LIVE, LAB, PARTIAL, BLOCKED or SPEC.route(intent, host)picks the surface that answers an intent: a spec, its words, a topic, a lesson, a report, a PR, editing, health, a live agent, or an app.stand_in/pick: when the wanted surface cannot be made this turn, you get the nearest one that can, or none.claim_ok: a surface nothing draws is never claimed as made.claw_serveschecks that every T27F tool name lands in the t27 home ofspecs/t27mcp/service.t27, which TRI CLAW mounts at/mcp.claw_visual_toolnames the drawing set TRI CLAW's agent carries:t27f_graph,t27f_outline,t27f_viewandt27_dashboard.t27f:frontend.t27, with no copy of the rule:CLAUDE.md,AGENTS.md,specs/OWNERS.md;spec_graph,spec_graph_view,questandtopic_engine;specs/skills/t27-t27f.t27, where NAME, SUMMARY_EN, TAGS and SPECS changed along with its test.t27c seal --saveon the Railway lab. They cover the comment-only spec edits and everything that imports them.specs/t27f/frontend.t27is pass. It also adds the four analog rows that master merged without:bench,linearandmos_tableare pass;linear_zohis blocked onExprCall(@sin), which is what the t27b ratchet on claw: visual_output.t27 -- a T27F visual in every output that did work (Closes #10508) #10510 reported as UNLISTED.Ring, 107 -> 108) comes from master'slinear_zoh.t27. analog: linear_zoh.t27 -- rename struct Ring to RingPeak, it collided with another type named Ring and moved the types ratchet 107 -> 108 (Closes #10503) #10539 fixes it.Measured (Railway lab, 2026-10-19, master 6ea5f51 specs)
t27c test-reportspecs/t27f/frontend.t27specs/skills/t27-t27f.t27spec_graphtopic_enginequestspec_graph_viewspecs/t27mcp/service.t27t27c seal --verifyreports "all hashes MATCH" for frontend, spec_graph and igla/own_model_board, the deepest importer.spec_hashoft27f_T27fFrontend.jsonequals the sha256 of the spec,13cd46e9....Not claimed
/mcpmount not measured. Nobody has checked whether TRI CLAW's deployed/mcpmounts the t27 tools today. The spec states which tools it should carry; the wiring lives in gHashTag/999-multibots-telegraf.claw/t27fis BLOCKED. It is skipped on PRs until the owner grants the Appchecks:write.name_okexists in botht27mcp/service.t27andt27mcp/tool_schema.t27. Soservice::admitcannot be imported next totool_schema:t27c genreports "ambiguous, not spliced".claw_servestherefore useshome_of. The defect belongs on epic: self-host t27c -- rewrite the compiler from Rust into t27 #5980.🤖 Generated with Claude Code