ZEROlobby
22/22 strict⌘Kvisitor
skip to main
ADR-024
skin
——:——:——zcovenant · audit
agent context· chapter 30 · 3 files · 1 export · 1 gate

the brand is readable by every coding agent

three files at the root carry every brand answer an external coding agent needs. AGENTS.md is the protocol. DESIGN.md is the visual identity. brand/designtoken.md is the agent-readable token superset. underneath them sits the W3C DTCG v1.0 export · one JSON file consumed by Figma's Tokens Studio, Style Dictionary v4, and any DTCG-aware downstream tool.

01 · three filesAGENTS · DESIGN · designtoken

the three-file agent context stack

plate · A · surface diff2026 standard
metric
agent-context
unit
bytes
window
static
agg
identity
source
agents.md/design.md/designtoken.md
fresh
last build
filescopeloadcapstandard
AGENTS.mdproject conventions · do/don't rules · file structure · safety boundariesalways-on · root → leaves32 KiBOpenAI / Linux Foundation · 2025-12
DESIGN.mdvisual identity · the WHY behind every brand decision · YAML frontmatter + Markdown prosealways-on · session start24 KiBGoogle Labs · Apache 2.0 · 2026-04-21
brand/designtoken.mdfull token graph · agent-readable superset of tokens.jsonalways-on · session startopenagentskills.io · DTCG-superset
SKILL.mdper-task domain knowledge · gotchas-drivenon-demand · loaded by agent5 K tokens / eachagentskills.io · 2026
why three files, not one
a single AGENTS.md hits the 32 KiB ceiling fast. the 2026 split is principled: protocol (AGENTS) ·identity (DESIGN) · graph(designtoken). each file answers a different question and loads at a different moment. the gate enforces that all three stay in parity with packages/tokens/tokens.json.
02 · dtcg v1.0218 leaves · 59 colors

the W3C DTCG v1.0 export

plate · B · dtcg.json · per-category leavespeak 44.1 kB
metric
agent-context
unit
bytes
window
static
agg
identity
source
packages/tokens/dist/dtcg.json
fresh
last build
categoryleaves$type sample
color59color.ink.0 · color
space19space.0 · dimension
fontSize17fontSize.10 · dimension
fontWeight9fontWeight.thin · fontWeight
lineHeight9lineHeight.tight · number
letterSpacing6letterSpacing.tighter · string
motion20motion.instant · duration
radius10radius.0 · dimension
hair4hair.1 · dimension
shadow10shadow.0 · shadow
opacity13opacity.0 · number
z12z.below · number
breakpoint7breakpoint.xs · dimension
layout6layout.content-text-max · dimension
blur7blur.0 · dimension
gradient3gradient.amber-fade · gradient
type7type.mono · fontFamily
plate · C · brand color leaves with OKLCH metadataADR-013
metric
agent-context
unit
bytes
window
static
agg
identity
source
packages/tokens/dist/dtcg.json
fresh
last build
tokenhexoklch
color.amber.default#d6a64aoklch(75.2% 0.122 81.2)
color.amber.soft#c8a064oklch(72.9% 0.091 76.7)
color.amber.deep#a07a36oklch(60.3% 0.098 79.5)
color.amber.muted#8a6a30oklch(54.4% 0.086 80.1)
color.green.default#6dbf7eoklch(73.5% 0.124 149.3)
color.green.soft#8fcf9boklch(79.7% 0.098 149.6)
color.green.deep#4a8a59oklch(57.7% 0.100 149.9)
color.red.default#c25e54oklch(60.1% 0.130 27.4)
one source · three artefacts
tokens.json is the single source of truth. @zero/tokens's build emits four artefacts: tokens.css (runtime · already there), tokens.ts(typed runtime helpers), tokens.js (re-exports), and now dtcg.json (the W3C DTCG v1.0 export). parity is enforced by ci:design-md; if the YAML frontmatter of DESIGN.md drifts from tokens.json, the gate fails the merge.
03 · contract pinnedschema · version · substrate

the design.md frontmatter pin

fieldvaluesource
schemadesign.md.v1DESIGN.md frontmatter
version2026-05-10.4DESIGN.md frontmatter
adrADR-027DESIGN.md frontmatter
substratedark-onlyDESIGN.md frontmatter
brand coloramber #d6a64atokens.json + DESIGN.md (parity-enforced)
signature coloracid #e5fe40tokens.json + DESIGN.md (parity-enforced)
amber coverage ceiling≤ 7%brand-runtime · ci:amber
how a coding agent reads this repo
on session start, the agent loads AGENTS.md + DESIGN.md(≤ 56 KiB total) and gets the complete answer to every brand decision. it does not have to re-derive the rules from chapter prose; it does not have to grep tokens.jsonto find the amber hex; it does not have to load every chapter to discover the 17 nots. the cost is one read per session, not one read per file edited.
04 · protocols (declared)A2UI · AG-UI · MCP-Apps · RSC

rendering protocols · v2 surface

declared, not implemented
the four 2026 generative-UI protocols (A2UI · AG-UI · MCP Apps · Vercel RSC) are consumer-app concerns, not brand-system concerns. the brand system publishes the primitives (in @zero/ui · @zero/charts); the consumer (cockpit · league · the future getzero.dev) picks the protocol. a future ADR will land the rendering adapters when cockpit is the first consumer to need them.
protocolscopematuritybrand-system role
A2UI · Googledeclarative JSON for agent-emitted UI · flat adjacency list · LLM-friendlyv0.9 · Apache 2.0 · 2026-04-17publish primitive catalog (@zero/ui) the A2UI client renders into
AG-UI16 event types over SSE/WS · agent ↔ frontend state contractthird leg of MCP / A2A / AG-UIpublish chart streaming primitives (@zero/charts · StreamingCursor)
MCP Appsinteractive UI returned from MCP tools · ui:// URI schemelive 2026-01-26 · first MCP extensionpublish ApprovalGate · ConfidenceArc · ReasoningReveal · EvidenceTrail (already in @zero/ui)
Vercel AI RSCcreateStreamableUI · server → client React component streamingexperimental in AI SDK · UI for productionSSR primitives are RSC-clean today (chapter 28)
05 · agentic principlestransparency · confidence · delegation

the three agentic-UX principles already shipped

principlewhere it livesprimitive
transparency-controlshow the right information at the right time · article I.6 · the pulse cools brand colours when network breathing slowsPostureBeacon · EvidenceTrail
confidence signallinground to whole percentages · low → invisible · medium → faint line · high → labelled glyphConfidenceArc · the chart annotation layer (chapter 29)
progressive delegationauto-approve scales with trust · early sessions show full plan · established sessions skip preview for proven safe typesApprovalGate · SafetyShield · ReasoningReveal
trust is a mechanical result of predictable communication
the three principles are not opinions. they are CI-enforced behaviours of the primitives that ship in @zero/ui. when an external coding agent assembles a screen from those primitives, it inherits the discipline by construction. the brand system does the work once; every consumer gets it for free.