Skip to content
UI Craft/ docs

/sddesign pipeline

The full spec-driven design pipeline — brief → tokens → shape → craft → converge → ship in one guided run. Writes .ui-craft/spec.md.

Updated 2026-06-25

/sddesign runs the whole spec-driven pipeline for a net-new surface in one guided pass. It doesn’t re-implement anything — it sequences the existing phase commands, detects which artifacts already exist, and reports honestly about anything skipped.

/sddesign dashboard

Run it when you’re starting a surface from scratch and want the full spine — durable brief, token system, a written spec, a built surface, a convergence loop, and a ship gate — instead of one-shotting.

The six gates

[ ] brief   [ ] tokens   [ ] shape (spec)   [ ] craft (build)   [ ] converge   [ ] ship

The pipeline prints this checklist and updates it as each gate resolves: [✓] done or skipped-with-artifact, [>] current, [–] skipped-without-artifact (degraded).

Gate What runs Artifact
1 · Brief /brief if .ui-craft/brief.md is missing .ui-craft/brief.md
2 · Tokens /tokens if no token spine is detected token system
3 · Shape (spec) /shape — content inventory, ASCII layout, state list, open questions. Persists the spec by default inside the pipeline .ui-craft/spec.md
4 · Craft (build) /craft <surface> — builds against the spec; every acceptance-bar item must be green before “done” the surface
5 · Converge the visual-anti-slop loop — evaluate → fix one → re-evaluate until zero criticals or budget (default 3) is exhausted
6 · Ship /finalize — the 10-pass finish bar + brief/token gate → READY / NOT READY / BLOCKED verdict

Orchestrate-only

/sddesign contributes only gate detection, offer prompts, progress reporting, and degraded-mode honesty. Every composition rule, wireframe algorithm, craft rule, and convergence engine lives in the phase commands it calls. If you decline a gate, it marks it [–] and states the downstream cost (e.g. “no token spine → craft will establish a minimal inline set; it won’t match an existing system”).

Precedence

The brief’s learned constraints and the a11y/correctness floor take precedence over any spec.md composition choice, at every gate. If a constraint conflicts with a spec decision, the constraint wins and the spec section is updated to match.

The spec artifact

Shape’s Step 6 writes .ui-craft/spec.md — per-surface composition choice, layout skeleton, component inventory, state lattice, and acceptance bar. /craft reads it before building, so the chosen composition and acceptance bar take precedence over recipe defaults. The spec persists across sessions, so a later /craft or /finalize re-anchors to the same contract.

When to use which

  • /sddesign — net-new surface, want the full spine and a written spec.
  • /craft <surface> — known composition, no pipeline needed, one-shot build.
  • /shape — just the wireframe + state lattice before any JSX.

Spotted something out of date? Open an issue on GitHub →