oficina / docs Public

Spec: v0.21.0 facts — both spellings styled, doctor landed

Two statements in the spec became false overnight and a third needs
qualifying. Verified against the tag rather than taken on relay.

rastrillo v0.21.0 (2026-08-31) styles BOTH spellings: ui/tokens.css
carries 343 bare-attribute selectors alongside 398 class selectors. So
the spec's claim that the attribute grammar exists in no tree is now
wrong. And rastrillo doctor landed, which retires the manual tokens.css
re-copy step the spec told readers to carry.

The markup decision itself stays PARKED -- that is Paul's, and a relayed
green light is not the same as being told. But the reason it was parked
has largely dissolved: with both spellings styled, neither choice renders
unstyled and there is no interim styling either way. The decision got
cheaper rather than being made.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011F5CivVm4CmL9ByfSSAaXA
Paul Campbell pushed by paul@keymail.dev 4e062c04fd158c4981c588baba364ff993089ba5 parent 65a2396
1 file changed, +13 −5
  • docs/superpowers/specs/2026-08-30-docs-design.md +13 −5

CI passed — run details

diff --git a/docs/superpowers/specs/2026-08-30-docs-design.md b/docs/superpowers/specs/2026-08-30-docs-design.md
index fd2d0aa..ecefe80 100644
--- a/docs/superpowers/specs/2026-08-30-docs-design.md
+++ b/docs/superpowers/specs/2026-08-30-docs-design.md
@@ -591,7 +591,7 @@ Verified against `origin/main` and `v0.19.0`:
| `ui.TokensCSS()` | Released |
| `ui.ThemeCSS(name)`, `ThemeNames()`, `Layout(name)`, `LayoutNames()` | **Released in `v0.20.0`** (2026-08-30) — were `main`-only for six days |
| `Pair`, the allocation entry point | **Ruled only.** In no tree |
-| The bare-attribute grammar (`<div rst-inspector>`) | **Ruled only.** In no tree, no branch, unstarted |
+| The bare-attribute grammar (`<div rst-inspector>`) | **Released in `v0.21.0`** (2026-08-31). Verified: `ui/tokens.css` carries 343 bare-attribute selectors alongside 398 class selectors, so both spellings are styled |
**Resolved 2026-08-30: `v0.20.0` is tagged and level with `main`** (verified:
carries `ThemeCSS`, `ThemeNames` and `LayoutNames`; zero commits behind
@@ -636,8 +636,14 @@ consuming rastrillo's CSS and estilo does not do that.
| Docs' own markup | — | Estilo | **PARKED** — see below |
| rastrillo partials we consume | Whatever rastrillo emits — classes today | rastrillo | Not our call |
-**The middle row is parked, deliberately** (Paul, 2026-08-30): design-system
-questions wait until rastrillo's design system settles and estilo is real.
+**The middle row is still parked** (Paul, 2026-08-30), though the reason it
+was parked has now largely resolved. `v0.21.0` styles both spellings, so
+neither choice renders unstyled and there is no interim styling to carry
+either way — the decision got cheaper rather than being made. Two caveats
+attach to it whenever it is taken: adopt **per screen, not per element**,
+since mixed authoring inside one component matches neither spelling by
+design; and pin `v0.21.0` or later, because on anything earlier attributes
+render unstyled. Unparking is Paul's.
Docs writes no markup yet — plans 1 and 2 are a Rust crate and a wazero host
— so nothing is blocked, and answering it now would mean converging on a
decision that is about to be made upstream.
@@ -661,8 +667,10 @@ rastrillo's output, not a choice this spec makes, and it changes when
rastrillo changes.
`tokens.css` is frozen into `static/` at scaffold time while partials upgrade
-with the module, so re-copy it deliberately on every rastrillo upgrade until
-`rastrillo doctor` lands.
+with the module. **`rastrillo doctor` landed in `v0.21.0`**, so the manual
+re-copy step is retired: `doctor` compares an app's frozen `static/` against
+the module's and `--fix` re-copies, and it refuses across a version mismatch
+rather than manufacturing the fault it detects.
### 10.2 Colour