oficina / docs Public

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
Paul Campbell pushed by paul@keymail.dev 74b4e64698dba7876c758914d9417490ff3e413c parent 67c510d
2 files changed, +24 −17
  • AGENTS.md +17 −8
  • docs/superpowers/specs/2026-08-30-docs-design.md +7 −9

CI passed — run details

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.