A team of one
Each agent in the harness has one job and a written standard. Any edit that moves a brand value stops until it is explained, and no bug is fixed until one agent reproduces it and another checks the fix.
Follow a bug
- Reproduction writerBug reproduced
The reproduction writer proves the bug before anyone fixes it.
- Check authorFailing test written
The check author writes the failing test first.
- Scope wardenSmallest fix
The fix goes in, and the scope warden asks whether it is the smallest one.
- VerifierFix verified
The verifier, a different agent from the one that reproduced the bug, checks that the fix fixes the defect.
- Release stewardProcedure followed
The release steward checks that the release procedure was followed before the fix ships.
Meet the 15 agents
Design
- System architect
- Is this token the right shape?
- Agent-experience designer
- Can a rule be read two ways?
- Adoption designer
- Is the route in easy for teams?
- Prior-art researcher
- What do standards say?
Quality
- Accessibility gatekeeper
- Does it meet WCAG 2.2 AA?
- Generation prober
- Does the spec build correctly?
- Spec auditor
- Does it match the spec?
- Verifier
- Does the fix fix the defect?
Delivery
- Check author
- Writes the failing test first
- Reproduction writer
- Proves a bug before anyone fixes it
- Scope warden
- Is this the smallest fix?
- Cross-repo porter
- Keeps both repos in step
Release
- Release steward
- Was the procedure followed?
- Consumer-impact assessor
- What changes for teams?
- Dependency steward
- Are dependencies safe?
Where designers work now
Without Figma handoff, designers build in the same session as an AI agent, against the pinned spec, so nobody has to memorise a rulebook. So far, 7 designers have contributed 47 catalogue entries.
Designer
Builds a screen
The agent generates it from the designer's description.
Agent
Spots a missing asset
No pictogram fits, so the agent offers to draft one in the session.
Agent
Applies the rules
It checks for duplicates, follows the style guide and opens a review.
Gate
Flags the draft
It lists the draft without failing the build, so nothing ships unseen.
Put guardrails where people work
Rules in the AI session beat a style guide nobody memorises.
The agent enforces the style guide, so designers judge meaning.
Continuity
- 2 months
of extended leave covered by a plan I designed, so the system ran without me
- 150+
entries in the dated decision log. A mistake gets corrected in a new entry, never erased.
Read a decision log entry
11 August 2026: a file the gate could not evaluate is not a pass
The defect, measured rather than argued. When the accessibility engine's run for a page threw an error, the rendered check caught it, recorded the page as skipped, put an empty list of violations in its place and carried on. The verdict then read "PASS, 0 violations" and the exit code was 0, even in the mode whose contract is to fail closed. A real browser showed it on a page with a nameless button and an image with no alt text. The same page produced two accessibility findings when the engine could run and none when it could not. Two real violations disappeared and the run reported success.
Three meanings of "not checked" now get three outcomes, kept apart on purpose:
- Unevaluable. The gate tried and could not. The run is incomplete and exits with code 2.
- Unsupported. The file is outside this checker's scope, such as a Markdown file caught by a broad pattern. It is listed separately and the exit code is unaffected. Treating it as unevaluable would fail a reasonable pattern, and noise is how a gate gets switched off.
- Skipped. Nobody asked for this layer to run. The verdict says incomplete but the exit code stays 0, because not asking for a check is not the same as failing to run one.
Exit code 2 outranks exit code 1 when a run has both violations and a file it could not evaluate.
Silent under-evaluation is still open. A broken or cross-origin iframe, or a strict script policy, can make the engine report zero violations with nothing recorded anywhere. The documentation for teams now says exit code 0 is nearly sufficient and names that gap, rather than claiming a guarantee the code does not make.
A decision I reversed
Decided, 6 to 9 Jul 2026
Write a skill file for each component, for agents to follow.
Reversed, 5 Aug 2026
Retired them. They had drifted from the canonical contract and told agents to emit a token the gate rejects.
This read comes from I replaced my own component library with a spec AI builds from, the full case study.
Next: I replaced my own component library with a spec AI builds from