🎴 design-playbook

August 28, 2026 Β· View on GitHub

design-playbook β€” evidence-backed UI delivery for coding agents

🎴 design-playbook

Agents ship UI nobody can verify. This plugin makes them prove it.

Version License Plugin Skills Commands Codex


⚑ One command, three artifacts

/design-playbook:design-io <your UI ask>

One pass β€” MCP tools bundled, zero extra config β€” lands three artifacts under .scratch/<run>/:

  1. spec.md β€” the six-layer declaration of what good is (intent β†’ acceptance), written before any UI
  2. Decision report β€” shell + component semantics, written before any code
  3. Point-back ledger β€” every acceptance finding states which declaration it violates, plus the closure trail

🎬 Try it

Claude Code

/plugin marketplace add https://github.com/Bandersnatch0x/design-playbook.git
/plugin install design-playbook@design-playbook

Codex

codex plugin marketplace add Bandersnatch0x/design-playbook
codex plugin add design-playbook@design-playbook

Then, namespaced (bare /design-io is a --plugin-dir dev alias only):

/design-playbook:design-io <your UI ask>

On Cursor, Windsurf, Gemini CLI, or any of 29 supported agents: see 🌐 Install on other agents.

Codex install notes, the [mcp_servers.*] fallback when a marketplace is unavailable, and preview prerequisites: packages/design-playbook/codex/AGENTS.md.

Local dev / self-test

The marketplace catalog lives at the repo root (not the package):

claude --plugin-dir <abs>/packages/design-playbook          # dev load, no install
/plugin marketplace add <abs-to-repo-root>                 # local marketplace
/plugin install design-playbook@design-playbook

codex plugin marketplace add <abs-to-repo-root>
codex plugin add design-playbook@design-playbook

πŸ“Έ Evidence, not promises

The agent never quietly grades its own homework:

  • Point-back β€” every acceptance finding names the spec, domain, or craft declaration that owns it. No free-floating "looks good".
  • Recirculate β€” blocking findings flow back to the owning stage until they close; the closure trail is part of the run artifacts.
  • No silent skip β€” skip the audit and the result still carries the point-back skeleton, but marked audited: false, which strict validation refuses as a final result.

A full pass against SwarSight β€” a real third-party workbench, one ask, every key artifact kept:

1 Β· ux-spec β€” six-layer spec before any UI2 Β· ui-picker β€” decision report before code
Six-layer specDecision report
3 Β· ui-evaluator β€” point-back + recirculate closureResult β€” all six gates green
Point-back findingsAll six gates green

Live human-confirm gate (preview*) β€” the generated prototype renders inside a review workbench: the spec's acceptance criteria sit in a checklist beside it (your ticks are recorded with the decision), and you can click elements, drag highlight boxes, sketch, or measure spacing to anchor feedback β€” then sign off or send it back for another round:

Preview confirm workbench β€” annotate, then confirm or revise

Full artifacts β€” spec, decision report, point-back critique, preview human-confirm demo, the live self-test surface: showcase/.

πŸ” The one-pass pipeline

Declare what good is before the code exists, generate against that declaration, then accept the result against the same declaration. Every run executes the same predictable Design I/O pass:

design-baseline? β†’ reference-intake? β†’ ux-spec? β†’ plan? β†’ (native-craft?)
  β†’ ui-picker β†’ (preview*) β†’ fill β†’ craft-guard† β†’ (observe*†) β†’ ui-evaluator†
                              β–²                                       β”‚
                              └────────────── recirculate β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Six declarations own what good is (spec Β· domain Β· craft Β· design Β· components Β· template); two contracts govern how work enters the pipeline (skill for timing, evaluator for acceptance + recirculate).

Marker legend (? / * / †)
MarkerMeaning
?Conditional entry β€” design-baseline? for UI work in an existing product; reference-intake? when the ask carries a screenshot / URL / analogy
*Adapter stage β€” runs only when its bundled MCP tool is registered; otherwise skipped, never a hard error
†user-selectable audit stage (decision record ADR-0033) β€” asked once on first run, remembered in .design-playbook/preferences.yaml (version-controlled; per-machine overrides in gitignored preferences.local.yaml)

🧩 Skills & commands

Eight model-invoked skills (/design-playbook:<name>):

