Spec: primitives go to a CARLOS suite variant, not to ui
Paul ruled it, correcting advice this spec had taken. An inspector panel shared by a document editor and a spreadsheet is the suite's component; the design system stays rastrillo's. Recording why the earlier reasoning was wrong, because it was subtly wrong rather than simply wrong: two callers at design time is the right bar for extraction, and we applied it correctly -- but it says nothing about where to, and the earlier answer treated the first question as settling the second. The colour engine is unaffected and stays a ui dependency: it is a function rather than a component. Also records cmd/dsgen, public as of today, which generates a gallery from any module's own vocabulary -- so neither suite app should design a documentation tool before looking at it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011F5CivVm4CmL9ByfSSAaXA
1 file changed,
+28
−5
docs/superpowers/specs/2026-08-30-docs-design.md+28 −5
No CI script — run details
Intent
diff --git a/docs/superpowers/specs/2026-08-30-docs-design.md b/docs/superpowers/specs/2026-08-30-docs-design.md| index 370a3fc..80c99ff 100644 |
| --- a/docs/superpowers/specs/2026-08-30-docs-design.md |
| +++ b/docs/superpowers/specs/2026-08-30-docs-design.md |
| @@ -610,13 +610,36 @@ WCAG 2.2 AA, no exemptions: 24×24 targets, 320px reflow, and colour never |
| carries meaning alone — which binds the presence stack directly. Every |
| user-visible string is a catalog key; twelve base locales. |
| -### 10.4 Primitives owed upstream |
| +### 10.4 Primitives, and where they go |
| Docs owns **inspector panel**, **presence stack** and **comment thread**; |
| -Sheets owns toolbar groups. Each in the attribute grammar, every string a |
| -prose key with the eleven non-English locales machine-drafted, each carrying |
| -a sentence saying what it is *not*, and each stating which parts are |
| -script-required (§6.2). |
| +Sheets owns toolbar groups. Each carries a sentence saying what it is *not*, |
| +every string is a prose key with the eleven non-English locales |
| +machine-drafted, and each states which parts are script-required (§6.2). |
| + |
| +**They go to a CARLOS suite variant, not to rastrillo's `ui`** — ruled by |
| +Paul, 2026-08-30, correcting earlier advice this spec had taken. An |
| +inspector panel shared by a document editor and a spreadsheet is the |
| +*suite's* component; the design system stays rastrillo's. |
| + |
| +The correction is worth keeping because the reasoning was subtly wrong |
| +rather than simply wrong. Two callers at design time is the right bar for |
| +**extraction**, and Sheets and Docs applied it correctly. But it says |
| +nothing about **where to**, and the earlier answer treated the first |
| +question as settling the second. |
| + |
| +A variant depends on `ui`, keeps its bones — tokens, partial vocabulary, |
| +accessibility floors — and adds or replaces on top with its own components, |
| +themes and gallery. Not a fork, and more than a theme: a theme changes |
| +colour, type and shape, where a variant can add a component a theme cannot. |
| + |
| +`cmd/dsgen` went public on 2026-08-30 and generates a gallery for any |
| +module's own vocabulary. It is what a variant's gallery needs, so neither |
| +suite app should design a documentation tool before looking at it. |
| + |
| +**Unchanged: the colour engine stays a `ui` dependency** (§10.2). It is a |
| +function rather than a component, and Docs remains a declared consumer of it |
| +upstream. |
| --- |