feat(toilville): wire toilville.com into the deck to WP surface pipeline #101
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!101
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/toilville-site-surfaces"
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?
Stacked on #100. Base is
feat/toilville-web-palette-tokens.Puts the approved toilville.com design through the existing
.dc.html → ForgeBlock → WP FSE patterningestor, instead of shipping theClaude Design export's 508 raw hex literals.
What landed
Sources —
Media/Decks/templates/toilville/: the canvas's five artboardssplit into
ToilvilleLanding.dc.html+ four*Page.dc.html. The stale bundledtoken snapshot is dropped; the helmet links the live
dist/toilville/skin.css, so the sources can't drift from generated tokens.udg/products/toilville/wp-style.json— apalette_mapthat actuallyresolves: 24 entries, including the new
accent.spelwork/accent.rituals/neutral.warm-*tokens.build_surfaces.py—toilvilleadded toBRANDS, plus a*Page.dc.htmlglob so a five-screen site isn't collapsed into one
landing.php. Purelyadditive; no existing brand ships a
*Pagesource.CTAs — annotated with the converter's own explicit grammar
(
data-block="button"/"actions") rather than by changing the converter.16 buttons across 7 groups. They now emit real
wp:buttonsbound to thepalette:
Output
5 patterns + 5 CLI renderings, and 5 forgeblock fixtures that pass
forgeblock_validate(gate went 21 → 26 fixtures).Known fidelity gaps — please read before merging
These patterns are a token-bound content skeleton, not a pixel rendering of
the design. The heuristic converter was built for 6–12KB single-screen decks;
these artboards are 8–25KB each with interactive demos. Still lossy:
<em>in headings is displaced — "Governance should be a , not aplugin. primitive"
(--)column_set/fact_setdetectedEach is fixable the same way the CTAs were — more
data-blockannotation on thesources, no converter changes. I stopped here rather than spend the annotation
pass without checking whether you want the patterns to be faithful or whether
you'd rather hand-build the templates and keep these as content scaffolding.
Verification
just check— fully green;toilvillenow shows inwp_theme.py checkpytest generator/tests/ tools/wp_theme_ingestor/test_*.py— 267 passeddist/changes (this PR touches sources + wp-preview only)https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78
Puts the approved website design through the existing .dc.html -> ForgeBlock -> WP FSE pattern ingestor instead of shipping the Claude Design export's 508 raw hex literals. Sources (Media/Decks/templates/toilville/): the canvas's five artboards split into ToilvilleLanding.dc.html plus four *Page.dc.html. The stale bundled token snapshot is dropped; the helmet links the live dist/toilville/skin.css, so the sources cannot drift from the generated tokens. wp-style.json: a palette_map that actually resolves — 24 entries, including the new accent.spelwork / accent.rituals / neutral.warm-* tokens. For contrast, spelwork's existing map resolves to an EMPTY palette (its paths use color.primary, which is not a token key), which is why its patterns carry no colour at all. Worth fixing separately. build_surfaces.py: toilville added to BRANDS, plus a *Page.dc.html glob so a multi-screen site is not collapsed into one landing.php. Additive — no existing brand ships a *Page source. _page_slug() derives the output name. CTAs are annotated with the converter's own explicit grammar (data-block="button"/"actions") rather than by changing the converter: 16 buttons across 7 groups. They now emit real wp:buttons blocks bound to the palette (has-brand-primary-background-color), not hex. Output: 5 patterns + 5 CLI renderings per page, and 5 forgeblock fixtures that pass forgeblock_validate (21 -> 26 fixtures in the gate). KNOWN FIDELITY GAPS — these patterns are a token-bound content skeleton, not a pixel rendering of the design. Still to do: - inline <em> in headings is displaced ("a , not a plugin. primitive") - feature bullets reduce to "(--)" - grids/columns flatten (no column_set/fact_set detected) - Contact's form and News's post list are unstructured - Contact/News detect no actions Claude-Session: https://claude.ai/code/session_01Kbzfscp4w5enUrZxMnDt78