Skip to content

t27f: deps card draws a long spec name abbreviated by a stated rule, not refused - #10747

Merged
gHashTag merged 5 commits into
masterfrom
claude/t27f-deps-short-names
Oct 19, 2026
Merged

gHashTag merged 5 commits into
masterfrom
claude/t27f-deps-short-names

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10728

What

The deps card (#10720) refused 30 of the corpus's 813 specs, because a shown name was over 58 bytes. It now draws them, abbreviating each long name by a stated rule. The card shows the abbreviation, so a shortened name never reads as the exact path.

  • A name of at most 58 bytes is drawn byte for byte, as before.
  • A longer name is drawn as three parts: its first segment, /..., and the longest run of whole trailing segments that fits. For example, port/.../rings/CR-CHAT-03/src/confirmation_tag_chain.
  • When no run of whole segments fits, the name is drawn as ... and its last 55 bytes. For example, ...cover_traffic_inter_destination_timing_uniformity_guard.
  • Only drawn bytes are checked for quotability. A byte that the abbreviation hides is not drawn.
  • The text size follows the drawn length, so every geometry bound in the t27f: deps card -- one spec's importers and imports as a social card #10720 tests still holds.

why_card.t27 is unchanged and still refuses a name over 58 bytes.

Tests (17, all pass, 0 vacuous; why_card's 10 pass)

The six new tests:

  • Fits: a name of exactly 58 bytes is drawn whole, and specs/a/b.t27 is drawn as a/b.
  • Head and tail: a long name keeps its head and the longest whole tail that fits. This is checked on a 99-byte name and a 65-byte name. The 65-byte name keeps three tail segments, not just its last one.
  • Last bytes: a long name with no whole tail that fits keeps its last 55 bytes. This is checked on a 105-byte path and on a 63-byte flat name with no /.
  • Only drawn bytes are checked: a : that is hidden passes. A : in the head, in the tail, or in the kept bytes of the dots form refuses. A 58-byte name with a : in the middle refuses.
  • Whole card: a two-edge card is drawn with both importers abbreviated, at sizes 24 and 25, and the full-width focus at size 32. The focus card of an abbreviated spec shows IMPORTS 1.
  • Negative control: a long name whose drawn bytes cannot be quoted is not drawn.

Evidence (Railway lab)

  • Mutants: 22 of 22 fail at least one real test. A failure counts only on a FAIL <test-name> line, not the FAIL 0 summary.

    • The 13 new mutants each break one rule:
      • the <= bound, in the put, length and check functions;
      • the tail room;
      • last-segment-only;
      • the dots size;
      • a dropped head;
      • the head, tail and dots checks;
      • a whole-name check past 58 bytes;
      • the row font and the focus font taken from the raw length.
    • The 9 mutants from t27f: deps card -- one spec's importers and imports as a social card #10720 still fail.
    • The < mutant of the check bound first survived. The test that kills it is the 58-byte name with a hidden : in this PR.
  • Build: t27c gen and zig build-exe -lc -O ReleaseSafe pass for this branch and for master.

  • Corpus sweep: 2483 edge lines name 813 specs. Each spec's card from the new binary was compared with master's:

    • 30 cards are newly drawn, 783 are byte-identical to master, and 0 are lost or still refused;
    • 0 changed or newly drawn cards are missing a ..., and 0 identical cards have one;
    • the cards draw 29 distinct abbreviated forms: 27 /.../ and 2 ..., the longest 58 bytes.
  • Renders: three cards were rendered with ffmpeg at 1080x1350 and passed every pixel check from t27f: deps card -- one spec's importers and imports as a social card #10720, with 0 white pixels outside x 100..980:

    • trios-chat/common/helpers, the card that was refused for its importers: 29 importers, all three shown rows abbreviated;
    • a /.../ focus, confirmation_tag_chain;
    • a ... focus, timing_uniformity_guard.

    A deliberately wrong expectation misses on all three.

  • Seals and ratchet: t27c seal --verify reports all hashes MATCH for deps_card (re-sealed) and why_card. The skill card and its seal are unchanged from master. t27c suite --ratchet --corpus-only is RATCHET CLEAN.

Not claimed

  • Two long names can abbreviate to the same text. The header says so. No card in the corpus does this: the one card with two equal drawn texts is claw/t27f_gate, which is byte-identical to master and has no abbreviation.
  • The kept tail is the longest whole run that fits. It is not chosen as the most meaningful part of the path.

Skill

.claude/skills/t27f/SKILL.md gets the rule, the sweep numbers and four lab traps:

  • pkill -f matches its own fs-lab command;
  • an untracked seal blocks git checkout, so the script must check the commit it tests;
  • the FAIL 0 summary line reads as a kill;
  • a < bound mutant needs a byte that only the whole-name check sees.

🤖 Generated with Claude Code

gHashTag and others added 3 commits October 19, 2026 07:15
…not refused (Refs #10728)

A shown name past 58 bytes keeps its first segment, `/...`, and the
longest run of whole trailing segments that fits; when none fits, `...`
and its last 55 bytes. Only drawn bytes are checked for quotability, and
the text size follows the drawn length.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ls a `<` bound (Refs #10728)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and four lab traps (Refs #10728)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The deps_card seal conflicted because its closure holds claw/t27f_gate.t27, changed on
master by #10745; the seal is re-saved on the lab in the next commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in #10745) (Refs #10728)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-19 01:50:35 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 2
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 2 + 46 + 0 + 0 = 48, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=fad12492937a != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 40f619e into master Oct 19, 2026
31 of 33 checks passed
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>
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.

t27f: deps card draws a long spec name by a stated shortening rule instead of refusing the card

1 participant