plugins/documentation/skills/write-design-doc/SKILL.md
Assembles architecture, data modeling, and API design work into a structured, readable system design document. Focuses on writing quality, document structure, and completeness — the thinking work (decomposition, trade-offs, data modeling) happens in other skills and this skill pulls the results together into a single artifact that engineers and LLMs can implement from. Use when the user asks to write a design doc, document a design, write up the architecture, create a technical spec, assemble a system design, or says things like "write this up", "let's document the design", "create a design doc for this", or "turn this into a spec".
npx skillsauth add lucasilverentand/skills write-design-docInstall 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.
Assembles a system design into a structured document that engineers and LLMs can understand, implement from, and maintain. This skill is about the DOCUMENT — structure, sections, writing quality, completeness. The intellectual work of decomposing systems, analyzing trade-offs, modeling data, and designing APIs happens in other skills; this skill pulls their outputs together into a coherent, readable artifact.
ls .context/architecture/ 2>/dev/null || echo "none yet"systems-design:architecture first when available, come back here when the thinking is donesystems-design:design-review when availableEvery design doc has these 10 sections. Each one has content or an explicit "N/A — reason."
2-3 sentences: what is being built, who it's for, why now. A reader should know whether this doc is relevant to them after reading this paragraph alone.
Functional and non-functional. If requirements were gathered with the project:requirements skill, link to that output rather than duplicating. Otherwise, capture them inline. Non-functional requirements need concrete targets: "p99 latency < 200ms" not "fast."
Components and how they communicate. Include a Mermaid diagram — delegate to documentation:c4-diagrams if the system has more than 4-5 components. Name concrete technology for each component: "Orders Worker (Cloudflare Workers, Hono)" not "Orders Service."
Entities, relationships, ownership, storage engine. If the model is detailed, link to the systems-design:data-modeling output rather than duplicating the full schema here. At minimum, show the core entities and their relationships.
Walk 2-4 important request paths end-to-end. At least one happy path and one failure/error path. Use numbered steps, not prose paragraphs:
Main endpoints or operations. If the API is substantial (>5 endpoints), delegate to systems-design:api-design and link to its output in .context/architecture/api/. Here, show only the most important operations with their signatures.
How the design meets EACH non-functional requirement from section 2. Be specific and tie back to concrete mechanisms: "handles 5k req/s because Workers auto-scale per-isolate and D1 read replicas serve reads from edge" — not "scales well."
|Decision|Chose|Rejected|Why| |---|---|---|---| |...|...|...|...|
Every non-obvious choice gets a row. Give rejected options their real best case — strawman comparisons are useless.
What's unclear, what needs input from others, what was deliberately punted. Mark each with who needs to answer and a rough deadline if applicable.
Concrete first actions to de-risk the design. Not "implement the system" but "set up the D1 schema and seed test data to validate the query patterns."
These are non-negotiable. A design doc that violates these is worse than no doc at all.
orders and line_items in D1 (orders-db)" beats "Orders service handles order data."Write the finished doc to .context/architecture/<name>.md. After writing:
.context/overview.md exists, add a pointer to the new doc from itdocumentation:write-adrBefore considering the doc done, verify:
|When|Use|
|---|---|
|Need to gather requirements first|project:requirements if installed|
|Need to do architecture thinking|systems-design:architecture if installed|
|Need a data model|systems-design:data-modeling if installed|
|API surface is substantial|systems-design:api-design if installed|
|Need a diagram|documentation:c4-diagrams|
|Decisions deserve individual records|documentation:write-adr|
|Want to review the finished doc|systems-design:design-review if installed|
|File|Covers|
|---|---|
|references/design-template.md|Filled-in example of the design doc structure|
development
Cross-platform Apple Human Interface Guidelines: color, typography, layout, materials, motion, accessibility, SF Symbols, branding, plus shared UI elements (activity views, rating indicators, web views, …) and meta sections (components, patterns, technologies). Use when the design topic is platform-agnostic. User says: "iOS color tokens", "SF Symbols", "Apple typography", "dark mode guidance".
development
Guides a full system design from idea to spec — sequences requirements gathering, architecture decomposition, data modeling, API design, and document writing into a coherent workflow with clear handoffs. Use when the user asks to "design a system", "build X from scratch", "architect something end-to-end", "plan a new service", or has a broad design ask that spans multiple concerns. Also use when the user says things like "I need to build X" without specifying which aspect to start with. This is the entry point for any design task that isn't clearly scoped to a single skill (data model only, API only, etc.).
development
Synthesizes build-ready design systems and DESIGN.md files from chat briefs, screenshots, moodboards, videos, URLs, live pages, or local image folders while preserving the target product identity. Use when the user asks to "make a design system from these screenshots", "turn this moodboard into DESIGN.md", "extract the design language from this video", "define the UX vibe and rules from these references", or create cohesive UI rules from visual inspiration.
development
Reviews and critiques an existing or proposed system design — flags single points of failure, missing non-functional requirements, scaling bottlenecks, security gaps, operational blind spots, unjustified tech choices, and places where the design will fall over under load or failure. Produces a structured review with severity-tagged findings, not just vibes. Use when the user asks for a second opinion on an architecture, requests a design review, wants feedback on a proposed system, pastes a design doc, or says things like "review this design", "what's wrong with X", "poke holes in this", or "is this a good architecture".