Tools & Capabilities

design-playbook

bandersnatch0x/design-playbook · ★ 3

bandersnatch0x

Design I/O for coding agents — declarations + contracts that make UI generation constrained, reviewable, and recirculatable.

License
NOASSERTION
Added
2026-08-23
Maintenance
active
Install kind
github

No manifest check is available; listing does not imply compatibility or security review.

安装

dsh plugin --profile web add github:bandersnatch0x/design-playbook

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. design-playbook
  2. Evidence-backed UI delivery for coding agents.
  3. ✅ Review UI against declared criteria and evidence
  4. Current stage
  5. ⚡ One command, three artifacts
  6. 🎬 Try it
  7. 📸 Evidence, not promises
  8. 🔁 The one-pass pipeline
  9. 🧩 Skills & commands
  10. 🎚️ Run profiles (P1/P2/P3)
  11. 🔌 Adapters (bundled)
  12. 🌐 Install on other agents
  13. 🔗 Stack with ecosystem
  14. 🪞 Honest limits
  15. 📄 License

design-playbook

Evidence-backed UI delivery for coding agents.

Version License Plugin Skills Commands Codex


✅ Review UI against declared criteria and evidence

Agents cannot grade their own UI. design-playbook makes them prove it, criterion by criterion: required evidence missing leaves the criterion blocked, and skipping the evaluator still produces an audited: false skeleton — never an audited Pass.

For a frontend or product engineer changing an existing Web UI with a coding agent, design-playbook connects the request, acceptance criteria, evidence, and repair owner. Findings point back to their owning declarations, blocking findings recirculate for repair, and evaluator review never replaces the named human's semantic approval.

Surface What carries it
Acceptance with proof ui-evaluator + the point-back ledger: findings cite criterion-bound evidence; the closure trail is a run artifact, not a chat summary
Existing-product UI work design-baseline discovers, validates, or drafts the project's DESIGN.md before changing a live product
Point-back findings Six-layer spec
Every finding points back to its declaration The spec exists before any UI

Current stage

[!NOTE] As of 2026-09-26, this project is in maintainer self-use and maintenance with bounded exceptions. Catalog submissions and participant recruitment are paused. Existing install paths remain available; internal dogfood, historical examples, and automated replays are not evidence of external adoption or repeat use. New capability specs are proposals, not implementation or release commitments. Resumption requires an explicit maintainer decision, not a date or passing internal tests.

Dated exceptions recorded in ADR-0045: the read-only frontend scope report (2026-09-25) and the Preview visual-editing capability (2026-10-09, local validation only). They do not reopen recruitment, catalog submission, or release, and no measured time-saving is claimed.

⚡ One command, three artifacts

The mechanism behind that proof is one pass:

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

A Design I/O run uses bundled MCP configuration, subject to host support and runtime prerequisites, and records three core artifacts under .scratch/<run>/:

Artifact What it owns
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, Zed, or any of 30 supported agents: see 🌐 Install on other agents. Honest degradation: 22 of the 30 are the generated AGENTS.md floor (orchestrator contract + MCP install guide, commands as prompt docs) — the tier table says exactly what each tier gets.

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

Runtime prerequisites: a supported host with the relevant MCP tools registered, Python 3 for the bundled runtimes, and a local browser for Preview. Runtime capture additionally needs Playwright with Chromium and a reachable application with the required test data and login state. See the capture setup. An unavailable optional adapter is disclosed; required proof still cannot be treated as passed merely because capture was skipped.

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

Version SSOT: packages/design-playbook/package.json and packages/design-playbook/.claude-plugin/plugin.json stay version-locked; the sibling bundle, root catalog, README badges, and generated Codex snapshot follow them.

📸 Evidence, not promises

Acceptance records keep their evidence limits visible:

Rule Meaning
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 Skipping the audit still carries the point-back skeleton, marked audited: false — strict validation refuses it as a final result
Missing is not inapplicable Missing required proof is blocked; not-applicable needs an unmet applicability condition and a reason, not an unavailable capture tool

Historical cases and journey coverage: three independent requests, plus one complete current live run (case reader) that packages the whole chain — spec, real preview confirmations, Fill, craft audit, captured evidence, review, static handoff — with a cross-run review report. The SwarSight queue case retains its specification, design decisions, and review / repair record; it predates the current plan and capture requirements.

