with one click
ds-spec
Convert a description into a structured specification.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Convert a description into a structured specification.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Design a target architecture for a new system — module boundaries, dependency rules, seams, and build order — from its requirements. Reports a blueprint; changes nothing.
Analyze an existing codebase's architecture and produce a sequenced refactoring plan — assess module boundaries, dependency structure, and layering, then lay out ordered, risk-tagged steps. Language-agnostic. Reports a plan; changes nothing.
Turn a goal or another command's output into an ordered task roadmap.
Find the root cause of a failure with the scientific method — reproduce, isolate, fix, then prove it.
Interview the user relentlessly about a plan or design until reaching shared understanding.
Run an extremely strict maintainability + single-source-of-truth review of code changes — abstraction quality, file sprawl, spaghetti-condition growth, and duplicate/competing implementations. Reports findings by default; `--fix` applies the mechanical, unambiguous ones — structural/code-judo restructurings rest on judgment and stay reported.
| name | ds-spec |
| description | Convert a description into a structured specification. |
| disable-model-invocation | true |
When invoked, gather information and produce a spec document that defines WHAT the system does, not HOW it is implemented. The spec becomes the input to planning — hand it to /ds-roadmap to sequence the work.
If the user has provided a description: proceed directly. If not: ask three focused questions, then produce the spec without further prompting.
Questions (ask only what is missing):
Produce a document with these sections:
# Specification: <name>
## Problem
One paragraph. What problem does this solve and for whom?
## Scope
What is in scope. What is explicitly out of scope.
## Users
Who uses this. What they need to accomplish. No personas — just roles and goals.
## Functional Requirements
Numbered list. Each requirement is a verifiable statement.
FR-1: The system shall <verb> <object> when <condition>.
## Non-Functional Requirements
NFR-1: Latency: <P99 target> under <load description>
NFR-2: Scale: <concurrent users or requests/sec>
NFR-3: Availability: <uptime target>
NFR-4: Data retention: <policy>
## Interfaces
- API endpoints or CLI commands (names and purpose, not full schema)
- External systems this integrates with
- Data formats at boundaries
## Constraints
- Language/runtime (from language profile if set)
- Infrastructure (from project context if set)
- Forbidden approaches
## Acceptance Criteria
Numbered list. Each item is a pass/fail test that can be run.
AC-1: Given <state>, when <action>, then <outcome>.
Coverage — map every FR to the AC(s) that verify it. An uncovered FR is a spec defect:
FR-1 → AC-1, AC-2
FR-2 → AC-3
## Open Questions
Questions that must be answered before implementation begins.
FR-N.a, FR-N.b).If a language profile is active, add a "Technical Profile" section:
Write the spec to .project/SPEC.md if .project/ exists, else SPEC.md in the current directory; then display it inline for review.
Ask: "Should I proceed to planning with /ds-roadmap?" after displaying the spec.