feat(toilville): emit the lockups and the two new block attributes — 100% copy #119
No reviewers
Labels
No labels
priority
P1
priority
P2
priority
P3
priority
P4
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Toilville/toilville-design!119
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/client-emits-new-attrs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The three plugin changes have landed (#374, #375, #376), so the client can stop working around blocks that couldn't express what the design asked for.
toilville/product-logoEmailemailLabel, so it reads "Work email"The vocabulary's
imageblock carries no height — size is a rendering decision — so the client makes it: 26px in a card, 30px in the Spelwork hero, the only place a lockup heads a page.Copy coverage is 100% on all five pages
Floors raised to give exactly one text node of slack: one miss passes, two fail. That's tighter than it sounds — the denominator is the design's node count, so editing copy moves both sides together and the ratio only falls when the renderer drops something. These floors cannot flap on ordinary copy work.
A gap the copy gate could not see
An
<img>is not text, so copy coverage never counted the lockups and would not have caught their loss. I confirmed this rather than assuming it: deliberately re-dropping all four left coverage at 100.0%.So four lockups were missing from live pages for the entire cycle with every gate green — including the gate I'd have expected to catch it. New
test_no_image_is_silently_droppedcloses that: any image the client can't resolve now fails, instead of leaving a comment nobody reads. Verified red.just checkgreen; 292 tests pass.https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
The three plugin changes have landed, so the client can stop working around blocks that could not express what the design asked for. * the four product lockups resolve to toilville/product-logo instead of being dropped with an apologetic comment. The vocabulary's `image` block carries no height — size is a rendering decision — so the client makes it: 26px in a card, 30px in the Spelwork hero, the only place a lockup heads a page. * spelwork's closing band emits its second action, "Talk to a human". * the contact form emits emailLabel, so the field reads "Work email" as the design says rather than the block's default "Email". Copy coverage is now 100% on all five pages. Floors raised to give exactly one text node of slack — one miss passes, two fail. That is tighter than it sounds: the denominator is the DESIGN's node count, so editing copy moves both sides together and the ratio only falls when the RENDERER drops something. The floors cannot flap on ordinary copy work. New gate — an <img> is not text, so copy coverage never counted the lockups and would not have caught their loss. Confirmed by deliberately re-dropping them: coverage stayed at 100%. Four lockups were missing from live pages for the whole cycle with every gate green. Any image the client cannot resolve now fails instead of leaving a comment nobody reads. Verified red. Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78