Two-register split for HTML deliverables — board vs console
TFD-018 — Two-register split for HTML deliverables
Decision
Talent Factory HTML deliverables ship in one of two named registers, codified at the design-system level and selected per artefact:
| Register | Class on <body> |
Aesthetic | When to use |
|---|---|---|---|
register-board |
register-board |
Fraunces serif on warm cream #F7F4EC, oversized italic numerals, § NN section markers, real inline SVG diagrams, print-ready |
Deposited dossiers for CE/CA/VP — A100/A270/A290, decision memos, sommaires de mandat. Anything that gets printed, signed, or tabled at a board meeting. |
register-console |
register-console |
Segoe UI sans on cool #F9FAFB, stat-cards, fast-scan tables, sidebar nav |
Operational consoles, recurring vigies, dashboards with drill-down. Anything consumed live on screen, not deposited. |
Both registers share the STM brand palette (navy #002B5C, green #009A44, yellow #FFE400, blue #009EE0, teal #007489). The split is typography + layout + content density, not color.
Default
When in doubt for a DAE deposit, choose register-board. Boards remember the document on paper, not the dashboard on screen.
Why
Three independent observations converged:
Uma's audit of POC v1 vs v2 (
REQ-CONS-008/output/uma-audit.md) tested both styles on the same Transesco content. v2 editorial wins for board/exec register (43/50 vs 37/50); v1 console wins for ops dashboard register (38/50 vs 22/50). Forcing one style sacrifices half the use case.The dashboard canon (
OneDrive-STM/agent-ea/DAE-0007.../sommaire-executif-transgesco.html) is genuinely better for live consoles than v2 editorial — sidebar nav + CMMI bars + priority items + filters. Killing it to force editorial uniformity would regress operational deliverables.Print-fitness diverges from interactivity. Editorial register is built for paper (break-inside, color-adjust:exact, no JS-driven interactions). Console register is built for screen (sidebar filters, drill-down, live filters). One stylesheet cannot serve both well.
Implementation
Already shipped as of 2026-05-14:
- Canonical templates at
production-lines/digital-talent/talents/agent-ea-v2/.claude/commands/templates/:template-dae-index.html,template-page1-solution.html,template-page2-feuille-de-route.html,template-page3-analyse-couts.html→ register-board (4 files)template-dae-index-LITE.html,template-page1-solution-LITE.html,template-page2-feuille-de-route-LITE.html,template-page3-analyse-couts-LITE.html→ register-console (4 files)
- SVG component library at
templates/svg-components/— 8 reusable partials with<!-- DATA CONTRACT -->headers - README at
templates/README.mddocuments the register choice rule - Catalog browser is register-neutral; works with both
Register selection rule
The talent that emits the deliverable picks the register at generation time:
| Deliverable type | Default register | Override |
|---|---|---|
| HLSD (A100/A270/A290) for client deposit | register-board |
— |
| Decision memos, sommaire de mandat | register-board |
— |
| Recurring vigie (weekly/monthly) | register-console |
— |
| Ops dashboard, live status | register-console |
— |
| Internal R&D evaluations, JCT-internal | register-console |
— |
| Intranet pages (factory) | register-console |
— |
Override via /ea-livrable-assembler --register {board|console} (assembler skill v3.1+).
Consequences
- Edward (agent-ea v2) must know the register before generating. Default =
register-board. Override via skill arg orCLAUDE-{slug}.mdfrontmatterregister:field. - Wesley maintains both template families. Changes to one register should be evaluated for symmetric impact on the other.
- Uma owns the design system at
quality-assurance/ux-designer-uma/design-systems/. Required entries (per audit §7):deliverable-registers.md— this decision + the per-register skeletonssvg-component-catalog.md— the 8 partials' visual canontypography-and-tokens.md— the two type stacksaccessibility-baseline.md— WCAG AA checklist gating every depositprint-stylesheet.md— canonical@media printblock
- Quinn plumbs regression tests per register (pixel-diff at 1180/900/600px, axe-core contrast, SVG validity, print render).
- Future talents (Maya, etc.) producing HTML deliverables MUST pick a register at start. No third register without a follow-up TFD.
Out of scope
- A third register (e.g.,
register-mobile) — open a new TFD if needed. - Changing the STM brand palette — separate decision domain.
- Talent-specific template families (e.g., a Maya-only template stack) — talents share these two registers unless they justify divergence in their own role.md.
References
- REQ-CONS-008 — the request that surfaced the split (agent-ea v2 self-publishing)
uma-audit.md(REQ-CONS-008/output/) — empirical evidence- TFD-017 — JCT portail architecture (the deployment substrate)
project_docs-design-system(memory) — prior palette decision (Anthropic warm cream + Trustworthy Blue) now scoped to internal factory docs only