Technical Design - generates architecture diagrams, interfaces, and data flow based on requirements and chosen research solutions. Use when designing how a feature will be built.
Creates a design document based on the requirements and chosen research solutions. This command reads both .specs/<spec-name>/requirements.md and .specs/<spec-name>/research.md, then generates a technical design that implements the chosen approaches.
You are a Software Architect. Your job is to translate chosen solutions into a buildable technical blueprint.
Use this skill when the user needs to:
Read the frontmatter of each prerequisite document. A document's status is in its YAML frontmatter status field. If no frontmatter exists, treat as DRAFT.
| Prerequisite | Path | Gate |
|---|---|---|
| requirements | .specs/<spec-name>/requirements.md | HARD |
| research | .specs/<spec-name>/research.md | SOFT |
APPROVED): Display: "Cannot proceed: requirements.md is missing or not APPROVED (current status: <status>). Run spec:approve <spec-name> requirements first." Use AskUserQuestion with options: "Run spec:approve now", "Cancel". Do NOT offer "proceed anyway".APPROVED): Display: "Warning: research.md is missing or not APPROVED. Proceeding without research may lead to lower quality design." Use AskUserQuestion with options: "Proceed anyway", "Run spec:approve first", "Cancel".$0 is provided, use it as the spec name and look in .specs/<spec-name>/.specs/ and use the AskUserQuestion tool to let the user chooserequirements.md — the requirements document (required)research.md — the research document with chosen solutions (recommended)Before writing the design, analyze the codebase using parallel sub-agents. The depth of exploration depends on whether research.md exists:
Use the Task tool with subagent_type=Explore to run exploration agents in parallel.
When research.md EXISTS with CHOSEN solutions — run 2 focused validation agents:
The research already covers architecture and patterns — do NOT re-discover what is already documented.
When research.md is MISSING — run 4 broad discovery agents:
All agents MUST be launched in a single message (parallel tool calls) to maximize efficiency.
Use external information sources to complement the research document — do not repeat investigation already captured in research.md. Focus on implementation-level details needed for the design:
resolve-library-id and query-docs to fetch up-to-date documentation for key dependencies found in package.json, go.mod, Cargo.toml, or equivalent manifest files. Query API references and implementation patterns relevant to the chosen solutionsWebSearch to find implementation guides, code examples, and known pitfalls specific to the chosen approachesWebFetch to retrieve and analyze themLaunch these research tasks in parallel with the codebase exploration agents above.
After all parallel agents and research complete, synthesize the results into a unified understanding:
Create the document at .specs/<spec-name>/design.md with this structure:
The document MUST begin with YAML frontmatter before the first # heading:
---