Skip to content

claw: reel_still.t27 -- the TRI CLAW /mcp tool that renders one particle still - #10548

Draft
gHashTag wants to merge 11 commits into
claude/visual-output-10508from
claude/reel-still-tool
Draft

gHashTag wants to merge 11 commits into
claude/visual-output-10508from
claude/reel-still-tool

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Closes #10547

Stacked on #10510 (draft, branch claude/visual-output-10508): this spec imports STILL_MS and still_ms_ok from specs/claw/visual_output.t27, which exists only there. Draft until #10510 lands; then retarget to master.

What

specs/claw/reel_still.t27 (module ClawReelStill) is the contract for reel_still, the TRI CLAW /mcp tool that specs/claw/visual_output.t27 names as its follow-up. It takes topic, lesson, lang and aspect and returns one image/png: the frame a token_floor reel shows at STILL_MS.

  • Name: reel_still has no t27_/t27f_ prefix, so specs/t27mcp/service.t27 homes it in TRI CLAW and mounts it as it is. A control checks that t27f_reel_still would be refused.
  • Topic: "" or token-floor is the physics reel. A lesson id resolves through specs/t27f/reel_topics.t27, code point by code point, so the tool and the reels share one list of lessons. A lesson index alone names the same reel, and topic and lesson must agree.
  • Frame: STILL_MS * SCENE_FPS / 1000 = 270 of 450. The renderer env is TF_SHARD=270 TF_SHARDS=450 TF_CUT=<aspect>, which frame_shard.first_of/end_of turn into exactly [270, 271). A control checks that a halved shard count renders the whole reel.
  • Overlays: they come from the reel's own filter graph, whose drawtext overlays are keyed on the filter frame index n, not on time. A lone frame is n = 0 however it is offset, so -itsoffset 9 drew the frame-0 overlays (measured: 42.9 dB against the raw particle frame, 23.3 dB against the reel). The recipe puts tpad=start=270 in front of [0:v], so the frame arrives as n = 270 at 9 s; the last [v] frame goes to the PNG (-update 1), [a] to null. Measured on the lab, lesson 1 en tall: rc 0, 2585 ms, 499707 bytes, 49.3 dB against frame 270 of the reel's mp4 (21.7 dB against 269, 22.0 dB against 271).
  • Lab only: off the lab the verdict is V_NOT_ON_LAB, and nothing is rendered.

Evidence (Railway lab)

  • t27c test report: 15 tests, 15 pass, 0 vacuous.
  • t27b (aarch64 under qemu): ClawReelStill: 15 passed, 0 failed.
  • Mutants:
    • topic lookup returns 0: 3 tests fail.
    • frame formula /1001: 1 fails. /999 is an equivalent mutant, because 270000/999 still truncates to 270.
    • lab check removed: 1 fails.
    • pad one frame short (still_frame() - 1): 1 fails.
  • Seal .trinity/seals/claw_ClawReelStill.json: 15/15, vacuous 0. Its closure is visual_output, frame_shard, reel_topics, token_floor_scenes and t27mcp/service.
  • t27b ledger row pass; one row in docs/claw/README.md.

Not in this PR

Serving the tool from TRI CLAW's /mcp (Railway glue) is not here. The header of visual_output.t27 still says no tool renders a still, which stays true until that glue exists.

🤖 Generated with Claude Code

gHashTag and others added 2 commits October 19, 2026 00:01
…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 (Closes #10547)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag and others added 2 commits October 19, 2026 01:48
…token degrade (ea232d4) (Closes #10547)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 19, 2026

This branch has not been deployed

No deployments
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.

1 participant