Repository navigation
t27f: why card -- draw one deps_why chain as a social card, box per spec (Closes #10716) - #10719
Merged
Merged
Conversation
…Closes #10702) deps_unknown reads the focus spec's source next to the use-edges list and writes one `unknown<TAB>path` line per use line with no edge to its whole path or its single fallback, mirroring bootstrap/src/use_resolve.rs. Measured on the Railway lab, master f33f269: 2489 use lines, 23 unknown in 13 specs, byte for byte the `t27c gen` "resolves to no spec" warnings; the drop-one and empty controls both fail. Spec 25/25 tests, 0 vacuous; corpus ratchet CLEAN. The t27f skill gains the oracle recipe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oses #10705) deps_why a b writes one shortest chain of edge-list lines from a to b, each exact, a tie taken in edge-list order; `none` when a does not reach b; refused whole when the walk or the output does not fit. It answers the question cargo tree -i, npm explain and pnpm why answer. deps_find is split out of deps_in_range so the backtrack can pick the first edge line in a range whose importer sits one layer closer. Six tests: the shortest chain over DEPS_FIXTURE, a tie in edge-list order, a spec to itself in no hops, none against the edges and off the graph, a cycle crossed both ways, and an output one byte short refused whole. Lab: test-report 31/31, 0 vacuous; a scratch corpus check over 2466 edge lines held hop count = layer and joined hops for every spec reached from lesson_reel, spec_deps and t27f_gate; the one-hop-more control and the last-edge mutation fail. Seal re-saved and verified; corpus ratchet CLEAN. The t27f skill gets the why recipe, the finding that all 13 specs with a dropped use line fail for other reasons first, and the pkill self-match trap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # .claude/skills/t27f/SKILL.md # .trinity/seals/t27f_t27f_spec_deps.json # specs/t27f/spec_deps.t27
…pec (Closes #10716) specs/t27f/why_card.t27 reads the chain deps_why writes and returns an ffmpeg filter graph for a 1080x1350 card: one box per spec in chain order, every box in spec_graph_view's exact style, a `uses` connector per edge, names without specs/ and .t27 at the largest size that fits. The column is centred in 260..1150 with gaps of at least 30 px for every length from 2 to 7 boxes. Nothing is drawn for none, refused, 0 hops, a broken join, a non-exact edge, an unquotable name or font, a name over 58 bytes, or more than 7 specs; a graph that does not fit is refused whole (cap + 1). The font is a parameter (WHY_FONT): an import of lesson_reel for FONT pulls its scene tree in and does not compile. Skill card t27/why-card (social-visual) with its seal. Lab: test-report 10/10, 0 vacuous; 5 mutants (count, join, step cap, font quote, font cap) each fail one test. Corpus: 20 chains from why_card drew, the longest 7 boxes to verified/device_dna; renders of that card and a 3-box one held 62 pixel checks and white text in every box, and a deliberately wrong expectation missed. Seals verify; corpus ratchet CLEAN. The t27f skill gets the card recipe and three traps: the import of a print module, the open slice t27c gen drops (#6250), and a count check that hides behind a later check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 23:44
Master's SKILL.md is the squash of #10715, byte-identical to this branch's base, so the branch copy is kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
gHashTag
added a commit
that referenced
this pull request
Oct 19, 2026
…ders' exact 2^21-bit buffers (Refs #10762) The merge keeps this branch's deps_card.t27 and its seal (master holds the squashed #10747 text, which this branch already contains). Master's t27b ledger already lists deps_card and why_card, which clears the t27b-native ratchet for them. The Verilog widths check failed because why_card.t27 (on master since #10719) and deps_card.t27 each read the corpus edge list (136,837 bytes) into a [262144]u8, printed as [2097151:0]. Ledgered with the arithmetic, as suggest_feed.t27 and token_floor.t27 are. 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 #10716
Stacked on #10715 (
deps_why, Closes #10705). Until #10715 merges, the diff also shows its commit. The PR targets master directly, because stacked PRs in this repo are never retargeted.What
TRI CLAW gets a new social-visual skill: a card showing why one spec imports another.
specs/t27f/why_card.t27reads the chaindeps_whywrites and returns an ffmpeg filter graph for a 1080x1350 card:spec_graph_view's exact style;usesconnector per edge;maintakes thet27c use-edgeslist on stdin, plusWHY_A,WHY_BandWHY_FONT.specs/skills/t27-why-card.t27(t27/why-card, tags social-visual / t27f / deps / card), with its seal.It draws nothing (returns 0) for:
noneorrefused;A graph that does not fit the caller's buffer returns
cap + 1, never a cut graph.Tests (10, all pass, 0 vacuous)
specs/and.t27;Evidence (Railway lab)
Mutants: 5 mutants each fail exactly one test: the hop count, the join, the step cap, the font quote and the font cap. The hop-count mutant first survived; the fixture that kills it is in this PR.
Corpus: 20 chains from
why_carddrew, over 2474 edge lines. The longest, 7 boxes, runswhy_card→claw/t27f_gate→t27f/hot→verified/seal_identity→verified/independence→verified/die_binding→verified/device_dna.Renders: the 7-box and 3-box cards, rendered with ffmpeg, pass 62 pixel checks:
White text pixels appear in every box's name band (1441 to 4803 per box), and 0 below the column. A deliberately wrong expectation misses.
Seals and ratchet:
t27c seal --verifyreports all hashes MATCH for both specs.t27c suite --ratchet --corpus-onlyis RATCHET CLEAN.Not claimed
deps_whypicks. When the edge list has ties, other chains of the same length exist.Skill
.claude/skills/t27f/SKILL.mdgets the card recipe, the pixel-check list and three traps:t27c gendrops an open slice end (t27c gen: open slice x[i..] emitted as x[i]; &[_]T{...} emitted as &.{ _ } #6250);🤖 Generated with Claude Code