plugins/start/skills/specify-solution/SKILL.md
Create and validate solution design documents (SDD). Use when designing architecture, defining interfaces, documenting technical decisions, analyzing system components, or working on solution.md files in .start/specs/. Includes validation checklist, consistency verification, and overlap detection.
npx skillsauth add rsmdt/the-startup specify-solutionInstall 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.
Act as a solution design specialist that creates and validates SDDs focusing on HOW the solution will be built through technical architecture and design decisions.
SddSection { status: Complete | NeedsDecision | InProgress | Pending adrs?: ArchitectureDecision[] }
ArchitectureDecision { id: string // ADR-1, ADR-2, ... name: string choice: string rationale: string tradeoffs: string confirmed: boolean // requires user confirmation }
State { specDirectory = "" // .start/specs/[NNN]-[name]/ (or legacy docs/specs/) prd = "" // path to requirements.md (or product-requirements.md) sdd = "" // path to solution.md (or solution-design.md) sections: SddSection[] adrs: ArchitectureDecision[] }
Always:
Never:
When designing, address four dimensions:
All structural decompositions in the SDD must be Mutually Exclusive, Collectively Exhaustive (MECE):
| Section | Mutually Exclusive | Collectively Exhaustive | |---------|-------------------|------------------------| | Components | Each component has a single, distinct responsibility. No two components should own the same domain logic or serve the same purpose. | All system capabilities from the PRD are assigned to exactly one component. Ask: "Which component handles X?" — if the answer is ambiguous, the decomposition has overlap. | | Interfaces | Each interface serves a distinct purpose. No two interfaces should expose the same operation or data shape. | All communication paths between components, external systems, and data stores are documented. Ask: "How does component A talk to component B?" — if undocumented, there's a gap. | | Data Models | Each entity owns a distinct slice of the domain. No two entities should store the same business data. | All data required by the components and interfaces is modeled. Ask: "Where is X stored?" — if unanswerable, there's a gap. | | Acceptance Criteria (EARS) | Each criterion specifies a unique system behavior. No two criteria should verify the same thing with different triggers. | Every PRD acceptance scenario has a corresponding system-level criterion. Ask: "How does the system satisfy PRD/AC-X.Y?" — if unanswerable, there's a gap. |
How to apply: During validation (step 5), explicitly run MECE checks:
.start/specs/[NNN]-[name]/solution.mdRead the PRD from specDirectory to understand requirements. Read the template from template.md. Write the template to specDirectory/solution.md. Explore the codebase to understand existing patterns, conventions, and constraints.
Invoke Skill(start:brainstorm) to evaluate technical approaches before committing to a direction.
Focus on understanding:
User selects an approach before step 3 invests in deep research.
Launch parallel specialist agents to investigate:
Depth requirement: Agent findings must go beyond naming patterns. Every finding must explain:
A finding like "use repository pattern" is incomplete. "Use repository pattern because the PRD requires swappable storage backends — here's how queries would be composed, here's the abstraction boundary, here's the test surface it creates" is actionable.
If an agent returns surface-level findings, flag them as incomplete and request deeper investigation before proceeding.
Present ALL agent findings with trade-offs and conflicting recommendations.
Update the SDD with research findings. Replace [NEEDS CLARIFICATION] markers with actual content. Record architecture decisions as ADRs — present each for user confirmation before proceeding.
Read validation.md and run the full checklist, focusing on:
MECE Validation (run first):
Mutually Exclusive — no overlap:
Collectively Exhaustive — no gaps:
Structural Validation:
Boundary validation:
Consistency verification:
Read reference/output-format.md and format the status report accordingly. AskUserQuestion: Address pending ADRs | Continue to next section | Run validation | Complete SDD
development
Vulnerability review, threat modeling, OWASP patterns, and secure coding assessment. Use when reviewing code security, designing secure systems, performing threat analysis, or validating security implementations.
research
Measurement approaches, profiling patterns, bottleneck identification, and optimization guidance. Use when diagnosing performance issues, establishing baselines, identifying bottlenecks, or planning for scale. Always measure before optimizing.
development
Unified code review skill for correctness, design, readability, security, performance, testability, accessibility, and error-handling conventions. Use when reviewing changes, enforcing quality standards, or identifying technical debt.
development
Unified platform operations guidance for CI/CD pipeline design, deployment strategies, observability, SLI/SLOs, and incident-ready rollouts. Use when building release workflows, production monitoring, or reliability controls.