v0.2.1 — a guard for the variant word
A guard release. No block content changed, so no site needs to re-sync — only to pin this
version to get the guard.
The hole it closes
A slide deck whose design tokens fence declares the wrong variant — page where it should say
deck — was silently broken, and every check reported green. That is what you get by seeding a
new deck from a prose page.
design sync would write the page variant, closing :root inside the fence. The deck's own
--warn, --slab and --lcd then sat outside :root as a parse error at stylesheet top level,
and CSS error recovery swallowed the stray } and the *{box-sizing:border-box; margin:0} rule
after it — so the deck lost its transport colours and its box reset. design sync --check then
reported ✓, correctly: the page really did match what the package emits for page.
planFences now asserts the declared variant against the page's own shape — whether its existing
block closes :root — and throws when the two disagree. Exit 2, the same class as a malformed
fence, because that is what it is.
This is a consistency check between two signals that already exist, not the variant inference
the design deliberately refused. Its whole purpose is to fail loudly.
What was already safe and stays so: a missing variant throws, any misspelling throws, and a prose
page wrongly marked deck was never silent — :root simply never closed and the page rendered
unstyled. The one silent direction is now covered.
Also
design sync --check no longer prints design tokens is v4, this release ships v4 for a block
someone edited by hand. It says the block was edited locally and names where to change it instead.