design-system
Assists developers in writing structured Game Design Documents by gathering context and following a systematic drafting process.
Install
mkdir -p .claude/skills/design-system && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17399" && unzip -o skill.zip -d .claude/skills/design-system && rm skill.zipInstalls to .claude/skills/design-system
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Guided, section-by-section GDD authoring for a single game system. Gathers context from existing docs, walks through each required section collaboratively, cross-references dependencies, and writes incrementally to file.Key capabilities
- →Parse arguments and validate review mode
- →Gather context from game concept and systems index
- →Read entity registry and reflexion logs for known facts
- →Identify upstream and downstream dependencies and read their GDDs
- →Present a context summary to the user
- →Author GDD sections incrementally with user approval
How it works
The skill authors Game Design Documents (GDDs) by parsing arguments, gathering context from existing documentation and dependencies, and then collaboratively writing each section incrementally with user approval.
Inputs & outputs
When to use design-system
- →Draft new game system documentation
- →Retrofit existing documentation for game features
- →Maintain GDD system index
- →Collaboratively define system constraints
About this skill
When this skill is invoked:
1. Parse Arguments & Validate
Resolve the review mode (once, store for all gate spawns this run):
- If
--review [full|lean|solo]was passed → use that - Else read
production/review-mode.txt→ use that value - Else → default to
lean
See .claude/docs/director-gates.md for the full check pattern.
A system name or retrofit path is required. If missing:
- Check if
design/gdd/systems-index.mdexists. - If it exists: read it, find the highest-priority system with status "Not Started" or equivalent, and use
AskUserQuestion:- Prompt: "The next system in your design order is [system-name] ([priority] | [layer]). Start designing it?"
- Options:
[A] Yes — design [system-name]/[B] Pick a different system/[C] Stop here - If [A]: proceed with that system name. If [B]: ask which system to design (plain text). If [C]: exit.
- If no systems index exists, fail with:
"Usage:
/design-system <system-name>— e.g.,/design-system movementOr to fill gaps in an existing GDD:/design-system retrofit design/gdd/[system-name].mdNo systems index found. Run/map-systemsfirst to map your systems and get the design order."
Detect retrofit mode:
If the argument starts with retrofit or the argument is a file path to an
existing .md file in design/gdd/, enter retrofit mode:
- Read the existing GDD file.
- Identify which of the 8 required sections are present (scan for section headings). Required sections: Overview, Player Fantasy, Detailed Design/Rules, Formulas, Edge Cases, Dependencies, Tuning Knobs, Acceptance Criteria.
- Identify which sections contain only placeholder text (
[To be designed]or equivalent — blank, a single line, or obviously incomplete). - Present to the user before doing anything:
## Retrofit: [System Name] File: design/gdd/[filename].md Sections already written (will not be touched): ✓ [section name] ✓ [section name] Missing or incomplete sections (will be authored): ✗ [section name] — missing ✗ [section name] — placeholder only - Ask: "Shall I fill the [N] missing sections? I will not modify any existing content."
- If yes: proceed to Phase 2 (Gather Context) as normal, but in Phase 3 skip creating the skeleton (file already exists) and in Phase 4 skip sections that are already complete. Only run the section cycle for missing/ incomplete sections.
- Never overwrite existing section content. Use Edit tool to replace only
[To be designed]placeholders or empty section bodies.
If NOT in retrofit mode, normalize the system name to kebab-case for the
filename (e.g., "combat system" becomes combat-system).
2. Gather Context (Read Phase)
Read all relevant context before asking the user anything. This is the skill's primary advantage over ad-hoc design — it arrives informed.
2a: Required Reads
- Game concept: Read
design/gdd/game-concept.md— fail if missing:"No game concept found. Run
/brainstormfirst." - Systems index: Read
design/gdd/systems-index.md— fail if missing:"No systems index found. Run
/map-systemsfirst to map your systems." - Target system: Find the system in the index. If not listed, warn:
"[system-name] is not in the systems index. Would you like to add it, or design it as an off-index system?"
- Entity registry: Read
design/registry/entities.yamlif it exists. Extract all entries referenced by or relevant to this system (grepreferenced_by.*[system-name]andsource.*[system-name]). Hold these in context as known facts — values that other GDDs have already established and this GDD must not contradict. - Reflexion log: Read
docs/consistency-failures.mdif it exists. Extract entries whose Domain matches this system's category. These are recurring conflict patterns — present them under "Past failure patterns" in the Phase 2d context summary so the user knows where mistakes have occurred before in this domain.
2b: Dependency Reads
From the systems index, identify:
- Upstream dependencies: Systems this one depends on. Read their GDDs if they exist (these contain decisions this system must respect).
- Downstream dependents: Systems that depend on this one. Read their GDDs if they exist (these contain expectations this system must satisfy).
For each dependency GDD that exists, extract and hold in context:
- Key interfaces (what data flows between the systems)
- Formulas that reference this system's outputs
- Edge cases that assume this system's behavior
- Tuning knobs that feed into this system
2c: Optional Reads
- Game pillars: Read
design/gdd/game-pillars.mdif it exists - Existing GDD: Read
design/gdd/[system-name].mdif it exists (resume, don't restart from scratch) - Related GDDs: Glob
design/gdd/*.mdand read any that are thematically related (e.g., if designing a system that overlaps with another in scope, read the related GDD even if it's not a formal dependency)
2d: Present Context Summary
Before starting design work, present a brief summary to the user:
Designing: [System Name]
- Priority: [from index] | Layer: [from index]
- Depends on: [list, noting which have GDDs vs. undesigned]
- Depended on by: [list, noting which have GDDs vs. undesigned]
- Existing decisions to respect: [key constraints from dependency GDDs]
- Pillar alignment: [which pillar(s) this system primarily serves]
- Known cross-system facts (from registry):
- [entity_name]: [attribute]=[value], [attribute]=[value] (owned by [source GDD])
- [item_name]: [attribute]=[value], [attribute]=[value] (owned by [source GDD])
- [formula_name]: variables=[list], output=[min–max] (owned by [source GDD])
- [constant_name]: [value] [unit] (owned by [source GDD]) (These values are locked — if this GDD needs different values, surface the conflict before writing. Do not silently use different numbers.)
If no registry entries are relevant: omit the "Known cross-system facts" section.
If any upstream dependencies are undesigned, warn:
"[dependency] doesn't have a GDD yet. We'll need to make assumptions about its interface. Consider designing it first, or we can define the expected contract and flag it as provisional."
2e: Technical Feasibility Pre-Check
Before asking the user to begin designing, load runtime/stack context and surface any constraints or knowledge gaps that will shape the design.
Step 1 — Determine the runtime/stack domain for this system: Map the system's category (from systems-index.md) to a runtime/stack domain:
| System Category | Runtime/Stack Domain |
|---|---|
| Combat, rules, resolution | Core |
| Economy, loot, market | Persistence |
| API, endpoints, transport | API/Transport |
| Matchmaking, sessions, lobbies | Matchmaking |
| AI, pathfinding, bots | Concurrency |
| Realtime sync, replication | Networking |
| Auth, sessions, tokens | Auth |
| Save/load, persistence, data | Persistence |
| Caching, hot state | Caching |
Step 2 — Read runtime/stack context (if available):
- Read
.claude/docs/technical-preferences.mdto identify the runtime/stack and versions - If a runtime/stack is configured, read
docs/engine-reference/nodejs/VERSION.md - Read
docs/engine-reference/nodejs/modules/[domain].mdif it exists - Read
docs/engine-reference/nodejs/breaking-changes.mdfor domain-relevant entries - Glob
docs/architecture/adr-*.mdand read any ADRs whose domain matches (check the Runtime/Stack Compatibility table's "Domain" field)
Step 3 — Present the Feasibility Brief:
If runtime/stack reference docs exist, present before starting design:
## Technical Feasibility Brief: [System Name]
Runtime: Node.js [version] + [libraries]
Domain: [domain]
### Known Runtime/Library Capabilities (verified for [version])
- [capability relevant to this system]
- [capability 2]
### Runtime/Library Constraints That Will Shape This Design
- [constraint from runtime/stack reference or existing ADR]
### Knowledge Gaps (verify before committing to these)
- [post-cutoff feature this design might rely on — mark HIGH/MEDIUM risk]
### Existing ADRs That Constrain This System
- ADR-XXXX: [decision summary] — means [implication for this GDD]
(or "None yet")
If no runtime/stack reference docs exist (stack not yet configured), show a short note:
"No runtime/stack configured yet — skipping technical feasibility check. Run
/setup-enginebefore moving to architecture if you haven't already."
Step 4 — Ask before proceeding:
Use AskUserQuestion:
- "Any constraints to add before we begin, or shall we proceed with these noted?"
- Options: "Proceed with these noted", "Add a constraint first", "I need to check the runtime/stack docs — pause here"
Use AskUserQuestion:
- "Ready to start designing [system-name]?"
- Options: "Yes, let's go", "Show me more context first", "Design a dependency first"
3. Create File Skeleton
Once the user confirms, immediately create the GDD file with empty section headers. This ensures incremental writes have a target.
Use the template structure from .claude/docs/templates/game-design-document.md:
# [System Name]
> **Status**: In Design
> **Author**: [user + agents]
> **Last Updated**: [today's date]
> **Implements Pillar**: [from context]
## Overview
[To be designed]
## Player Fantasy
[To be designed]
## Detailed Design
### Core Rules
[To be designed]
### States and Transitions
[To be designed]
### Interactions with Other Systems
[To be designed]
## Formulas
[To be designed]
## Edge Cases
[To be designed]
## Dependencies
[To be designed]
## Tuning Knobs
[To be designed]
## Operational Requirements
[To be designed]
## API/Contract Requirements
[To be designed]
## Acceptance Criteria
[To
---
*Content truncated.*
When not to use it
- →When a system name or retrofit path is missing
- →When auto-generating the full GDD without user approval is desired
- →When contradicting an existing approved GDD without flagging the conflict
Limitations
- →The skill requires `design/gdd/game-concept.md` and `design/gdd/systems-index.md` to be present
- →The skill never overwrites existing section content in retrofit mode, only replaces placeholders
- →The skill requires user approval for each section before writing to file
How it compares
This skill provides a guided, collaborative, and context-aware approach to GDD authoring, ensuring consistency with existing documentation and dependencies, unlike manual GDD creation that may lack cross-referencing.
Compared to similar skills
design-system side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| design-system (this skill) | 0 | 23d | No flags | Advanced |
| mermaid-diagrams | 8 | 6mo | No flags | Beginner |
| create-cli | 1 | 2mo | No flags | Beginner |
| design-review | 0 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
mermaid-diagrams
davila7
Comprehensive guide for creating software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams (domain modeling, object-oriented design), sequence diagrams (application flows, API interactions, code execution), flowcharts (processes, algorithms, user journeys), entity relationship diagrams (database schemas), C4 architecture diagrams (system context, containers, components), state diagrams, git graphs, pie charts, gantt charts, or any other diagram type. Triggers include requests to "diagram", "visualize", "model", "map out", "show the flow", or when explaining system architecture, database design, code structure, or user/application flows.
create-cli
steipete
Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an existing CLI’s surface area for consistency, composability, and discoverability.
design-review
Harries
设计文档评审。当用户需要评审设计文档质量、检查设计合理性、发现设计缺陷,或询问"帮我评审设计文档"、"检查设计质量"时使用。
functional-design
Fuga578
機能設計書を作成するための詳細ガイドとテンプレート。機能設計書作成時にのみ使用。
architecture-decision-records
wshobson
Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.