Spec Shaping
Transform product ideas into well-scoped specs and actionable sprint plans. This skill supports two complementary modes:
- Interview mode: Probe the problem space until a clear, narrow spec emerges
- Sprint breakdown mode: Decompose a spec into atomic tasks and demoable sprints
When to Use
- User has a rough product plan or idea that needs scoping
- User needs help thinking through implementation details, UI/UX, or tradeoffs
- User has a spec ready to break into sprints and tasks
- User wants to validate whether a problem is well-framed before building
Document Management
Treat specs and sprint plans as living documents. Use the following standards to ensure consistency and "freshness".
1. File Operations (Search, Location, Updates)
- Search First: Before creating a new file, search for existing specs for this project.
- Update vs. New:
- Update: If the "Identity" of the project is the same (same core problem, just refining/pivoting implementation), update the existing spec.
- Action: Rename file to today's date + update Metadata.
- New: If the problem definition has fundamentally changed, or the solution direction is a complete "burn it down" restart, create a new spec.
- Output Location (Adaptive):
- Scan for:
specs/, planning/, docs/specs/, product/.
- If found: Use that directory.
- Default: Create and use
specs/.
- Vaults: If external, check
agents.md/claude.md for overrides.
2. File Standards (Naming, Metadata, Content)
- Naming:
[Semantic name] - [YYYY-MM-DD].md
- Specs:
Checkout flow spec - 2024-03-25.md
- Sprints:
Checkout flow sprints - 2024-03-25.md
- Frontmatter:
---
status: [Planned | In Progress | Completed]
last: [YYYY-MM-DD]
---
- Context Header (Required):
> [!NOTE] > **Context**: [Why was this updated? e.g. "Pivot to V2"] > _This document reflects the product thinking at the time of the last update._
- Changelog: Keep a
## Changelog at the bottom. Initialize if missing. Only log significant changes (e.g. scope pivots). Ignore trivial edits.
Interview Mode
Read the plan file and interview the user in detail about technical implementation, UI & UX, concerns, tradeoffs, etc. Make sure questions are not obvious.
Interview Principles
- Narrow before expanding: Push to narrow the problem until it can be described in one clear sentence. Vague scope ("build a calendar") leads to endless shaping. Precise scope ("show empty time slots between existing events") enables real solutions.
- Surface complexity early: Ask "what could make this harder than it sounds?" and "where are the hidden dependencies?" The goal is to reveal time bombs before they're in the middle of a build, not after.
- Distinguish understanding from justification: Watch for the anti-pattern where someone has already decided what to build and is looking for data to justify it. Ask why this problem matters before discussing solutions.
- Probe the adjacent user: If this is user-facing, ask who the next user is — the one just outside the current target. What would need to be different for them?
Interview Process
Be very in-depth. Continue interviewing until you're confident the problem is well-framed and the key risks are surfaced. Then write the spec to the file.
A good spec should be shapeable— someone should be able to read it and describe the solution in ≤9 major components. If they can't, the problem isn't narrow enough yet.
Sprint Breakdown Mode
Read the spec file and break the project down into sprints and tasks.
Core Principles
- Atomic tasks: Every task should be an atomic, committable piece of work that can be completed, reviewed, and merged independently.
- Compositional clarity: Small atomic tasks should compose up into a clear goal for the sprint. If the relationship between tasks and the sprint goal isn't obvious, add a brief "Sprint Goal" statement.
- Demoable sprints: Every sprint should result in a demoable piece of software that can be run, tested, and built on top of previous sprints.
- Clear validation: Each task must include explicit validation criteria — tests where applicable, or another concrete verification method (e.g., "Validation: API returns 200 with expected payload", "Validation: Component renders correctly in Storybook").
- Dependencies first: Order tasks so dependencies are completed before the work that relies on them.
- Fixed time, variable scope: Sprints are time-boxed appetites, not scope commitments. If something doesn't fit, shape it smaller — don't extend the timeline.
- Budget for understanding: Reserve ~10-20% of sprint capacity for de-risking future work — spikes, research, or validation that will speed up the next sprint.
Output Structure
Structure your output so it remains malleable as the project evolves:
- Stable identifiers: Give tasks IDs (T1, T2, etc.) so they can be referenced and reshuffled between sprints without losing context.
- Traceability: Link tasks back to spec sections so changes to the spec can be traced to affected tasks.
- Visible dependencies: Make it clear which tasks depend on others.
Adapt the specific format to what makes sense for this project — a simple list may suffice for small projects, while complex projects might benefit from a task registry table with sprint groupings. Use your judgment.
Sprint Breakdown Process
Read the spec thoroughly. Identify natural section boundaries for traceability.
Create the task registry first — focus on atomicity and dependencies.
Group tasks into sprints, ensuring each sprint is demoable.
Self-review with these lenses:
- Are any tasks too large to complete in a single focused session?
- Are there missing or circular dependencies?
- Is each validation criteria concrete and verifiable?
- Could a developer pick up any task and know exactly what "done" looks like?
- Does each sprint have a clear demo scenario?
- Shaping smell test: Can you describe the entire sprint in ≤9 major scopes? If not, the spec may need more narrowing before breaking it into tasks.
Revise based on your review.
Write the final sprint plan to a markdown file alongside the spec (e.g., Checkout sprints - 2024-03-25.md).
Optional: Subagent Review
For large or complex specs with many interdependencies, consider using a subagent to review the sprint plan with fresh context. This provides a "second set of eyes" unpolluted by the main conversation. The subagent should:
- Review the sprint plan for gaps, circular dependencies, or tasks that are too large
- Suggest improvements to task scoping or sprint groupings
- Flag any validation criteria that are vague or unverifiable
Use your judgment — this is most valuable for hairy, high-stakes specs where a deeper audit is worth the overhead.
Explicitly Out of Scope
- Time estimates: Do not estimate duration. The human will layer in timeline context.
- Resource allocation: Do not assign tasks to people or roles unless explicitly requested and given enough context to do so.
1---2name: spec-shaping3description: Shape product ideas into actionable specs and sprint plans. Use when interviewing about a product plan, breaking specs into sprints, or turning vague ideas into well-scoped work.4---5
6# Spec Shaping
7
8Transform product ideas into well-scoped specs and actionable sprint plans. This skill supports two complementary modes:
9
101. **Interview mode**: Probe the problem space until a clear, narrow spec emerges
112. **Sprint breakdown mode**: Decompose a spec into atomic tasks and demoable sprints
12
13## When to Use
14
15- User has a rough product plan or idea that needs scoping
16- User needs help thinking through implementation details, UI/UX, or tradeoffs
17- User has a spec ready to break into sprints and tasks
18- User wants to validate whether a problem is well-framed before building
19
20## Document Management
21
22Treat specs and sprint plans as **living documents**. Use the following standards to ensure consistency and "freshness".
23
24### 1. File Operations (Search, Location, Updates)
25
26- **Search First**: Before creating a new file, search for existing specs for this project.
27- **Update vs. New**:
28 - **Update**: If the "Identity" of the project is the same (same core problem, just refining/pivoting implementation), **update** the existing spec.
29 - **Action**: Rename file to today's date + update Metadata.
30 - **New**: If the problem definition has fundamentally changed, or the solution direction is a complete "burn it down" restart, create a **new** spec.
31- **Output Location (Adaptive)**:
32 1. Scan for: `specs/`, `planning/`, `docs/specs/`, `product/`.
33 2. If found: Use that directory.
34 3. Default: Create and use `specs/`.
35 4. **Vaults**: If external, check `agents.md`/`claude.md` for overrides.
36
37### 2. File Standards (Naming, Metadata, Content)
38
39- **Naming**: `[Semantic name] - [YYYY-MM-DD].md`
40 - **Specs**: `Checkout flow spec - 2024-03-25.md`
41 - **Sprints**: `Checkout flow sprints - 2024-03-25.md`
42- **Frontmatter**:
43 ```yaml
44 ---
45 status: [Planned | In Progress | Completed]
46 last: [YYYY-MM-DD]
47 ---
48 ```
49- **Context Header** (Required):
50 ```markdown
51 > [!NOTE] > **Context**: [Why was this updated? e.g. "Pivot to V2"] > _This document reflects the product thinking at the time of the last update._
52 ```
53- **Changelog**: Keep a `## Changelog` at the bottom. **Initialize** if missing. Only log **significant** changes (e.g. scope pivots). Ignore trivial edits.
54
55---
56
57## Interview Mode
58
59Read the plan file and interview the user in detail about technical implementation, UI & UX, concerns, tradeoffs, etc. Make sure questions are not obvious.
60
61### Interview Principles
62
631. **Narrow before expanding**: Push to narrow the problem until it can be described in one clear sentence. Vague scope ("build a calendar") leads to endless shaping. Precise scope ("show empty time slots between existing events") enables real solutions.
642. **Surface complexity early**: Ask "what could make this harder than it sounds?" and "where are the hidden dependencies?" The goal is to reveal time bombs before they're in the middle of a build, not after.
653. **Distinguish understanding from justification**: Watch for the anti-pattern where someone has already decided what to build and is looking for data to justify it. Ask why this problem matters _before_ discussing solutions.
664. **Probe the adjacent user**: If this is user-facing, ask who the _next_ user is — the one just outside the current target. What would need to be different for them?
67
68### Interview Process
69
70Be very in-depth. Continue interviewing until you're confident the problem is well-framed and the key risks are surfaced. Then write the spec to the file.
71
72A good spec should be **shapeable**— someone should be able to read it and describe the solution in ≤9 major components. If they can't, the problem isn't narrow enough yet.
73
74---
75
76## Sprint Breakdown Mode
77
78Read the spec file and break the project down into sprints and tasks.
79
80### Core Principles
81
821. **Atomic tasks**: Every task should be an atomic, committable piece of work that can be completed, reviewed, and merged independently.
832. **Compositional clarity**: Small atomic tasks should compose up into a clear goal for the sprint. If the relationship between tasks and the sprint goal isn't obvious, add a brief "Sprint Goal" statement.
843. **Demoable sprints**: Every sprint should result in a demoable piece of software that can be run, tested, and built on top of previous sprints.
854. **Clear validation**: Each task must include explicit validation criteria — tests where applicable, or another concrete verification method (e.g., "Validation: API returns 200 with expected payload", "Validation: Component renders correctly in Storybook").
865. **Dependencies first**: Order tasks so dependencies are completed before the work that relies on them.
876. **Fixed time, variable scope**: Sprints are time-boxed _appetites_, not scope commitments. If something doesn't fit, shape it smaller — don't extend the timeline.
887. **Budget for understanding**: Reserve ~10-20% of sprint capacity for de-risking future work — spikes, research, or validation that will speed up the _next_ sprint.
89
90### Output Structure
91
92Structure your output so it remains malleable as the project evolves:
93
94- **Stable identifiers**: Give tasks IDs (T1, T2, etc.) so they can be referenced and reshuffled between sprints without losing context.
95- **Traceability**: Link tasks back to spec sections so changes to the spec can be traced to affected tasks.
96- **Visible dependencies**: Make it clear which tasks depend on others.
97
98Adapt the specific format to what makes sense for this project — a simple list may suffice for small projects, while complex projects might benefit from a task registry table with sprint groupings. Use your judgment.
99
100### Sprint Breakdown Process
101
1021. Read the spec thoroughly. Identify natural section boundaries for traceability.
103
1042. Create the task registry first — focus on atomicity and dependencies.
105
1063. Group tasks into sprints, ensuring each sprint is demoable.
107
1084. Self-review with these lenses:
109
110 - Are any tasks too large to complete in a single focused session?
111 - Are there missing or circular dependencies?
112 - Is each validation criteria concrete and verifiable?
113 - Could a developer pick up any task and know exactly what "done" looks like?
114 - Does each sprint have a clear demo scenario?
115 - **Shaping smell test**: Can you describe the entire sprint in ≤9 major scopes? If not, the spec may need more narrowing before breaking it into tasks.
116
1175. Revise based on your review.
118
1196. Write the final sprint plan to a markdown file alongside the spec (e.g., `Checkout sprints - 2024-03-25.md`).
120
121### Optional: Subagent Review
122
123For large or complex specs with many interdependencies, consider using a subagent to review the sprint plan with fresh context. This provides a "second set of eyes" unpolluted by the main conversation. The subagent should:
124
125- Review the sprint plan for gaps, circular dependencies, or tasks that are too large
126- Suggest improvements to task scoping or sprint groupings
127- Flag any validation criteria that are vague or unverifiable
128
129Use your judgment — this is most valuable for hairy, high-stakes specs where a deeper audit is worth the overhead.
130
131### Explicitly Out of Scope
132
133- **Time estimates**: Do not estimate duration. The human will layer in timeline context.
134- **Resource allocation**: Do not assign tasks to people or roles unless explicitly requested and given enough context to do so.