PluginWorld
Ds

dsh-design-playbook

dsh✓ SPEC VERIFIED

Evidence-backed UI delivery for coding agents working on existing Web products: declared criteria, criterion-bound artifacts, findings linked to declarations, and repair guidance. Evaluator review does not replace human semantic approval.

@Bandersnatch0x · v0.25.4 · MIT · updated 18d ago

SECURITY

A

SCORE

76

INSTALLS

▲ 4.1K

PLUG IN

npx @deepseek-ai/dsh web

Launch, then search "dsh-design-playbook" in the built-in market to plug it in

README

design-playbook — evidence-backed UI delivery for coding agents

🎴 design-playbook

Evidence-backed UI delivery for coding agents.

Version License Plugin Skills Commands Codex


✅ Review UI against declared criteria and evidence

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. Required evidence that is missing leaves the criterion blocked. Explicitly skipping the evaluator produces an audited: false skeleton, not an audited Pass. Findings point back to their owning declarations and blocking findings recirculate for repair. Evaluator review does not replace the named human's semantic approval or guarantee independent judgment.

Two surfaces carry this:

  1. Acceptance with proof — ui-evaluator + the point-back ledger: findings must cite criterion-bound evidence, and the closure trail is part of the run, not a chat summary.
  2. Existing-product UI work — design-baseline discovers, validates, or drafts the project's DESIGN.md before changing a live product, so the change stays consistent with what already shipped.

Current stage

As of 2026-09-24, this project is in maintainer self-use and maintenance. 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.

The 2026-09-25 bounded self-use exception permits the source checkout's read-only frontend scope report. It does not reopen recruitment, catalog submission, or release, and no measured time-saving is claimed. The boundary is recorded in ADR-0045.

⚡ 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>/:

  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 notes, 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.

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

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:

  • 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.
  • 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 packaged human-confirmation record belongs to a separate onboarding-form task; it is not confirmation of the queue case or of production acceptance:

Preview confirm workbench — annotate, then confirm or revise

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 legend (? / * / †)
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 matrix
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.

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

SIMILAR PLUGINS