Skip to content
Development
Skill

/specify-solution

Create and validate solution design documents (SDD). Use when designing architecture, defining interfaces, documenting technical decisions, analyzing system components, or working on the Solution part of a spec.md in .start/specs/.

From plugin
the-startup
58134 skills16 agents

Claude Code

$ npx -y skills add rsmdt/the-startup --skill specify-solution --agent claude-code

SKILL.md

specify-solution.SKILL.md
name: specify-solution
description: Create and validate solution design documents (SDD). Use when designing architecture, defining interfaces, documenting technical decisions, analyzing system components, or working on the Solution part of a spec.md in .start/specs/.

Persona

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.

Interface

State { specDirectory = "" // the active spec's dir: .start/specs/[NNN]-[name]/ spec = "" // path to spec.md in specDirectory: its Requirements part is the PRD, its Solution part the SDD }

The SDD's output contract — section statuses, the ADR (`ADRStatus`) shape, required fields — lives in `reference/output-format.md`, which is authoritative. Don't restate those shapes here; a second copy only drifts.

Constraints

**Always:**

  • Write the `## Solution` part of `spec.md` and keep its section structure exactly as the spec template defines it. Add the multi-component section from reference/conditional-sections.md only when the feature spans components.
  • Reference the PRD's `NFR-N` quality gates where the design realizes them — never restate them.
  • Obtain user disposition (confirm / correct / discard) on research findings before they shape the design — an unconfirmed finding is a hypothesis, not a design input. An observable finding (a product rule users could tell apart in the UI or the interface the brief or contract defines) is its own question, batched up to four per call; the rest are confirmed with the Solution approval. How the design handles malformed or hostile requests — error precedence, unknown or null fields, Origin, Host, or CSRF checks — is never observable: record the recommended choice as an ADR or assumption and confirm it with the approval.
  • Obtain user confirmation for every architecture decision (ADR) — with the Solution approval, or as its own question when it changes observable behavior.
  • Present architecture-shaping unknowns from the clarification ledger as ADR options with trade-offs — never resolve them by silent default. Cite accepted defaults as `[ASSUMPTION An]`.
  • Ensure every PRD requirement is addressable by the design.
  • Include traced walkthroughs for complex queries and conditional logic.
  • Before documenting any section: read the relevant PRD requirements, explore existing codebase patterns, and weigh the options and trade-offs.
  • Verify MECE after completing the Components, Interfaces & data, and Behavior sections.
  • Follow the Markdown block discipline (see Markdown Blocks reference): prefer fenced `mermaid` diagrams over ASCII for architecture/data-flow, `> [!IMPORTANT]` decision callouts for ADRs, and tables for comparisons — structured Markdown over flat prose. Keep a stable heading spine.

**Never:**

  • Implement code — this skill produces specifications only.
  • Leave [NEEDS CLARIFICATION] markers in completed SDDs.
  • Design beyond PRD scope (no scope creep).
  • Create components with overlapping responsibilities — if two components share domain logic, merge or re-partition.
  • Leave PRD requirements unassigned to a component — every requirement must trace to exactly one owner.

Reference Materials

  • [Focus and MECE](reference/focus-and-mece.md) — SDD focus dimensions and MECE rules for components, interfaces, data models, behavior
  • [Markdown Blocks](../specify-plan/reference/markdown-blocks.md) — Block vocabulary and document-quality discipline (shared)
  • [Spec Template](../specify-meta/template.md) — the `## Solution` part of `.start/specs/[NNN]-[name]/spec.md`
  • [Conditional Sections](reference/conditional-sections.md) — the Multi-component section, added only when the feature spans components
  • [Review Workflow](reference/review-workflow.md) — the review panel run as a dynamic workflow: lenses, verification, grading rule, report
  • [Validation](validation.md) — the full SDD checklist; step 5's review panel covers its coverage, traceability, MECE, and design-risk items
  • [Output Format](reference/output-format.md) — Status report guidelines, next-step options
  • [Output Example](examples/output-example.md) — Concrete example of expected output format

Workflow

1. Initialize Design

Read the Requirements part of `spec.md` to understand requirements. The Solution part is already scaffolded from the spec template; set `gates.solution` to `draft` and record the `gate` event. Record each ADR as a `decision` event when you write it (`node ${CLAUDE_PLUGIN_ROOT}/scripts/spec.js {specId} --event '{"kind":"decision","id":"ADR-1","title":"…","confirmed":false}'`). If the feature spans more than one component, read reference/conditional-sections.md and add that section. Explore the codebase to understand existing patterns, conventions, and constraints.

2. Explore Approaches

Evaluate technical approaches before committing to a direction:

  • Architectural alternatives (e.g., monolith vs microservices, REST vs GraphQL).
  • Technology choices and their trade-offs.
  • Key design constraints from the PRD.

Choose the recommended approach for each and record it as an ADR with its alternatives; the user confirms ADRs with the Solution approval. Ask before step 3 only about a choice that changes observable behavior, or one with no clear winner whose answer would redirect the research — batched, up to four per call.

3. Discover Patterns

Investigate, in the main context by default:

  • Architecture patterns and best practices
  • Database and data model design
  • API design and interface contracts
  • Integration approaches

**Depth requirement:** Findings must go beyond naming patterns. Every finding must explain:

  • **HOW** — the concrete mechanism, data flow, or control flow the pattern introduces
  • **WHY here** — why this pattern fits this specific context, not just that it's a best practice
  • **Implications** — what adopting it means for the codebase: complexity, d
Read more
@rsmdt
Ships withthe-startup

The Agentic Startup - A collection of Claude Code commands, skills, and agents.

58134 skills16 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
581
Star history of rsmdt/the-startup on GitHub, a chart by star-history.com

Other skills on the-startup.

analyze

analyze

Deep-research analysis of a codebase, a topic, or both. Clarifies the question, agrees the research angles with you, then runs a…

@rsmdt@rsmdtInstall Skill
archive

archive

Consolidate a completed specification into a single archived record and remove its working directory. Use as the final stage…

@rsmdt@rsmdtInstall Skill
brainstorm

brainstorm

Required first step before any creative work — creating features, building components, adding functionality, or modifying…

@rsmdt@rsmdtInstall Skill
constitution

constitution

Create or update a project constitution with governance rules. Uses discovery-based approach to generate project-specific rules.

@rsmdt@rsmdtInstall Skill
debug

debug

Systematically diagnose and resolve bugs through conversational investigation and root cause analysis

@rsmdt@rsmdtInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about specify-solution.

Which coding agents can use specify-solution?
specify-solution installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.