Automated summary
Generates comprehensive technical design documents from approved requirements, following a structured multi-step workflow.
Strengths
- Structured approach with clear steps and prerequisite checks
- Selection of appropriate architecture patterns based on requirements
- Precise definition of components, data models, and interfaces
Limitations
- Requires requirements to be already generated and approved
- May be overkill for very simple features
- Depends on specific MCP tools (sdd-status, sdd-approve)
Use this skill when you have approved requirements and need to translate them into detailed technical specifications to guide implementation.
Do not use it when requirements are not yet approved or when you need to generate requirements first.
Security analysis
SafeThe skill is a purely instructional document for generating design specifications; it does not instruct execution of any system commands, network requests, or file modifications beyond saving a document. References to MCP tools are internal and do not present security risks.
No concerns found
How this analysis is madeExamples
/sdd-design user-authenticationI need a technical design for a payment processing system. Generate an SDD design for the payment module.name: sdd-design description: Create technical design specifications for SDD workflow. Use when designing architecture, defining components, or creating system design documents after requirements are approved. Invoked via /sdd-design <feature-name>.
SDD Technical Design Generation
Generate comprehensive technical design documents that translate approved requirements into actionable architecture specifications.
Prerequisites
Before generating design:
- Requirements must be generated using
/sdd-requirements - Requirements phase should be approved (use
sdd-approve requirementsMCP tool) - Review existing architecture in
.spec/steering/tech.mdand.spec/steering/structure.md
Workflow
Step 1: Verify Prerequisites
Use sdd-status MCP tool to verify:
requirements.generated: truerequirements.approved: true(recommended before design)
Step 2: Review Requirements
- Read
.spec/specs/{feature}/requirements.md - Identify all functional requirements (FR-*)
- Identify all non-functional requirements (NFR-*)
- Note constraints and assumptions
Step 3: Choose Architecture Pattern
Select appropriate patterns based on requirements:
| Pattern | Use When | Key Characteristics | |---------|----------|---------------------| | Clean Architecture | Domain-heavy apps | Layers: Domain → Use Cases → Interface → Infrastructure | | MVC/MVP | Web applications | Model-View-Controller separation | | Microservices | Distributed systems | Independent deployable services | | Event-Driven | Async processing | Event producers and consumers | | Hexagonal | Testable business logic | Ports and Adapters pattern |
Step 4: Design Components
For each component, specify:
## Component: {ComponentName}
**Type:** Service | Controller | Repository | Adapter | Provider
**Purpose:** {Single responsibility description}
**Responsibilities:**
- {Responsibility 1}
- {Responsibility 2}
**Interface:**
```typescript
interface I{ComponentName} {
methodName(input: InputType): Promise<OutputType>;
}
Dependencies:
- {Dependency 1 via interface}
- {Dependency 2 via interface}
Error Handling:
- {Error scenario 1}: {How to handle}
### Step 5: Define Data Models
```markdown
## Data Models
### Model: {EntityName}
**Purpose:** {What this entity represents}
| Property | Type | Required | Description | Validation |
|----------|------|----------|-------------|------------|
| id | string | Yes | Unique identifier | UUID format |
| name | string | Yes | Display name | 1-100 chars |
| createdAt | Date | Yes | Creation timestamp | ISO 8601 |
**Relationships:**
- Has many: {RelatedEntity} (one-to-many)
- Belongs to: {ParentEntity} (many-to-one)
**Invariants:**
- {Business rule 1}
- {Business rule 2}
Step 6: Specify Interfaces
## API Interfaces
### REST Endpoints
| Method | Path | Description | Request | Response | Auth |
|--------|------|-------------|---------|----------|------|
| POST | /api/v1/resource | Create resource | CreateDTO | Resource | Bearer |
| GET | /api/v1/resource/:id | Get by ID | - | Resource | Bearer |
### Internal Service Interfaces
Following Interface Segregation Principle:
```typescript
// Read operations
interface IResourceReader {
getById(id: string): Promise<Resource>;
list(filter: Filter): Promise<Resource[]>;
}
// Write operations
interface IResourceWriter {
create(data: CreateDTO): Promise<Resource>;
update(id: string, data: UpdateDTO): Promise<Resource>;
delete(id: string): Promise<void>;
}
### Step 7: Document Error Handling
```markdown
## Error Handling Strategy
### Error Categories
| Category | HTTP Status | Retry | Log Level |
|----------|-------------|-------|-----------|
| Validation | 400 | No | WARN |
| Not Found | 404 | No | INFO |
| Conflict | 409 | No | WARN |
| Rate Limit | 429 | Yes (backoff) | WARN |
| Internal | 500 | Yes (limited) | ERROR |
### Error Response Format
```json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Human-readable message",
"details": [{ "field": "email", "issue": "Invalid format" }],
"requestId": "uuid-for-tracing"
}
}
### Step 8: Apply Linus-Style Quality Review
Before finalizing, validate against these principles:
#### 1. Taste - Is it elegant?
- Does the design feel natural and intuitive?
- Are there unnecessary complications?
#### 2. Complexity - Is it simple?
- Can any component be simplified?
- Are there too many abstractions?
#### 3. Special Cases - Are edge cases handled?
- What happens at boundaries?
- How does it fail gracefully?
#### 4. Data Structures - Are they optimal?
- Is the right data structure chosen?
- Does data flow make sense?
#### 5. Code Organization - Is it maintainable?
- Can new developers understand it?
- Is it easy to modify?
### Step 9: Save and Validate
1. Save design to `.spec/specs/{feature}/design.md`
2. Use `sdd-validate-design` MCP tool for GO/NO-GO review
3. If GO, use `sdd-approve design` MCP tool
## Design Document Template
```markdown
# Design: {Feature Name}
## Overview
{Brief summary of the design approach}
## Architecture Pattern
{Selected pattern and rationale}
## Component Diagram
[Component A] ──> [Component B] │ └──> [Component C]
## Components
### {Component 1}
{Component details as described above}
## Data Models
### {Entity 1}
{Model details as described above}
## Interfaces
### External APIs
{API specifications}
### Internal Interfaces
{Service interfaces}
## Error Handling
{Error strategy}
## Security Considerations
- Authentication: {approach}
- Authorization: {approach}
- Data protection: {approach}
## Testing Strategy
- Unit tests: {coverage target}
- Integration tests: {scope}
- E2E tests: {critical paths}
## Dependencies
- External: {list}
- Internal: {list}
MCP Tool Integration
| Tool | When to Use |
|------|-------------|
| sdd-status | Verify requirements phase complete |
| sdd-validate-design | Perform GO/NO-GO review |
| sdd-approve | Mark design phase as approved |
Steering Document References
Apply these steering documents during design:
| Document | Purpose | Key Application |
|----------|---------|-----------------|
| .spec/steering/principles.md | SOLID, DRY, KISS, YAGNI | Apply SOLID principles to component design, ensure interfaces follow ISP and DIP |
| .spec/steering/linus-review.md | Code quality, data structures | Focus on data structures first, eliminate special cases, ensure backward compatibility |
Key Linus Principles for Design:
- Data Structures First: "Bad programmers worry about the code. Good programmers worry about data structures."
- Eliminate Special Cases: "Good code has no special cases"
- Simplicity: "If implementation needs more than 3 levels of indentation, redesign it"
- Never Break Userspace: Ensure backward compatibility
Quality Checklist
- [ ] All FR-* requirements have corresponding components
- [ ] All NFR-* requirements have technical solutions
- [ ] SOLID principles are followed
- [ ] Interfaces are well-defined (ISP)
- [ ] Dependencies flow inward (DIP)
- [ ] Data models are complete with invariants
- [ ] Error handling strategy is comprehensive
- [ ] Security considerations are addressed
- [ ] Testing approach is specified
- [ ] Linus-style review passed
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/technical-design-specification-generation-mm5t89n4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/technical-design-specification-generation-mm5t89n4/download' --output '.skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md.part' && mv '.skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md.part' '.skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Prerequisites
Before generating design:
- Requirements must be generated using
/sdd-requirements - Requirements phase should be approved (use
sdd-approve requirementsMCP tool) - Review existing architecture in
.spec/steering/tech.mdand.spec/steering/structure.md
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md' && test -s '.skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/sdd-design' && cp -R '.skill-downloads/technical-design-specification-generation-mm5t89n4' '.claude/skills/sdd-design'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/technical-design-specification-generation-mm5t89n4'openskills read 'technical-design-specification-generation-mm5t89n4'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/technical-design-specification-generation-mm5t89n4/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.