The images below are illustrated summaries of that historical case, not raw execution captures:

1 · ux-spec — six-layer spec before any UI 2 · ui-picker — decision report before code
Six-layer spec Decision report
3 · ui-evaluator — point-back + recirculate closure Historical result — six case checks, not the current gate matrix
Point-back findings Historical case checklist

Preview review workbench — inspect a design, anchor feedback, then confirm or revise. The control shell also carries a bounded visual-editing capability (resize, drag move, text and colour edits through the inspector; local validation only, no source writer). The packaged human-confirmation record belongs to a separate onboarding-form task; it is not confirmation of the queue case or of production acceptance:

Browse the three cases and their boundaries, or the complete current run for an end-to-end record that includes a resume pause point and a generated static handoff. The retry interface is another task with local mock data, not a plugin execution.

🔁 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 Meaning
? 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

Nine skills in the package (/design-playbook:<name>):

Skill Role
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
component-distill Existing cross-run, report-only component/token promotion proposals; durable promotion requires a user decision. Not a single-run pipeline step

Eight commands: design-io (full pipeline) · ux-spec (spec only) · ui-review (accept only) · run-review (cross-run) · run-status (phase + resume narration) · run-handoff (static delivery package for a reviewed run) · doctor (install health) · component-distill (cross-run proposals, no automatic promotion)

🎚️ 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 Scope Gate face
P1 point-fix Single-owning-layer point-back repair, no decided-field touch Registry subset evaluation; R4/R5 (+R2 line) routes
P2 standard In-baseline feature change (new criteria, R/C decisions) Full predicate evaluation; shaping session + G9/G10
P3 full Decided-field revision (supersedes), structural re-composition, E-tier decisions G1-G12 full spectrum + sampling matrix fully executed

Run-profile and re-entry decisions: ADR-0029. Maintainer documentation: Chinese documentation index.

🔌 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.

Adapter MCP tool Enables Notes
design-playbook-preview preview_prototype preview* human confirm gate (G5) Bundled; needs system Edge/Chrome for the popup (falls back to default browser)
design-playbook-evidence execute_capture_plan observe* runtime evidence (G6) — needs Playwright + Chromium Bundled; 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>
Tier Agents What you get
Tier 1 (native) Claude Code, Codex Full fidelity — skills, commands, MCP, drift-gated snapshots
Tier 2 (generated) Cursor, Gemini CLI, OpenCode, Windsurf, GitHub Copilot, Zed Skills as platform rules + project-level MCP config; commands degrade to prompt docs. Zed: .rules (first-match aware — skipped if a competing rules file exists without one) + .zed/settings.json context_servers
Tier 3 (floor) 22 total, including Kiro, Amp, Jules, Qwen Code — npx design-playbook --list AGENTS.md with orchestrator contract + MCP install guide

Claude Code is the native surface. Tier-2/3 outputs are generated adapters with honest degradation. Current inventory: adapter matrix; tier semantics: ADR-0042.

🔗 Stack with ecosystem

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

Package Use for
design-playbook Baseline? → Reference? → Spec? → plan? → shell → optional preview* → fill → craft → optional observe* → point-back
ui-ux-pro-max Style / palette / type search
frontend-design Anti-template visual direction
native-feel-skill Full 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 — shipped and experimental: 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 — including a derived Repair Packet and an explicit open-console continuation from run-status. It stays local and trial-gated (no external authorization yet), is not a cloud Workspace, and never becomes a second run-state authority.
  • Packaging MCP config — marketplace path includes package-local MCP runtime config; published registry packages may omit a root MCP config and need explicit host registration.
  • Console loopback on Windows — local Console open uses loopback transport; dogfood saw a transport abort there, so do not treat loopback as a fixed-platform guarantee.
  • 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. Historical verdicts apply only to their recorded cases, not a current end-to-end run or a statistical guarantee.

📄 License

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

The repo also carries design-playbook-workbench, a separate single-maintainer, loopback-only local design-asset workbench authorized under ADR-0045; it is not part of the installable plugin and ships nowhere yet.

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

GitHub Issues are for user reports and feedback. Internal specs, plans, research, and work tickets stay local and untracked; see the issue policy.

Maintainers: automated acceptance covers the required matrix and an extra-project operator replay. Its simulated review inputs are regression fixtures, not external trial evidence.


中文说明 · Showcase · Releases · Workflow