- 1 x Water pump, metal impeller Hollen, HP-2241€148.60ERP, 2 min agoFit 90From Utrecht branch, arrives 10:45Fit 90 of 100, above the cooling threshold of 85. The agent orders it, with undo.
- 1 x Timing belt kit Original part, OE 04L 198 119 A€176.90ERP, 2 min agoFit 100From Utrecht branch, arrives 10:45Exact match, 100 of 100. The agent orders it, with undo.
07 System
One source of truth for every channel.
Every channel runs on 1 design system, agent-first where it helps. AI tools and agents read it as files, and every build runs the checks.
How it connects
1 doc goes in, and the same order comes out in every channel. The buyer’s and the merchant’s agents and AI tools read the same system.
- Requirements docThe 1 source of truth
- HypothesisA bet a test can prove wrong
- TestA replay, shadow mode or A/B
- 1Tokens47 primitives, 58 semantic, 38 roles
- 2ComponentsIn code, described by the skills
- 3Skills5 files, 1 per channel, and rules.md
AI tools read it as files
- Webshop
- Voice
- AgentsBuyer’s, merchant’s
- New channel1 skill, 1 renderer
- Every build runs ds:check on the tokens and ds:check-card on the Teams card. Then the design team reviews, and I sign off.
- Any buyer’s agent gets the same rules, plus a check on who it is. If a buyer brings an agent from another provider, it first proves who it is and that the buyer’s company allows it. The check is built after the pilot.
- It grows by data. A merchant is 1 colour and its console settings. A channel is 1 skill and 1 renderer. So the 50th merchant needs no new design work.
Not yet, on purpose: a model drawing a buyer’s screen live. A reviewed renderer builds every card. The card check reads Teams cards only, for now.
- The requirements doc says what the order must do, and for whom.
- Each need becomes a hypothesis that a test can prove wrong.
- Only what passes a test goes into the system.
- AI tools build every channel from the skills. Agents read the same schema.
- A new channel is 1 skill and 1 renderer, drafted from 1 prompt.
- What ships is measured, and the results go back into the doc.
Evidence first
A test decides what goes live. Every change starts as a line in 1 requirements doc.
Source of truth
1 doc says what a feature must do, and how we will know it works.
- The researcherHypothesisEvery hypothesis is a bet a test can prove wrong.In this case: At a fit score of 85 out of 100, the agent picks the rep’s part.
- Researcher and engineerTestThe agent’s rules go through a replay, then shadow mode. A/B where traffic allows.In this case: A year of past orders, replayed from week 1. 5 sales reps test the case card in weeks 2 to 4.
- The designers, with AI toolsDesignDesigners build from the same tokens and skills. Every fit score shows its reason.
- Engineer and QAShip1 release goes out to every channel. The build runs the checks, then QA and I sign off.
Agent gateA category acts alone only at 90% agreement with the reps in its replay. It must hold in shadow mode, then a person switches it on.
One change, everywhere
Design, engineering and AI read 1 set of token files. 3 layers, primitive to semantic to role, plus 1 merchant file.
Follow 1 token
- Primitive
color.brand.500={color.brand.base}, the merchant’s override#1f4fbfDelta PartsThis raw value is each merchant’s 1 colour. - Semantic
surface.brand={color.brand.500}Semantic gives it a meaning, the brand’s surface. - Role
action.primary-bg={surface.brand}The role says where it acts, the main button’s fill. - On screenThe approver taps it for the Golf in bay 2, at step B5.
Every agent state is a token, so every channel says the same thing. Act, ask, explain, fall back, hand over and be undone, in 5 state colours. The brand only marks actions.
Assumption: buyers read the 7 state pills at a glance. In the workshop visits, weeks 1 to 4, buyers say what each means. Under 8 of 10 right, the words change.
The playground
1 order renders in 5 channels, in any brand. Every render comes from the same tokens and skills.
color.brand.base #1f4fbf
Inside a skill
A skill is 1 short file an AI tool follows to build 1 thing. Every channel skill has the same 5 parts, in the same order.
The skill file
# Skill: WhatsApp card
- Use when: the agent talks to a buyer or an approver in WhatsApp.Who reads it, and where.
- Limits, set by WhatsApp itself: max 3 reply buttons per message, a list of up to 10 rows, templates outside the 24 hour window.The channel’s own limits.
- Must show:1. Sender line: the merchant's name and "AI ordering agent".2. 1 short message, the point first.3. At most 4 facts: part, price, arrival, stamp. Each number with its source and age.4. Max 3 buttons. The primary first. A way to a person is always 1 of them, or in the text.5. On a safety part: no order button. Only "Talk to a sales rep".6. Approval card: the exact amount and why it needs approval. "Approval is for this amount. If the price moves, I'll ask again."The same facts, in the same order.
- Tokens: `chat.*`, `action.*`, `agent.*`.Role tokens, so any brand flows in.
- Checked: against `rules.md`, then a person reviews it. A Teams card as JSON also runs `pnpm ds:check-card`, the only shape the script reads today: a source and age on every number, at most 3 actions, no action on a safety part.Checked by a script, then by a designer.
The card the skill asks for, drawn by the case’s renderer
WhatsAppTo the workshop lead
Delta Parts, AI ordering agent
Agent actedYour receipt.
Contract prices, ERP, 2 min ago
3 of 3 rules hold. A stamp on every number, 3 buttons at most, no action on a safety part.
Then a designer reviews the wording and the order, and I sign off.
The same file holds every card to the same facts, and 3 checks hold it to the rules that cost money or safety. So a mistake by an AI tool is caught before it ships.
Why it holds
The script reads Teams cards today. 2 for the same order, the same script on both.
examples/teams-card.ok.jsonPasses 3 of 3examples/teams-card.bad.jsonFails 3 of 3The script checks 3 rules on every Teams card. A person judges the rest. In production, a card that fails goes to a sales rep.
Use it live
Paste this prompt into Cursor, and it builds a new channel. It reads the same files, and the channel appears below.
It runs in Cursor’s chat in Agent mode, with the case’s repo open.
The new channel appears here.
Dry run, 25 Oct: Teams card at 2 sizes, 3 of 3 rules, type check passed.
Vision, team and impact