Shape Spec
Creates a timestamped feature spec folder with structured plan, decisions, and references for multi-session features.
When to Use
Invoke with /shape-spec when:
- Planning a feature that will span multiple sessions
- Decisions and context should be preserved beyond the current session
- The feature requires significant research or tradeoff analysis
- You want structured handoff context for another session or developer
Process
Phase 1: Name and Scope
- Ask: "What feature are we speccing?" — get a short name
- Create the spec folder:
tasks/specs/<date>-<name>/ - Confirm scope boundaries — what's in, what's out
Phase 2: Shape the Plan
Gather structured information through conversation:
- Goal — What does "done" look like?
- Context — Why is this needed now? What triggered it?
- Approach — What's the implementation strategy?
- Files to touch — Which files need changes?
- Open questions — What needs clarification?
- Risks — What could go wrong?
Write findings to plan.md in the spec folder.
Phase 3: Capture Decisions
For each decision made during planning:
- What was decided?
- What alternatives were considered?
- Why was this option chosen?
Write to shape.md in the spec folder.
Phase 4: Gather References
Collect pointers to relevant context:
- Similar code in the codebase
- Related documentation
- Relevant skills that apply
- External references (docs, issues, examples)
Write to references.md in the spec folder.
Output Format
tasks/specs/<date>-<feature-name>/
plan.md # Implementation plan
shape.md # Decisions and context
references.md # Pointers to relevant code, docs, skillsplan.md template
# Feature: <name>
## Goal
<what does "done" look like>
## Context
<why this is needed>
## Approach
1. ...
2. ...
## Files to Touch
- `path/to/file` — what changes
## Open Questions
- ...
## Risks
- ...shape.md template
# Decisions: <feature name>
## Decision 1: <title>
**Chosen**: <what was decided>
**Alternatives**: <what else was considered>
**Rationale**: <why this option>
## Decision 2: <title>
...references.md template
# References: <feature name>
## Codebase
- `path/to/similar/code` — <why it's relevant>
## Skills
- `/skill-name` — <what it checks>
## External
- <link or reference> — <what it covers>Notes
- Spec folders are optional — simple tasks should use
tasks/todo.mddirectly - Keep spec folders lightweight — they're planning artifacts, not documentation
- Spec folders survive sessions — new sessions read them for context
- Reference active spec folders from
tasks/todo.mdinstead of duplicating the plan