Create Spec
Guide a collaborative discussion to explore a project idea, then synthesize the conversation into a comprehensive specification at .turbo/specs/<slug>.md.
Task Tracking
At the start, use TaskCreate to create a task for each step:
- Capture the vision and pick a slug
- Deep-dive discussion
- Draft the spec
- Run
/review-spec skill
- Run
/evaluate-findings skill
- Run
/apply-findings skill
- Review and finalize
Step 1: Capture the Vision and Pick a Slug
Absorb whatever the user has provided — a sentence, a paragraph, a brain dump. Do not interrupt or ask questions yet. Restate the vision back in two or three sentences to confirm understanding.
Pick a slug for the spec file derived from the project or feature name:
- Lowercase
- Replace non-alphanumeric characters with hyphens
- Collapse consecutive hyphens
- Trim leading and trailing hyphens
- Truncate to 40 characters at a word boundary
Example: "Photo Sorter v2" → photo-sorter-v2. The user may pass an explicit slug; if so, honor it.
If .turbo/specs/<slug>.md already exists, use AskUserQuestion to ask whether to overwrite, append a numeric suffix (-2, -3, ...), or pick a different slug.
State the chosen slug and the resulting spec path before continuing.
Then use AskUserQuestion to ask 1-4 focused opening questions targeting the biggest unknowns. Skip anything the user already answered. Prioritize from:
- What problem does this solve, and for whom?
- Is this greenfield or does existing code/infrastructure exist?
- Are there strong technology preferences or constraints?
- What does the MVP look like versus the full vision?
- Are there hard deadlines, budget limits, or team size constraints?
Step 2: Deep-Dive Discussion
Explore the project through multi-turn conversation. Cover these categories over the course of the discussion — track coverage internally but do not present them as a rigid checklist. Follow the user's energy and weave topics in naturally.
| Category |
What to explore |
| Users and personas |
Who uses this? Goals, pain points, technical sophistication |
| Core features |
Primary capabilities and user-facing workflows |
| Architecture |
Client/server split, monolith vs services, real-time needs, offline support |
| Tech stack |
Languages, frameworks, databases, hosting — preferences and constraints |
| Data model |
Key entities, relationships, storage strategy |
| Integrations |
Third-party APIs, auth providers, external data sources |
| Non-functional requirements |
Performance, security, accessibility, i18n, compliance |
| MVP scope |
What ships first? What is explicitly deferred? |
| Open questions |
Unknowns needing research, prototyping, or external input |
Discussion Guidelines
- Use
AskUserQuestion to ask one or two questions at a time, not a wall of questions. Use options with descriptions to frame trade-offs and offer concrete suggestions. Use multiSelect when choices are not mutually exclusive.
- When the user gives a short answer, probe deeper before moving on
- Offer concrete suggestions and trade-off analysis — be a collaborator, not an interviewer
- If the user says "you decide" or "what do you recommend", make a clear recommendation with reasoning
- When all categories have sufficient depth or the user signals readiness, confirm before moving to drafting
Step 3: Draft the Spec
Synthesize the entire discussion into .turbo/specs/<slug>.md using the slug picked in Step 1. Structure the document organically based on what emerged in conversation:
- Include only sections with real substance — no placeholder filler
- Use concrete details from the discussion, not vague generalizations
- Where the user deferred a decision, capture it in an Open Questions section
- Where recommendations were accepted, state them as decisions with brief rationale
- Adapt the structure to the project — a CLI tool spec looks different from a SaaS platform spec
- Trace every specified component (data model, API, utility, service) to at least one consumer in the spec. If a component exists only to "support future work," either spec the future work concretely or defer the component.
Create the .turbo/specs/ directory if it does not exist. Accept a different output path if the user provides one.
Step 4: Run /review-spec Skill
After drafting the spec and before presenting it to the user, run the /review-spec skill with the full spec text.
Step 5: Run /evaluate-findings Skill
Run the /evaluate-findings skill on the combined review findings from Step 4.
Step 6: Run /apply-findings Skill
Run the /apply-findings skill on the evaluated findings to incorporate accepted changes into the spec.
Step 7: Review and Finalize
Present the draft to the user. Use AskUserQuestion to offer three paths:
- Approve — spec is final
- Revise — user specifies sections to change; apply edits and re-present
- Discuss more — return to Step 2 for additional exploration, then re-draft
After approval:
The spec is ready at the resolved spec path. To break it into implementation prompts, run /create-prompt-plan.
Rules
- Never skip Step 2 — even with extensive initial context, confirm understanding and probe gaps
- The spec is the only output — do not create code, scaffolding, or other project files
- If the project is trivially small (single-file script, simple config), say so and suggest skipping the spec process
1---2name: create-spec-23description: Guide a collaborative discussion that produces a comprehensive specification document at .turbo/specs/<slug>.md. Use when the user asks to "create a spec", "write a spec", "discuss a project plan", "spec out a project", "design a system", "let's plan this project", "help me scope this", "architect a solution", or "let's discuss before building".4---5
6# Create Spec
7
8Guide a collaborative discussion to explore a project idea, then synthesize the conversation into a comprehensive specification at `.turbo/specs/<slug>.md`.
9
10## Task Tracking
11
12At the start, use `TaskCreate` to create a task for each step:
13
141. Capture the vision and pick a slug
152. Deep-dive discussion
163. Draft the spec
174. Run `/review-spec` skill
185. Run `/evaluate-findings` skill
196. Run `/apply-findings` skill
207. Review and finalize
21
22## Step 1: Capture the Vision and Pick a Slug
23
24Absorb whatever the user has provided — a sentence, a paragraph, a brain dump. Do not interrupt or ask questions yet. Restate the vision back in two or three sentences to confirm understanding.
25
26Pick a slug for the spec file derived from the project or feature name:
27
28- Lowercase
29- Replace non-alphanumeric characters with hyphens
30- Collapse consecutive hyphens
31- Trim leading and trailing hyphens
32- Truncate to 40 characters at a word boundary
33
34Example: "Photo Sorter v2" → `photo-sorter-v2`. The user may pass an explicit slug; if so, honor it.
35
36If `.turbo/specs/<slug>.md` already exists, use `AskUserQuestion` to ask whether to overwrite, append a numeric suffix (`-2`, `-3`, ...), or pick a different slug.
37
38State the chosen slug and the resulting spec path before continuing.
39
40Then use `AskUserQuestion` to ask 1-4 focused opening questions targeting the biggest unknowns. Skip anything the user already answered. Prioritize from:
41
42- What problem does this solve, and for whom?
43- Is this greenfield or does existing code/infrastructure exist?
44- Are there strong technology preferences or constraints?
45- What does the MVP look like versus the full vision?
46- Are there hard deadlines, budget limits, or team size constraints?
47
48## Step 2: Deep-Dive Discussion
49
50Explore the project through multi-turn conversation. Cover these categories over the course of the discussion — track coverage internally but do not present them as a rigid checklist. Follow the user's energy and weave topics in naturally.
51
52| Category | What to explore |
53|---|---|
54| **Users and personas** | Who uses this? Goals, pain points, technical sophistication |
55| **Core features** | Primary capabilities and user-facing workflows |
56| **Architecture** | Client/server split, monolith vs services, real-time needs, offline support |
57| **Tech stack** | Languages, frameworks, databases, hosting — preferences and constraints |
58| **Data model** | Key entities, relationships, storage strategy |
59| **Integrations** | Third-party APIs, auth providers, external data sources |
60| **Non-functional requirements** | Performance, security, accessibility, i18n, compliance |
61| **MVP scope** | What ships first? What is explicitly deferred? |
62| **Open questions** | Unknowns needing research, prototyping, or external input |
63
64### Discussion Guidelines
65
66- Use `AskUserQuestion` to ask one or two questions at a time, not a wall of questions. Use options with descriptions to frame trade-offs and offer concrete suggestions. Use `multiSelect` when choices are not mutually exclusive.
67- When the user gives a short answer, probe deeper before moving on
68- Offer concrete suggestions and trade-off analysis — be a collaborator, not an interviewer
69- If the user says "you decide" or "what do you recommend", make a clear recommendation with reasoning
70- When all categories have sufficient depth or the user signals readiness, confirm before moving to drafting
71
72## Step 3: Draft the Spec
73
74Synthesize the entire discussion into `.turbo/specs/<slug>.md` using the slug picked in Step 1. Structure the document organically based on what emerged in conversation:
75
76- Include only sections with real substance — no placeholder filler
77- Use concrete details from the discussion, not vague generalizations
78- Where the user deferred a decision, capture it in an Open Questions section
79- Where recommendations were accepted, state them as decisions with brief rationale
80- Adapt the structure to the project — a CLI tool spec looks different from a SaaS platform spec
81- Trace every specified component (data model, API, utility, service) to at least one consumer in the spec. If a component exists only to "support future work," either spec the future work concretely or defer the component.
82
83Create the `.turbo/specs/` directory if it does not exist. Accept a different output path if the user provides one.
84
85## Step 4: Run `/review-spec` Skill
86
87After drafting the spec and before presenting it to the user, run the `/review-spec` skill with the full spec text.
88
89## Step 5: Run `/evaluate-findings` Skill
90
91Run the `/evaluate-findings` skill on the combined review findings from Step 4.
92
93## Step 6: Run `/apply-findings` Skill
94
95Run the `/apply-findings` skill on the evaluated findings to incorporate accepted changes into the spec.
96
97## Step 7: Review and Finalize
98
99Present the draft to the user. Use `AskUserQuestion` to offer three paths:
100
101- **Approve** — spec is final
102- **Revise** — user specifies sections to change; apply edits and re-present
103- **Discuss more** — return to Step 2 for additional exploration, then re-draft
104
105After approval:
106
107> The spec is ready at the resolved spec path. To break it into implementation prompts, run `/create-prompt-plan`.
108
109## Rules
110
111- Never skip Step 2 — even with extensive initial context, confirm understanding and probe gaps
112- The spec is the only output — do not create code, scaffolding, or other project files
113- If the project is trivially small (single-file script, simple config), say so and suggest skipping the spec process