SkillRole
design-playbook🎯 Orchestrator (full pipeline, run-profile tiering P1/P2/P3)
design-baseline🧭 Discover, validate, or draft project DESIGN.md before existing-product UI work
reference-intakeπŸ“Ž Reference contract (screenshot/URL/analogy β†’ Keep/Change/Do not copy)
ux-specπŸ“‹ Six-layer spec declaration via the S0-S6 shaping session (question/assumption/confirmation batches + session artifacts)
ui-picker🧱 Shell + component semantics + design-decision entries (record / compare / explore tiers)
craft-guardπŸ›‘οΈ Detail-craft check β€” spacing, hierarchy, motion (anti-AI-slop) against the built-in rule registry
native-craftπŸ–₯️ Native-feel desktop declaration
ui-evaluatorβœ… Acceptance β€” every finding points back to its declaration; blocking ones recirculate

Commands: design-io (full pipeline) Β· ux-spec (spec only) Β· ui-review (accept only) Β· run-review (cross-run) Β· run-status (phase + resume narration) Β· doctor (install health)

🎚️ Run profiles (P1/P2/P3)

Every run declares a tier in the plan.md run-profile block β€” process weight stays proportional to change consequence. Upgrades are automatic the moment a correction signal appears; downgrades need the user.

Tier matrix
TierScopeGate face
P1 point-fixSingle-owning-layer point-back repair, no decided-field touchRegistry subset evaluation; R4/R5 (+R2 line) routes
P2 standardIn-baseline feature change (new criteria, R/C decisions)Full predicate evaluation; shaping session + G9/G10
P3 fullDecided-field revision (supersedes), structural re-composition, E-tier decisionsG1-G12 full spectrum + sampling matrix fully executed

Full matrix and re-entry semantics: docs/specs/ui-ux-vnext/loop-prototype.md.

πŸ”Œ Adapters (bundled)

Preview and Evidence MCP runtimes ship inside the main plugin (packages/design-playbook/mcp/ + .mcp.json with ${CLAUDE_PLUGIN_ROOT}). Marketplace install registers both tools with no second package; the orchestrator still probes and skips steps when a host has no MCP tools.

AdapterMCP toolEnablesNotes
design-playbook-previewpreview_prototypepreview* human confirm gate (G5)Bundled; needs system Edge/Chrome for the popup (falls back to default browser)
design-playbook-evidenceexecute_capture_planobserve* runtime evidence (G6) β€” needs Playwright + ChromiumBundled; capture still optional at runtime

Docs: preview Β· evidence

🌐 Install on other agents

npx design-playbook init <agent>
# or: python packages/design-playbook/scripts/generate_adapter.py <agent>
TierAgentsWhat you get
Tier 1 (native)Claude Code, CodexFull fidelity β€” skills, commands, MCP, drift-gated snapshots
Tier 2 (generated)Cursor, Gemini CLI, OpenCode, Windsurf, GitHub CopilotSkills as platform rules + project-level MCP config; commands degrade to prompt docs
Tier 3 (floor)Kiro, Amp, Jules, Qwen Code, and 18 more β€” npx design-playbook --listAGENTS.md with orchestrator contract + MCP install guide

Claude Code is the native surface. Tier-2/3 outputs are generated adapters with honest degradation. Full capability matrix: docs/specs/2026-08-28-multi-platform-adapter.md.

πŸ”— Stack with ecosystem

Not another style/palette pack β€” this plugin owns the delivery pipeline, evidence semantics, and acceptance loop, and composes with the rest:

PackageUse for
design-playbookBaseline? β†’ Reference? β†’ Spec? β†’ plan? β†’ shell β†’ optional preview* β†’ fill β†’ craft β†’ optional observe* β†’ point-back
ui-ux-pro-maxStyle / palette / type search
frontend-designAnti-template visual direction
native-feel-skillFull native-feel depth (WebView, IPC, memory)

πŸͺž Honest limits

  • Multimodality β€” understanding screenshot content depends on the host model's vision capability. The plugin only registers images (locator + SHA-256 + metadata); a host without vision rides your text description instead.
  • Run Console β€” planned: a local, single-run console projecting existing run artifacts so an operator can see intent, source verdict, blocker source, and next owner without opening raw files. Not shipped yet, not a cloud Workspace, never a second run-state authority.
  • Proof vs. shape β€” scripts/validate_run.py machine-checks the run-artifact shape and the closure trail; it does not claim every future run is automatically high-quality UI. The showcase is a demonstrated pass, not a statistical guarantee.

πŸ“„ License

MIT (authored content). See LICENSE + NOTICE. No rights claimed over any third-party playbook corpus.

Repo layout, maintainer scripts, and the engineering shell live behind the front door: package README Β· docs/agents.


δΈ­ζ–‡θ―΄ζ˜Ž Β· Showcase Β· Releases Β· Workflow