oficina / home Public

Ruling 20: the app writes attributes

Paul ruled the spelling rather than letting this file carry a rule
whose every reason had died. Spec ruling 20 switches the app to the
attribute spelling, and §11 changes with it, so this file follows.

The graveyard stays. Both dead reasons looked sound when written and
both will be proposed again, so recording them is worth more than the
lines cost.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev 06d635afc5ff9372793051136bdd4dc1e502500a parent 04df769
1 file changed, +8 −8
  • AGENTS.md +8 −8

CI passed — run details

diff --git a/AGENTS.md b/AGENTS.md
index 4ca8862..d17dde8 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -185,9 +185,14 @@ quietly ignored).
cannot grep.
**Frontend**
-- Write `class="rst-*"`, **because spec §11 rules it — and for no other
- reason, because this file has now given two and buried both.** Record the
- graveyard, so nobody revives either:
+- **Write the attribute spelling: `rst-btn`, not `class="rst-btn"`** —
+ spec ruling 20, 2026-09-05. §11 ruled the class vocabulary on 2026-08-30
+ and every reason it gave has since died, so it went back to Paul rather
+ than being propped up with a third. rastrillo's design system rules "One
+ spelling, not two. No permanent class fallback" and drops the class
+ selectors before 1.0; this app has no `rst-` markup yet, so it starts on
+ the spelling that survives — free today, a sweep after the first
+ template. Record the graveyard, so neither dead reason is revived:
- *"The attribute grammar is ruled but not released."* Dead since
**v0.21.0**, this repo's *first* pin. tokens.css there pairs every
class with an attribute twin and says so in its own header: "TWO
@@ -208,11 +213,6 @@ quietly ignored).
"the class spelling is what every app and every shipped partial writes
today" — **that sentence is stale upstream**, and this file quoted it
as evidence until it was checked.
- So the rule now rests on §11 alone, and §11's own reason is due a
- re-ruling: rastrillo §6-v3 rules "one spelling, not two" and drops the
- class selectors before 1.0, this app has no `rst-` markup yet, and an app
- writing classes beside v0.22.0's partials *is* the mixed codebase §11
- wanted to avoid. Flagged for Paul; until he rules, §11 stands.
**Re-check on every pin move, name the version you checked, and count
both `ui/tokens.css` and `ui/partials/`** — checking one and not the
other is how the second reason survived a pass that was looking for