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>
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 |