design-system
Skill40 starsChanged 7 months agoMITView on GitHub
Section-by-section authoring of a Product Requirements Doc for a single mobile-app system. Reads concept, systems index, dependencies, and registry; walks the user through each PRD section collaboratively; writes incrementally to file. Use when starting a new PRD or filling gaps in an existing one.
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 1 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
- +1 more from CoralGame
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 repository77 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- design/CLAUDE.mdCLAUDE.md
- docs/CLAUDE.mdCLAUDE.md
- src/CLAUDE.mdCLAUDE.md
- tests/CLAUDE.mdCLAUDE.md
- adoptSkill
- architecture-decisionSkill
- architecture-reviewSkill
- asset-auditSkill
- asset-specSkill
- balance-checkSkill
- brainstormSkill
- bug-reportSkill
- bug-triageSkill
- changelogSkill
- code-reviewSkill
- consistency-checkSkill
- content-auditSkill
- create-architectureSkill
- create-control-manifestSkill
- create-epicsSkill
- create-storiesSkill
- day-one-patchSkill
- design-bibleSkill
- design-reviewSkill
- dev-storySkill
- estimateSkill
- extractSkill
- gate-checkSkill
- helpSkill
- hotfixSkill
- launch-checklistSkill
- localizeSkill
- map-systemsSkill
- milestone-reviewSkill
- onboardSkill
- patch-notesSkill
- perf-profileSkill
- prd-reviewSkill
- project-stage-detectSkill
- propagate-design-changeSkill
- prototypeSkill
- qa-planSkill
- quick-designSkill
- regression-suiteSkill
- release-checklistSkill
- retrospectiveSkill
- reverse-documentSkill
- review-all-prdsSkill
- scope-checkSkill
- security-auditSkill
- setup-frameworkSkill
- skill-improveSkill
- skill-testSkill
- smoke-checkSkill
- soak-testSkill
- sprint-planSkill
- sprint-statusSkill
- startSkill
- story-doneSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 14 are distinctive, and 14 are very specific to this project.
0
Common
Most of the 175 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 45
If --review full|lean|solo present, use it
- Very specific: line 48
If argument starts with retrofit followed by a path, enter retrofit mode:
- Distinctive: line 54
If yes: skip skeleton creation in Phase 3.
- Distinctive: line 58
If no argument and no systems index exists, stop:
- Distinctive: line 61
If no argument but systems index exists, find the highest-priority "Not started" system and ask:
- Very specific: line 93
Read docs/framework-reference/<framework>/VERSION.md — note knowledge-gap risk
- Very specific: line 94
Read docs/framework-reference/<framework>/breaking-changes.md — flag relevant entries
- Distinctive: line 95
If the system involves a known platform-tricky area (e.g., iOS background tasks, Android foreground services, push tokens, biometric APIs), …
- Very specific: line 119
If not in retrofit mode, write design/prd/<system-name>.md with empty sections:
- Very specific: line 163
Ask: "May I create the skeleton at design/prd/<system-name>.md?"
- Very specific: line 165
After write, update production/session-state/active.md (use Glob first.
- Distinctive: line 177
After each write, scan for registry conflicts (Section 3 and 6 especially): if the section just wrote a value that contradicts the …
- Very specific: line 188
Use AskUserQuestion for one framing decision:
- Distinctive: line 202
Always include: when does the user need this, what alternatives exist (other apps, manual workarounds), and what success looks like for …
- Distinctive: line 224
Goal: Every unusual situation has an explicit resolution.
- Distinctive: line 254
Goal: Every value that should be tunable without a code release.
- Distinctive: line 302
Read the file back. Verify:
- Very specific: line 303
All 8 required sections have content (no [To be designed] left)
- Distinctive: line 304
Every requirement has a TR-ID
- Very specific: line 305
Every Acceptance Criterion is GIVEN/WHEN/THEN
- Very specific: line 317
Ask: "Update design/registry/entities.yaml with these [N] new entries?"
- Very specific: line 326
Update the system's row in design/systems-index.md:
- Distinctive: line 366
If the session is interrupted:
- Very specific: line 368
Read design/prd/<system>.md — sections with content are done.
- Very specific: line 376
Always include the heading in Edit's old_string (placeholders are not unique)
- Distinctive: line 377
Never write a full PRD in one shot
- Distinctive: line 378
Always cross-reference dependency PRDs before writing Sections 3, 5, 6
- Distinctive: line 379
Never silently overwrite registry values
“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
Design a System (PRD Authoring)
Writes one PRD per system, one section at a time. Each approved section is written immediately so progress survives compaction or session loss.
Output: design/prd/<system-name>.md
Purpose / When to Run
Run when:
- A system has been mapped via
/map-systemsand is ready for full design - An existing PRD is missing sections (retrofit mode)
- A reverse-doc needs to be promoted to a full PRD
Inputs
- A system name OR a
retrofit <path>argument design/concept.md(required)design/systems-index.md(recommended)design/registry/entities.yaml(if present — cross-system fact registry)- Existing dependency PRDs in
design/prd/ .claude/docs/technical-preferences.mdanddocs/framework-reference/<framework>/
Outputs
design/prd/<system-name>.md— written section by section- Possibly updated
design/registry/entities.yaml - Possibly updated
design/systems-index.md
Phase 1: Argument Parsing & Review Mode
Resolve review mode:
- If
--review full|lean|solopresent, use it - Else read
production/review-mode.txt, defaultleanif absent
If argument starts with retrofit followed by a path, enter retrofit mode:
- Read the file
- Identify which of the 8 required sections are present (grep for headings)
- Required:
Overview,User Goal,Detailed Requirements,Edge Cases,Dependencies,Configurable Values,Acceptance Criteria,Accessibility - Identify which sections are placeholders (
[To be designed]or empty) - Print a retrofit summary (sections present vs. missing) and ask: "Fill the [N] missing sections without touching existing ones?"
- If yes: skip skeleton creation in Phase 3; in Phase 4 only run the section cycle for missing sections; never overwrite existing section content
Otherwise, normalize the system name to kebab-case for the filename.
If no argument and no systems index exists, stop:
"Usage:
/design-system <system-name>. No systems index found — run/map-systemsfirst."
If no argument but systems index exists, find the highest-priority "Not started" system and ask:
- Prompt: "The next system in your design order is [name]. Author it now?"
- Options:
Yes — design [name],Pick a different system,Stop here
Phase 2: Gather Context
2a: Required reads
design/concept.md— fail if missingdesign/systems-index.md— fail if missing (unless retrofit)- The target system's row in the index — its priority, layer, dependencies
design/registry/entities.yaml— extract entries this system might touch
2b: Dependency reads
From the systems index, find:
- Upstream systems this depends on — read their PRDs if they exist
- Downstream systems that depend on this — read their PRDs if they exist
For each dependency PRD, capture: data interfaces, configurable values that feed in, acceptance criteria that assume this system's behavior.
2c: Optional reads
design/concept.mdSection 6 (Tone & Visual Anchor) anddesign/design-bible.mdif present — for UI-touching systemsdocs/architecture/architecture.mdif present — to know what layer this lives in- Existing
design/prd/<system>.mdif it exists (resume rather than restart)
2d: Framework feasibility pre-check
For systems that touch the framework heavily (auth, push, persistence, deep links, biometrics, in-app purchase):
- Read
docs/framework-reference/<framework>/VERSION.md— note knowledge-gap risk - Read
docs/framework-reference/<framework>/breaking-changes.md— flag relevant entries - If the system involves a known platform-tricky area (e.g., iOS background tasks, Android foreground services, push tokens, biometric APIs), surface known gotchas before drafting
2e: Present a context brief
Before designing, print:
**Designing PRD: <System>**
- Priority: <from index>
- Layer: <from index>
- Depends on: <list, with PRD-status>
- Depended on by: <list>
- Locked facts from registry: <list — these values cannot be contradicted>
- Concept tone: <pull from concept.md Section 6>
- Framework gotchas: <list or "none">Use AskUserQuestion:
- Prompt: "Ready to design
<system>?" - Options:
Yes,Show me more context first,Design a dependency first,Stop
Phase 3: Create the File Skeleton
If not in retrofit mode, write design/prd/<system-name>.md with empty sections:
# <System Name> — PRD
> **Status**: In Design
> **Last Updated**: <date>
> **System**: <system-name>
> **Layer**: <from index>
## 1. Overview
[To be designed]
## 2. User Goal
[To be designed]
## 3. Detailed Requirements
[To be designed]
## 4. Edge Cases
[To be designed]
## 5. Dependencies
[To be designed]
## 6. Configurable Values
[To be designed]
## 7. Acceptance Criteria
[To be designed]
## 8. Accessibility
[To be designed]
## 9. Platform Notes
[Optional — fill if iOS/Android behavior differs]
## 10. Implementation Hooks
[Optional — for engineers, refs to ADRs/files when known]
## 11. Open Questions
[Optional]Ask: "May I create the skeleton at design/prd/<system-name>.md?"
After write, update production/session-state/active.md (use Glob first; Write if missing, Edit if present).
Phase 4: Section-by-Section Authoring
For each section, follow the cycle:
Context → Question(s) → Options → Decision → Draft → Approval → WriteAfter each write, scan for registry conflicts (Section 3 and 6 especially): if the section just wrote a value that contradicts the registry, surface immediately and pause.
Section 1: Overview
Goal: One paragraph a stranger could read and understand what this system does and why it exists.
Ask:
- What does this system do, in one sentence?
- Where does the user encounter it (which screens/flows)?
- What would the app lose without it?
Use AskUserQuestion for one framing decision:
- Prompt: "Frame the overview as user-facing or infrastructure?"
- Options:
User-facing,Infrastructure,Both — describe the layer and the surface
Draft. Ask AskUserQuestion to approve, request changes, or restart. Write with Edit using:
old_string: "## 1. Overview\n\n[To be designed]"
new_string: "## 1. Overview\n\n<approved text>"Section 2: User Goal
Goal: What the user is trying to accomplish — phrased as a JTBD.
Always include: when does the user need this, what alternatives exist (other apps, manual workarounds), and what success looks like for them.
Spawn ux-designer (Task) for any user-facing system to suggest the JTBD framing. Do not draft this section without specialist input on user-facing systems.
Section 3: Detailed Requirements
Goal: Unambiguous behavioral spec a developer could implement without re-asking.
Sub-sections to consider, depending on system type:
- Inputs — what the user can do (taps, swipes, voice, sensor, deep link)
- Outputs — what the system produces (state changes, navigation, persisted data, notifications)
- State machine — if states are involved, list every state and transition in a table
- Validation rules — for any input, define accepted/rejected criteria
- Backend integration — for any networked system: endpoints called, auth required, payload shape (high-level), error codes handled
- Persistence — what is stored locally, where (encrypted? plain?), how long
Each behavioral requirement needs a TR-ID: TR-<system>-NNN. This is what stories cite.
Spawn the framework specialist for systems with platform-tricky behavior (push, background work, biometrics, payments) to flag implementation realities before they get baked into the spec.
Section 4: Edge Cases
Goal: Every unusual situation has an explicit resolution.
Mobile-specific edge cases to always consider:
- Offline / no network
- Slow network (3G, throttled)
- Background-foreground transitions mid-action
- App killed mid-action
- OS permission denied / revoked
- Notification delivery failed
- Push token rotated
- Storage full
- App backgrounded during sensitive flow (auth, payment)
- App locale / region changed
- Dark mode toggled mid-session
- Dynamic type / large fonts
- Accessibility overlay (VoiceOver / TalkBack) running
Format each as: If <condition>: <exact resolution>. Vague answers ("handle gracefully") fail.
Section 5: Dependencies
Pre-fill from the systems index. Then:
- Confirm each dependency
- For each, specify: hard (system breaks without it) vs. soft (degrades but works)
- Specify the data interface (what flows in, what flows out)
Cross-reference the dependency PRDs — if this PRD's expected interface contradicts what the dependency PRD specifies, flag and pause.
Section 6: Configurable Values
Goal: Every value that should be tunable without a code release.
Mobile-specific candidates:
- Timeouts and retry counts
- Rate limits (client-side)
- Feature-flag-controlled behavior
- A/B test variants
- Push opt-in prompt timing
- Paywall display logic (event-triggered? after N sessions?)
- Onboarding screen count
- Cache TTLs
For each, capture: name, default value, safe range, who can change it (engineer / PM / data scientist), where it lives (build flag / remote config / database).
Section 7: Acceptance Criteria
Format: GIVEN / WHEN / THEN.
At minimum: one criterion per detailed requirement, one per edge case, one per accessibility requirement (Section 8). Each criterion must be verifiable by a tester reading only the criterion, not the whole PRD.
Spawn qa-lead via Task to validate testability. Surface any "untestable as written" findings before writing.
Section 8: Accessibility
Required for every PRD that touches UI. Cover:
- WCAG 2.2 AA contrast on all visible elements
- Touch target ≥ 44×44 pt (iOS HIG) / 48×48 dp (Material 3)
- Screen reader: every interactive element has a label and role
- Dynamic type / font scaling respected
- Reduce motion respected for any animated transition
- Color is not the only differentiator (icons + text)
- VoiceOver / TalkBack reading order makes sense
- Voice Control / Switch Control supported
For non-UI systems, write "N/A — no UI surface" and explain.
Optional Sections 9-11
Platform Notes — if iOS and Android behavior diverge, list per-platform.
Implementation Hooks — once ADRs are written, link them here.
Open Questions — anything raised but not resolved during design.
Phase 5: Post-Design Validation
5a: Self-check
Read the file back. Verify:
- All 8 required sections have content (no
[To be designed]left) - Every requirement has a TR-ID
- Every Acceptance Criterion is GIVEN/WHEN/THEN
- Accessibility section is non-empty for UI systems
5b: Update registry
Scan the PRD for new cross-system facts (named entities, configurable values, formulas). For each, check if registered. Present:
Registry candidates:
NEW: <name> [type]: <attrs> (from <system>)
EXISTING (referenced_by update only): <name> ✓Ask: "Update design/registry/entities.yaml with these [N] new entries?"
5c: Offer review
Print:
"PRD complete. To validate, open a fresh session and run
/prd-review design/prd/<system>.md. Do not run/prd-reviewhere — the reviewer must be independent of the authoring context."
5d: Update systems index
Update the system's row in design/systems-index.md:
- Status →
Designed (pending review)orAwaiting review - Doc → link to the PRD path
Ask before writing.
5e: Suggest next steps
Use AskUserQuestion:
- Options:
/consistency-check— verify no cross-PRD contradictions/design-system <next system>— design the next-priority system/prd-review design/prd/<system>.md(in a fresh session)Stop here
Specialist Routing
| System category | Primary spawn | Supporting spawns |
| Authentication / identity | ux-designer | framework specialist, security-engineer |
| Onboarding | ux-designer | growth-engineer |
| Payments / IAP / subscriptions | ux-designer | framework specialist, monetization-designer |
| Push notifications | framework specialist | growth-engineer |
| Search / browse | ux-designer | analytics-engineer |
| Profile / settings | ux-designer | accessibility-specialist |
| Analytics / instrumentation | analytics-engineer | product-director |
| Offline / sync | framework specialist | database-specialist |
| Sharing / deep links | framework specialist | ux-designer |
| Camera / media | framework specialist | ux-designer |
| Maps / location | framework specialist | ux-designer |
| Chat / messaging | ux-designer | framework specialist |
The main session orchestrates; specialists return analyses and the user picks. Specialists do not write files.
Recovery & Resume
If the session is interrupted:
- Read
production/session-state/active.md - Read
design/prd/<system>.md— sections with content are done;[To be designed]ones remain - Resume from the next incomplete section
Collaborative Protocol
- Question → Options → Decision → Draft → Approval, every section
- Always include the heading in
Edit'sold_string(placeholders are not unique) - Never write a full PRD in one shot
- Always cross-reference dependency PRDs before writing Sections 3, 5, 6
- Never silently overwrite registry values
Examples
/design-system auth
- Reads
design/concept.mdand any sibling PRDs (e.g.,onboarding.md). - JTBD: "When I land on the app, I want to sign in with as little typing as possible so I can get to the home screen."
- Section by section, walks: passwordless email magic-link vs. social SSO, biometric re-auth, token-storage choice (Keychain / Keystore / encrypted MMKV), session expiry policy, offline-token edge case.
- Writes
design/prd/auth.md. Each accepted section is committed before moving to the next.
/design-system paywall
- Captures pricing tiers, trial length, restore-purchases flow, App Store and Play Store compliance copy, paywall trigger timing, A/B knobs (
paywall_variant), analytics events (paywall_shown,purchase_started,purchase_completed), and edge cases (declined card, family sharing, refund flow). - Spawns
monetization-designerandpayment-integration-specialistfor the pricing and IAP/subscription sections.
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.

