Commands
Every command, flag, script, and exit code.
Commands are invoked as /bureau <command> when the host exposes slash commands, or through natural language. The SKILL.md router also accepts unlabelled requests.
Table
| Command | Intent | Reads | Produces |
|---|---|---|---|
/bureau |
router | project | two highest-value next actions with evidence |
/bureau auto |
full pipeline | brief, repo | artifacts + evidence, 3 checkpoints |
/bureau init |
brief and config | request, repo, assets | BUREAU.md, .bureau/config.json |
/bureau concept |
three directions | brief, references | .bureau/comps/ + decision |
/bureau direction |
visual world | decision | DESIGN.md, tokens, specimen |
/bureau build |
implementation | DESIGN.md |
real page |
/bureau motion |
movement | MOTION.md |
entrance, scroll, interaction |
/bureau figma |
Figma → code | variables, frames | tokens, comparison |
/bureau qa |
technical evidence | URL/build | screenshots, report.json |
/bureau review |
circuit | scores, evidence | scorecard, verdict |
/bureau slop |
detector + fixes | source | audit.json, fixes |
/bureau ship |
launch | checklist | metadata, monitoring, deploy |
/bureau doctor |
environment | host, deps | capability report |
/bureau
With no argument, inspect the project:
- no
BUREAU.md→ proposeinit; - no comps → propose
concept; - URL without QA → propose
qa; - stale QA → propose
review; - everything ready → propose
ship.
Lead with two highest-value actions and one line of evidence each. Never auto-run a destructive step.
/bureau auto
Run the full pipeline with three human checkpoints:
- Direction choice — three comps + a recommendation.
- Art direction lock — world sheet, type specimen, color sheet.
- Ship — scorecard + launch checklist.
Between checkpoints, act: write artifacts, run scripts, fix P0/P1, re-run evidence. Do not ask permission for reversible decisions. Stop only when the checkpoint needs taste, truth, or an irreversible commitment.
If the user cannot attend, choose the most defensible option, record the assumption, and continue. The Tribunal still applies.
/bureau init
- Ask at most three blocking questions per round.
- Default everything else.
- Write
BUREAU.mdand.bureau/config.json. - Declare the mode per surface.
- Build the evidence inventory.
Definition of ready: offer, audience, sourced proof, non-goals, metric.
/bureau concept
- Generate three directions with different lenses.
- Create three comps at the same viewport with real content.
- Score with the 6-criteria matrix.
- Choose and record the decision + rejected directions.
- Write the chosen blend in
.bureau/comps/blend.md: three lineages, three axes, one tension.
Never deliver three variations of the same idea.
/bureau direction
- World sheet: ground, voice, light, material, motion, image, prohibitions.
- OKLCH + hex tokens, scale, spacing, radii.
- Type specimen + color-in-context sheet.
- First viewport as a thesis.
- Validate contrast.
node skill/scripts/tokens.mjs --in design/tokens.json --out-dir src/styles --check
/bureau build
- Semantic HTML.
- Layered CSS.
- Minimal JS.
- Complete states.
- Real content.
- i18n.
No build starts without DESIGN.md and a chosen comp.
/bureau motion
- Write
MOTION.md. - Choose one character.
- Implement one entrance, one narrative, one signature.
- Design reduced motion.
- Measure 60 fps.
node skill/scripts/visual-audit.mjs http://localhost:3000 --out .bureau/qa --motion
/bureau figma
- Discover available MCP tools.
- Read variables and a frame screenshot.
- Sync tokens.
- Compare code vs Figma at the same viewport.
- Record intentional deviations.
node skill/scripts/figma-sync.mjs --in design/figma-variables.json --out design/tokens.json
node skill/scripts/tokens.mjs --in design/tokens.json --out-dir src/styles --check
Without MCP: export JSON + PNG and record the limitation.
/bureau qa
node skill/scripts/visual-audit.mjs http://localhost:3000 \
--out .bureau/qa \
--viewports 390x844,768x1024,1440x900,1920x1080 \
--full --motion
| Flag | Effect |
|---|---|
--full / --no-full |
full-page screenshot |
--motion / --no-motion |
reduced-motion pass |
--scroll-shots |
frames at 25/50/75% |
--dark |
dark color scheme |
--locale |
browser locale |
--baseline |
hash comparison against a baseline |
--update-baseline |
write baseline |
--fail-on p0 |
exit 1 on P0 |
The report covers overflow, contrast, touch targets, images, fonts, videos, console, requests, LCP, CLS, long tasks, and reduced motion.
/bureau review
node skill/scripts/review.mjs --status
node skill/scripts/review.mjs --gate g1-concept --scores .bureau/review/g1.json
node skill/scripts/survey.mjs --init --need landing --probe
node skill/scripts/survey.mjs --check
node skill/scripts/review.mjs --delivery-init
node skill/scripts/review.mjs --jury-init
node skill/scripts/review.mjs --jury-start
node skill/scripts/review.mjs --jury-round
node skill/scripts/review.mjs --regate
node skill/scripts/review.mjs --jury-status
node skill/scripts/review.mjs --final --tribunal .bureau/review/tribunal.json
node skill/scripts/review.mjs --report
- Enforces order.
- Enforces evidence.
- Refuses score < 3.5 and P0.
- Marks stale gates by hash.
- Gate 1 requires the survey of five verified sources, in queue order.
- The jury has a 10-minute time box; the best round recorded inside it stands.
- Writes
.bureau/review/scorecard.html.
/bureau slop
node skill/scripts/audit.mjs .
node skill/scripts/audit.mjs . --json --out .bureau/evidence/audit.json
node skill/scripts/audit.mjs . --fail-on p0
node skill/scripts/audit.mjs --list-rules
Detects the mechanical subset: purple gradient, gradient text, pure ground, default AI fonts, generic lexicon, placeholders, autoplay, accessibility overflow, transition: all, scroll hijack, div onclick, and more.
It does not detect talent. Read findings in context.
/bureau ship
Checklist:
- sourced claims;
- 1200×630 OG;
- sitemap/robots;
- 404/500;
- analytics + consent;
- monitoring;
- rollback;
- redirects;
- security headers.
/bureau doctor
node skill/scripts/doctor.mjs
node skill/scripts/doctor.mjs --json
Checks Node, Playwright, Chromium, ffmpeg, ImageMagick, git, gh, Figma, project artifacts, and per-host installs.
Scaffold
node skill/scripts/new-project.mjs --list
node skill/scripts/new-project.mjs my-site --template product-surface
Creates the project + BUREAU.md, DESIGN.md, MOTION.md, config, evidence folders, the template's LINEAGE.md, and a README. The page starts as a copy of the template; measure how far it has moved:
node skill/scripts/divergence.mjs index.html --templates --out .bureau/evidence/divergence.json
Exit 0 when every pair is at or below --max (default 0.35), 1 when a pair is too similar, 2 on a usage error.
Tokens
node skill/scripts/tokens.mjs \
--in design/tokens.json \
--out-dir src/styles \
--mode light \
--check
Accepts W3C DTCG, Tokens Studio, and flat JSON. Generates:
tokens.css(hex + OKLCH override);tokens.tailwind.css(@theme);tokens.normalized.json;contrast.md.
--check fails on contrast < 4.5:1 and unresolved aliases.
Figma sync
node skill/scripts/figma-sync.mjs --in design/figma-variables.json --out design/tokens.json
Accepts:
- Tokens Studio (
global/light/dark); - W3C DTCG;
- Figma Variables export (
variables[]withvaluesByMode).
Resolves aliases and reports unresolved ones.
Exit codes
| Code | Meaning |
|---|---|
| 0 | success |
| 1 | quality failure (threshold, gate, contrast) |
| 2 | usage/invalid input |
| 3 | precondition (gate order, missing Tribunal) |
| 4 | missing evidence |
Flow examples
# new project
node skill/scripts/new-project.mjs studio --template kinetic-editorial
cd studio
node ../skill/scripts/audit.mjs . --out .bureau/evidence/audit.json
# QA
node ../skill/scripts/visual-audit.mjs http://localhost:4173 --out .bureau/qa --full --motion
# review
node ../skill/scripts/review.mjs --status
node ../skill/scripts/review.mjs --gate g0-intake --scores .bureau/review/g0.json
Repeat until the Tribunal. Do not skip the order.