Repository navigation
Conversation
…, by host, readable or redrawn One rule for the t27 MCP server's instructions and TRI CLAW's chat prompt: needs_visual, answer_channel (desktop inline widget, TRI CLAW image URL, markdown table fallback), inline_readable (font * 680 >= 11 * width), inline_source (embed or redraw from t27f_outline), answer_verdict. Lab: t27c test-report 9/9, 0 vacuous; a mutant readability rule fails 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #10508) Owner order 2026-10-18: every Claude Code output carries a visual, built on the T27F visualizer and its MCP tools, written into the TRI CLAW rules. The T27F meant here is the particle video (token_floor reels). - specs/claw/visual_output.t27: which output kind carries which visual (particle still by default, reel, spec graph, check-run link), lab vs MCP host rendering, session-folder placement through T27fReel.channel_for, EXPORTED/FOLDED/MANUAL graph labels at the t27f_graph caps, and report_ok: every needed visual is made or reported missing. 8/8, 0 vacuous on the lab. - Seal written by t27c seal --save; spec_hash matches. - Skill t27f: "Visual in every output" steps pointing to the law; the particle reels are T27F too. - docs/claw/README.md: one row pointing to the law. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The t27b-native ratchet reported the new spec as UNLISTED: the reference passes it and the ledger did not name it. A pass row; max_not_pass is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It landed on master without a ledger row, so the t27b-native ratchet reports it UNLISTED on every branch. A pass row; max_not_pass unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…visual-output-10508
…the rule from t27mcp::visual_output (#10504) (Closes #10508) The owner picked specs/t27mcp/visual_output.t27 as the single home of the visual-output rule. The claw spec now imports needs_visual, answer_channel and the K_/HOST_/CH_ numbers from it and adds only takes_still, still_channel, place_for, still_ms_ok and still_report_ok. Lab: 6/6, 0 vacuous; t27mcp spec 9/9, 0 vacuous. Resealed. Ledger row for specs/t27mcp/visual_output.t27 (t27b pass, per #10504's own ratchet run). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…loses #10508) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cle still (Closes #10547) specs/claw/visual_output.t27 says a report's visual is one PNG frame of a token_floor reel at STILL_MS, rendered on the Railway lab, and that no MCP tool renders one. This spec is that tool's contract: the name is homed in TRI CLAW by specs/t27mcp/service.t27, topics resolve through specs/t27f/reel_topics.t27, the frame is 270 of 450 and frame_shard draws only it (TF_SHARD=270 TF_SHARDS=450 TF_CUT=aspect), the overlays enter with -itsoffset 9, and a call off the lab is refused. Lab: 13/13 pass, 0 vacuous; t27b 13/13; mutants of the topic lookup, the frame formula (/1001; /999 is an equivalent mutant) and the lab check are killed. Sealed; t27b ledger row; docs/claw/README.md row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 270 (#10547) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… item (Closes #10561) The content factory of epic #10560 (R1 + R2). Each lesson's code and title are read into eleven feature counts; twelve scene archetypes are scored by term frequency over course frequency; the course is planned at once (best pair first, cap 4, no repeat within 2 items, then the least-used generic scene); accent, motion and layout dress the plan; eight output formats and the SSIM anomaly bound for R3. Lab: test-report 8/8 pass, 0 vacuous; seal --verify MATCH; t27b front end accepts it (JIT verdict is the arm64 ratchet's). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ude/t27f-factory-renderers
…rs (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… scene renderers (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…scene_still (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…bare lesson (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
#10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…usal (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…7 permille (WIP, #10571) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
Merged
Merged
Merged
Merged
Merged
This branch has not been deployed
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 #10571. Part of epic #10560 (R3).
What this does
reel_factory.t27(PR #10566) plans one of 12 scene archetypes per lesson, but no code drew a plan. This PR gives each archetype a renderer that turns the lesson's own content into a still, and adds the gate that looks at the pictures.reel_stillwork, PR claw: reel_still.t27 -- the TRI CLAW /mcp tool that renders one particle still #10548):scene_raster.t27(integer raster: rgb, discs, rings, segments, the bitmap font),scene_lex.t27(lesson lines, bytes and keyword counts),scene_bg.t27(lesson-seeded backdrop)..t27each,<name>_px(t, acc, n, x, y)on a 360 x 640 canvas:scene_code,scene_graph,scene_tests,scene_trit,scene_loop,scene_branch,scene_data,scene_links,scene_guard,scene_title,scene_task,scene_map.scene_still.pixeldispatches by archetype and applies the plan's accent, motion and layout.still_gate.t27: renders the 27 course-0 stills (108 x 192 luma), scores all 351 pairs with an integer block SSIM (12 x 12 blocks, i64, the same number on every machine) and refuses the course when the most similar pair is aboveSIMILAR_MAX_PERMILLE(850).Result
Measured on the Railway lab, never on the Mac: the most similar pair of course 0 is lessons 8 and 20 at 607 permille, 243 under the bound. The gate's test pins that pair, so a renderer change that moves it must move the test. Negative controls: a still against itself scores 1000 and is refused; each renderer's tests check that another lesson draws a different picture and that the same lesson twice is one picture.
Verification
t27c test-reporton all 17 new specs: every test passes, 0 vacuous passes.t27c seal --savethen--verify: all hashes match; the 17 seals are in this PR.t27b corpus specs/t27f --liston the lab shows no UNSUPPORTED for them). The lab is x86 and the JIT runs on arm64 only, so the pass verdict itself is the arm64 CI's. Ledger: 17passrows,max_not_passunchanged at 134.@modis replaced byfmod(t27b rejects@mod), and no spec has a printingmain.t27fcontent-factory row updated.Not claimed
SSIM on luma sees layout and contrast, not meaning: two stills with different words in the same boxes would pass.
lesson_reelstill drawstoken_floor(R4, next). No render output is committed (nothing underout-reels/).Stack
The branch is stacked on #10566 (
reel_factory) and #10548 (reel_still, draft, based on #10508): their commits show in the diff until they merge. The new work isspecs/t27f/scene_*.t27,specs/t27f/still_gate.t27, their seals, 17 ledger rows and the skill row.🤖 Generated with Claude Code