Markup: unparked — Docs writes the attribute grammar
Paul unparked it once both of his stated conditions were met, each verified here rather than accepted on report: rastrillo v0.21.0 styles both spellings (343 bare-attribute selectors alongside 398 class ones in ui/tokens.css), and the design-system guidance exists. Two constraints travel with the decision: adopt per screen rather than per element, since mixed authoring inside one component matches neither spelling by design; and pin v0.21.0 or later, below which attributes render unstyled. Also records that anything Docs contributes to estilo takes an estilo-* prefix. rst- is the framework's namespace and a future version may claim a name we took -- rastrillo's own migration found rst-form__foot and rst-form-foot both live inside ui. This question reversed twice before landing, both times by applying a conclusion drawn about one repo to a different one without re-deriving it. That reasoning stays in the spec so the next reader inherits the argument rather than just the answer.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011F5CivVm4CmL9ByfSSAaXA
2 files changed,
+24
−17
AGENTS.md+17 −8docs/superpowers/specs/2026-08-30-docs-design.md+7 −9
CI passed — run details
Intent
diff --git a/AGENTS.md b/AGENTS.md| index 3c0c68a..489956e 100644 |
| --- a/AGENTS.md |
| +++ b/AGENTS.md |
| @@ -169,14 +169,23 @@ one session's question exposing another's bug. |
| ## Conventions that are already settled |
| -- **Markup uses the `class="rst-*"` vocabulary.** Reversed 2026-08-30 after |
| - checking source. The bare-attribute grammar (`<div rst-inspector>`) is a |
| - ruled future direction that exists in **no tree** — not in the release, not |
| - on `main`, not on any branch — and it has no date. The class vocabulary is |
| - what ships, what `ui` styles, and what ~585 call sites in rastrillo use. |
| - Writing attributes now would mean maintaining a parallel styling |
| - implementation indefinitely; writing classes means one mechanical migration |
| - alongside the framework's own. |
| +- **Markup uses the bare `rst-*` attribute grammar** (`<div rst-inspector>`), |
| + variants in the value matched with `~=`. Unparked by Paul 2026-08-31, once |
| + both of his conditions were met and verified: `rastrillo v0.21.0` styles |
| + **both** spellings (`ui/tokens.css` carries 343 bare-attribute selectors |
| + alongside 398 class ones), and the design-system guidance exists. |
| + Two constraints come with it. **Adopt per screen, not per element** — |
| + mixed authoring inside one component matches neither spelling by design. |
| + And **pin `v0.21.0` or later**, because on anything earlier attributes |
| + render unstyled. |
| + *(This reversed twice before landing here, both times by applying a |
| + conclusion drawn about one repo to a different one without re-deriving it. |
| + The reasoning is in spec §10.1.1.)* |
| +- **Anything Docs contributes to estilo takes an `estilo-*` prefix, never |
| + `rst-*`.** That namespace is the framework's and a future version may claim |
| + a name we took — rastrillo's own migration found `rst-form__foot` and |
| + `rst-form-foot` both live inside `ui`. |
| + |
| - **A spec ruling, code on `main`, and code in the latest release are three |
| different things.** Reading one tells you nothing about the other two. |
| `v0.19.0` (2026-08-24) is 18 commits behind rastrillo's `main` and lacks |
diff --git a/docs/superpowers/specs/2026-08-30-docs-design.md b/docs/superpowers/specs/2026-08-30-docs-design.md| index e623c9c..34e3652 100644 |
| --- a/docs/superpowers/specs/2026-08-30-docs-design.md |
| +++ b/docs/superpowers/specs/2026-08-30-docs-design.md |
| @@ -633,17 +633,15 @@ consuming rastrillo's CSS and estilo does not do that. |
| | Markup | Spelling | Styled by | Status | |
| |---|---|---|---| |
| | Estilo's own components | Attribute grammar | Estilo | **Settled** | |
| -| Docs' own markup | — | Estilo | **PARKED** — see below | |
| +| Docs' own markup | Attribute grammar | Estilo | **Settled 2026-08-31** | |
| | rastrillo partials we consume | Whatever rastrillo emits — classes today | rastrillo | Not our call | |
| -**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. |
| +**Unparked by Paul, 2026-08-31**, once both of his conditions were met and |
| +independently verified: `<div rst-*>` is shipped (`v0.21.0` styles both |
| +spellings) and the design-system guidance exists. Docs writes the attribute |
| +grammar, adopting **per screen rather than per element** — mixed authoring |
| +inside one component matches neither spelling by design — and pinning |
| +`v0.21.0` or later, below which attributes render unstyled. |
| 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. |