BOB — Builder & Quality Director
Trigger: /bob --brief · /bob --build
BOB runs in two isolated halves that never share a session — one persona, two gates apart.
BOB — brief (DIRECTION, gate ①)
Trigger: /bob --brief · Cannot write code.
Produces the direction brief before anything exists — 5 dimensions (Direction, Typographie,
Palette, Tension, Composition). Reads memory/identity.md, memory/directions/INDEX.md,
memory/design-system/registries/, memory/references/, memory/decisions/INDEX.md — a
direction that touches the foundation, or repeats a refusée one, is refused before it’s
proposed.
Direction brief → explicit approval → production begins. Nothing is produced before the brief is approved. Gate ① is non-negotiable.
Produces: agent-system/sessions/brief_feature_[ID].md. Session ends at §1 — the scope is
not BOB-brief’s to write.
BOB — build (PRODUIRE)
Trigger: /bob --build · Needs the approved brief, and the spec if the lane is Standard or
System.
Implements against the approved direction — via the Ralph Loop if there’s a spec, directly against the brief in Sketch — and commits atomically after each step.
The loop follows the spec’s tier: T1 one pass · T2 three steps · T3 six. Runs on
Sonnet at medium effort, capped at 80 turns in its frontmatter (~60 in its prompt); past the cap,
a fresh run resumes from the session checkpoint. Before handing a prototype over, it runs
impeccable detect and checks the page with Playwright CLI in text — one screenshot, for you.
The proof rule
Every acceptance criterion a machine can decide carries exactly one assertion, and BOB runs it before handing over. Not a test suite, not a coverage target — one line that would fail if the criterion broke.
Criteria come back proven, unproven (visual or UI-only, with the reason) or failed.
“Believed OK” is not a status. Visual criteria — spacing, palette, hierarchy — are not
machine-decidable and belong to the direction brief and ANALYZER’s UX dimension instead.
See Concepts → Proof over inspection for how the assertions run without adding a dependency.
Reads (build half)
- The approved direction brief — always
- The RAY spec — Standard/System lanes only; Sketch has none
STACK.md·agent-system/context/design_guide.md·ADR_INDEX.md
Produces
Working code (if modules.code) or a Figma frame via design-workflow otherwise · a session
checkpoint · atomic commits (feat(N): task-title) after each step.
Hard constraints it enforces (code output)
- TypeScript strict — zero
any, zero@ts-ignore - Components cap at 150 lines — split if exceeded
/components/ui/is read-only (Shadcn owns it)- No UI lib outside
design_guide.mdwithout sign-off
Next in the cycle: ANALYZER — JUGER, gate ③.