design-system
Skill187 starsChanged 5 months agoMITView on GitHub
Use to establish the project's design canon — docs/design-system.md: the design-tool choice (Figma MCP / Pencil MCP / code-only markdown), the platform posture (mobile-first / desktop-first / responsive), the token source, and the reusable component inventory. Once per repo, like survey. Triggers on "set up the design system", "design canon", "which design tool", "establish the UI foundation", "/sdd:design-system", "налаштуй дизайн-систему", "дизайн-канон проєкту", "яким інструментом малюємо". Read by ux-flows (posture) and screens (tool + inventory); implement registers NEW components back into it. On tool: pencil it also bootstraps the .pen library itself — creates the file, walks the user through opening it, and seeds tokens + a foundations frame via the pen-keeper agent. Utility — not a backbone stage; run it before the first UI feature (ux-flows recommends it when absent).
192 other projects use a version of this.
Adopted by
Most recently taken up by
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- caidanw/skillstheir own version, first seen Nov 8, 2026
- Adelie-Squad/solosquadtheir own version, first seen Nov 8, 2026
- darkweb19/skillstheir own version, first seen Nov 8, 2026
- dmoreq/agent-grimoiretheir own version, first seen Nov 8, 2026
- ahmadvahidi/skill-atlastheir own version, first seen Nov 8, 2026
Used with
Projects with it also use setup-engine, team-level and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CoralGameSkillsetup-engine
Configure the project's game engine and version. Pins the engine in CLAUDE.md, detects knowledge gaps, and populates engine reference docs via WebSearch when the version is beyond the LLM's training data.
Also in 13 projects that use this
CoralGameSkillteam-level
Orchestrate level design team: level-designer + narrative-director + world-builder + art-director + systems-designer + qa-tester for complete area/level creation.
Also in 12 projects that use this
lilangMaxSkillcreate-stories
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.
Also in 11 projects that use this
lilangMaxSkillstory-done
End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.
Also in 11 projects that use this
- +2 more from CoralGame
- +6 more from lilangMax
Other versions192 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 192
- nextlevelbuilder/ui-ux-pro-max-skill★ 147ksame name
- getsentry/sentry★ 46ksame name
- anthropics/knowledge-work-plugins★ 35ksame name
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- ethereum/ethereum-org-website★ 6ksame name
- langwatch/langwatch★ 5ksame name
- joye61/pic-smaller★ 2.9ksame name
- daveebbelaar/bama★ 1.7ksame name
- reatom/reatom★ 1.4ksame name
- microsoft/power-platform-skills★ 1.1ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 175 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 46
Check existing: If docs/design-system.md exists, show its tool + posture + inventory summary and ask: reuse as-is (STOP — nothing to do) / …
- Very specific: line 49
Scan the code side: Read architecture-map.md §Frontend / UI foundation + the frontend: key.
- Very specific: line 119
Blocking on a missing MCP: No Figma/Pencil in the session → code mode is always available.
“Common” is measured: kept by at least 6 in 10 of the 175 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: design-system
The design-side twin of survey: once per repo it fixes the design canon in
docs/design-system.md — which tool screens are drawn with (figma / pencil / code), the
platform posture, where tokens come from, and the component inventory new screens must compose.
architecture-map.md §Frontend stays the inventory of the code; this file is the design
canon the design pipeline (ux-flows → screens) and implement/review read. The tool choice
is committed here — never in .claude/sdd.local.md (that file is per-developer and gitignored;
the canon is team-wide).
Question phrasing → ../_shared/ask-style.md. Canon prose follows
artifact_language — frontmatter keys/values (tool:, figma_file:, …), component names and
file anchors stay English → ../_shared/artifact-language.md.
Owner
Whoever owns the product's look (designer / frontend lead / the solo maintainer).
Inputs
- (Optional)
docs/architecture-map.md§Frontend / UI foundation + thefrontend:machine key — the code-side inventory this canon cites. - (Optional) an existing
docs/design-system.md— updated, never silently overwritten. - The design-tool MCPs available in this session (Figma / Pencil), if any → detected in step 3.
Protocol
- Check existing. If
docs/design-system.mdexists, show itstool+ posture + inventory summary and ask: reuse as-is (STOP — nothing to do) / update (continue, edits land in place) / rebuild. Never overwrite silently. - Scan the code side. Read
architecture-map.md§Frontend / UI foundation + thefrontend:key. Map absent, stale, orfrontend: ""on a repo that visibly has UI code → dispatch theexploreragent —subagent_type: "sdd:explorer"(fallbacksubagent_type: "Explore", per../_shared/agent-roster.md) — for the component library / tokens / styling approach / shared primitives, each with afile:line. A repo with no UI code at all is fine — the canon can start tool-side or empty (greenfield: the inventory grows asimplementregisters components). - Detect tools + ask ONE question set. Detect which design-tool MCPs the session actually has
(Figma / Pencil — probe the available tools, don't assume). Then one
AskUserQuestioncall (up to 3 questions in it, phrased per../_shared/ask-style.md): (a) tool — options from what's detected, the detected one first as «(Recommended)»;code(markdown wireframes inscreens.md) is always offered — it needs no MCP and never blocks; (b) platform posture — mobile-first / desktop-first / responsive-both; (c) token source — the code file(s) found in step 2 / the tool's variables / «none yet». - Write the canon, section by section. Right after the step-3 answers, bootstrap
./templates/design-system.md→docs/design-system.md, then write each part to disk as soon as it is decided (progressive writes per../_shared/write-and-commit.md): frontmattertool+figma_file/pen_file(the one matching the tool; the other stays""), posture, token source, the component inventory — each row citingfile:line(code) or the node/URL (tool-side) — and the cross-screen conventions. - Bootstrap the tool library (
tool: pencilonly — figma links an existing file,codeneeds nothing). The canon naming apen_filethat doesn't exist or is an empty stub is the #1 way this skill «did nothing» — so materialize it: a. File. Absent → write the minimal stub topen_file({"version": "2.17", "children": []}). b. Open + verify. The Pencil MCP ignoresfilePath— it writes into whatever document is active in the app. Ask the user to open the file (macOS:open -a Pen <pen_file>), then verify viaget_app_statethat the active canvas ISpen_file. Mismatch → stop and repeat the ask; never write into a foreign document. c. Seed. Dispatch thepen-keeperagent —subagent_type: "sdd:pen-keeper"(no fallback: without the Pencil MCP this step degrades tocodemode per../_shared/tool-adapters.md) — with the canon path,pen_file, and the token source files. It re-checks the active document, seeds the variables (light + dark), ensures the foundations frame, and returns a reconcile report. d. Persist. Relay the report's user actions — always «Cmd+S in Pencil»: the app holds changes in memory and the MCP cannot save; confirm the file on disk actually changed (size/mtime) before calling the canon done. - Structural self-check — per
../_shared/self-check.md: re-read the file from disk and verify 5 items: (1)tool∈ {figma, pencil, code}; (2) the tool ↔ file fields agree —figma⇒figma_filenon-empty,pencil⇒pen_filenon-empty,code⇒ both""; (3) every inventory row carries a source anchor (file:lineor node/URL); (4) no<placeholder>stubs survive; (5)tool: pencil⇒ thepen_fileexists on disk and is larger than the empty stub (step 5 ran and the user saved). Fix + re-check ≤2 cycles; surface anything unresolved. - Commit + handoff. On a passing self-check, commit per
../_shared/write-and-commit.md— one commit fordocs/design-system.md(design-system: <tool> canon design-system.md) and, on pencil, a separate one for the seededpen_file(design-system: <tool> canon <pen_file>) when it changed on disk. An unresolved item means no commits. Then emit the stage-handoff block per../_shared/handoff.md(utility variant) — What I did (incl. «self-check: 5/5 pass» + the commit SHAs) + Review (docs/design-system.md) + Run next: resume your backbone stage (typically/sdd:ux-flows <slug>for the UI feature in flight);/clearoptional.
Definition of Done
docs/design-system.mdexists withtool∈ {figma, pencil, code}, a stated platform posture, a token source, and an inventory whose every row cites its source.- The tool ↔
figma_file/pen_filefields are consistent; the file is committed (team-wide canon, not a local setting). tool: pencil⇒ the.penlibrary exists on disk, holds the seeded token variables, and the user has saved it (the canon never points at a file that was never created).
Anti-patterns
- The tool choice in
sdd.local.md. That file is per-developer and gitignored — two teammates would draw in different tools. The canon is committed, in this one file. - Re-asking the tool per feature.
ux-flows/screensread the canon; the question is asked once, here. - Duplicating
architecture-map.md§Frontend. The map inventories the code; this file cites it and adds the design-side canon — never a second copy of the same rows. - Blocking on a missing MCP. No Figma/Pencil in the session →
codemode is always available; degrade, don't block (→../_shared/tool-adapters.md). - An inventory with no anchors. A component row that cites nothing is a guess — cite
file:lineor the tool node, or leave it out. - A canon that names a
pen_filenobody created.tool: pencilwithout step 5 is a dangling pointer — downstreamscreensopens nothing and silently degrades. - Writing into whatever document is open. The Pencil MCP targets the ACTIVE document and
ignores
filePath— skipping theget_app_stateidentity check pollutes a foreign file. - Assuming the MCP saved to disk. It edits in-memory; only the user's Cmd+S persists. Verify the file changed before committing.
References & template
./templates/design-system.md— the canon scaffold; inline comments are the per-section generation contract.../_shared/tool-adapters.md— the design-tool MCP degradation row.../_shared/agent-roster.md— the explorer contract (step 2).../../agents/pen-keeper.md— the .pen reconcile contract (step 5).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

