plugins/promode/skills/design-system-lookbook/SKILL.md
Establish a design source-of-truth (a DESIGN.md-style two-layer doc of tokens + rationale), build a lookbook that renders it, and wire a live-refresh preview server so visual work gets a fast edit→see feedback loop. Use when setting up or restructuring a design system / design tokens, creating a DESIGN.md or design source-of-truth, building a lookbook, or wanting live preview / live reload of design or marketing artifacts — landing pages, decks, one-pagers, marketing material previews. The visual analogue of the operator-seam test loop: it crystallises taste into determinism. Defers aesthetic taste (typography/color/motion choices) to the frontend-design skill.
npx skillsauth add mikekelly/promode design-system-lookbookInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill extends the same principle to visual work. Three artifacts, each the visual analogue of a logic-testing artifact:
| Logic loop | Visual loop |
|---|---|
| Feature tests / specs | Design source-of-truth (DESIGN_SYSTEM.md) |
| Headless client exercising the seam | Lookbook rendering the tokens |
| Fast test runner | Live-refresh preview server |
The source-of-truth is to UI what feature-tests are to logic — the persistent, normative reference that kills drift. The live-refresh lookbook is to design what the fast test runner is to code — the instant signal that makes iteration cheap. Together they crystallise taste into determinism: capture an aesthetic decision once, replay it deterministically across every prompt and session.
This skill owns structure & process. It explicitly defers aesthetic taste — what good typography, color, and motion actually look like — to the frontend-design skill.
</objective>
## sections of human-readable rationale — the why. For the judgement calls and off-system edge cases that tokens can't enumerate ("use the warning color only for destructive, irreversible actions — never for mere emphasis").Keep token, rule, AND rationale in one file. A Figma export gives you the what but drops the why — and the why is exactly what an agent needs to make a consistent call on a case the tokens don't cover.
Recommended sections (ordered, from Google's spec — present this as the structure, not a menu):
(VoltAgent's richer variant adds Visual Theme & Atmosphere, Responsive Behavior, and an Agent Prompt Guide — fold those in only if the product genuinely needs them; start with the eight above.) </the-source-of-truth>
<where-it-lives-in-promode> **This is promode's divergence from the community convention — load-bearing.** The community calls the file `DESIGN.md` at the repo root. **In promode it is `docs/product/DESIGN_SYSTEM.md`** — the existing file the `product-design-expert` agent already maintains — restructured into the two-layer format above and framed as "promode's `DESIGN.md`." It is a **node in the agent-knowledge graph, linked from `CLAUDE.md`**. Explicitly **not** a project-root `DESIGN.md`, and **not** inlined into `CLAUDE.md`.Why placement matters:
CLAUDE.md, don't proliferate root files / don't bloat the always-loaded root." A design system is a cohesive body that lives as a subtree under docs/product/ (alongside PERSONAS.md, DECISIONS.md), reachable from the root — not scattered, not crammed into the launchpad..md files — only CLAUDE.md is auto-loaded. So a root DESIGN.md would need an explicit link from CLAUDE.md anyway. Reaching it on-demand through the graph is strictly better than a root file that's neither auto-loaded nor on-demand discoverable.Recognise the name DESIGN.md (it's what the ecosystem says); place it at docs/product/DESIGN_SYSTEM.md.
</where-it-lives-in-promode>
Location: docs/product/lookbook/ with an index.html entry — a node in the graph, linked from the design source-of-truth and CLAUDE.md.
</the-lookbook>
Mechanics. A static file server that watches the artifact files and pushes a reload to the browser over SSE (or websocket) on change. Small, framework-agnostic, dependency-light — see references/live-reload-server.md for a copy-pasteable ~60-line Node implementation plus the browser client snippet.
CRITICAL NUANCE — don't build a second dev server. If the project's stack already has HMR / live-reload (Vite, Next, etc.), use that. The reference implementation is for static HTML artifacts — lookbooks, decks, landing pages — that have no dev server of their own. Reach for it only there.
Who runs it in promode:
environment-manager owns the preview server as a managed dev service (starts it, keeps it healthy, reports its URL).implementer builds the lookbook and any static artifacts from the reference, test-first where there's logic to test.verifier screenshots the rendered output against the lookbook / source-of-truth as the visual acceptance check.
</the-live-refresh-loop>
<success_criteria>
docs/product/DESIGN_SYSTEM.md — YAML token front-matter + ## rationale sections — and is linked from CLAUDE.md (a graph node, not a root file, not inlined).docs/product/lookbook/index.html renders those tokens (living where a component system exists, reference otherwise) and traces up to the source-of-truth.frontend-design, then captured in the source-of-truth so it replays deterministically — not re-decided ad hoc each session.
</success_criteria>development
Walk the knowledge graph (rooted at CLAUDE.md) and ensure every crucial design constraint — invariants, prohibitions, required patterns, load-bearing decisions — is stated inline in the nearest loaded CLAUDE.md orientation that governs the affected area, with a link to its full rationale for expanded discovery. Use when constraints are buried in ADRs, knowledge docs, code comments, or tribal knowledge; when an agent violated a rule it had no way to know; or when asked to surface, hoist, lift, strengthen, or reinforce design constraints, or make them discoverable to agents.
development
Audit how well a repository's codebase and practices align with the promode methodology, then produce a prioritised, actionable improvement plan. Fans out parallel assessors (one per dimension) and synthesises their findings. Use when the user wants to assess promode alignment/fit, audit a repo against the methodology, or get a plan to bring a codebase in line with promode. Also flags stale per-project install leftovers — promode ships its own SessionStart hook, so nothing should be copied into a project.
testing
Write a handoff document so a fresh agent can continue this work after the conversation ends. Invoke when the user is about to /clear or /compact, when context is filling up, or when the user asks to hand off, checkpoint, or pause work for a later session. Argument (optional): what the next session will focus on.
tools
Put the bulk of acceptance coverage below the UI through a fast, deterministic headless client driving an operator seam, and reserve a surgical UI state-graph tier for defects that only manifest through the real GUI. Use when designing test/QA or acceptance-testing strategy, automating acceptance, end-to-end (E2E), or QA testing of a running app, deciding what to cover with fast headless tests vs slow UI/E2E, building agent-driven exploration or automation of a running app, building a below-UI operator seam (interaction layer) or headless client, or crystallising agent-discovered knowledge into reusable deterministic artifacts (maps, graphs, scripts, tests). Covers the Discovery⇄Determinism flywheel, the operator-seam architecture (one seam serving both a headless test client and AI-agent tools), and layered headless-first acceptance testing with a surgical UI state-graph tier for GUI-only defects.