Shape
Develop ideas into bounded, buildable specifications.
Contents
- Purpose
- CRITICAL: Interview Extensively
- Process
- Spec Lifecycle
- Strategic Tensions
- Guardrails
- Related Skills
Input: $ARGUMENTS
Purpose
Shaping transforms raw ideas into well-defined SPECs with clear problem statement, solution direction (not blueprint), hard boundaries, identified rabbit holes, and enough direction without too much constraint.
Evaluates ideas against strategic context (VISION, STRATEGY, ARCHITECTURE) to ensure alignment.
CRITICAL: Interview Extensively
Unlike /loaf:idea (quick capture), shaping requires deep understanding. Ask about edge cases, conflicts with existing patterns, hidden complexity, and scope boundaries. Use AskUserQuestion throughout.
Process
Step 1: Parse Input
$ARGUMENTS should reference an idea file, problem description, or requirement area. If unclear, ask what to shape.
Step 2: Gather Strategic Context
Read in order: VISION.md, STRATEGY.md, ARCHITECTURE.md, existing specs.
Step 3: Evaluate Strategic Fit
| Question | Source |
|---|---|
| Does this advance our vision? | VISION.md |
| Does this serve our target personas? | STRATEGY.md |
| Does this fit our technical constraints? | ARCHITECTURE.md |
| Does this conflict with existing work? | docs/specs/ |
If misaligned: surface the tension, adjust idea, or note for /loaf:reflect later.
Step 4: Interview for Shaping
Define boundaries, not tasks:
- Core problem, in/out scope, rabbit holes, no-gos
- Test conditions, appetite, circuit breaker
- Risks and open questions
Step 5: Draft the Spec
Create spec following spec template.
Step 6: Generate Spec ID
ls docs/specs/SPEC-*.md docs/specs/archive/SPEC-*.md 2>/dev/null | \
grep -oE 'SPEC-[0-9]+' | sort -t- -k2 -n | tail -1 | awk -F- '{print $2 + 1}'
If none exist, start with SPEC-001.
Step 7: Present for Approval
Present full spec. Do NOT create spec file without explicit approval. User may adjust scope, change appetite, add constraints, request splitting, or decide not to proceed.
Step 8: Create Spec File
After approval: create docs/specs/SPEC-{id}-{slug}.md, update idea file status if applicable.
Spec Lifecycle
drafting -> approved -> implementing -> complete -> archived
Splitting Large Specs
When too big for appetite, split into sub-specs. Each has its own appetite, can be worked independently, and references the parent.
Strategic Tensions
Don't fix strategy during shaping. Instead:
- Note the tension in the spec's "Strategic Alignment" section
- Document what might need to change
- Proceed with shaping (or pause if blocking)
- Use
/loaf:reflectafter implementation to evolve strategy
Guardrails
- Interview extensively -- not quick capture
- Evaluate strategic fit -- don't shape in a vacuum
- Respect appetite -- fixed time, variable scope
- Document rabbit holes -- prevent scope creep
- Clear test conditions -- observable outcomes
- Circuit breaker -- plan for running out of time
- Get approval -- don't create without confirmation
- Note tensions, don't fix -- strategy evolves via /loaf:reflect
Related Skills
- idea -- Quick capture (feeds into /loaf:shape)
- brainstorm -- Deep thinking before shaping
- breakdown -- Decompose spec into work items
- implement -- Start implementation session
- reflect -- Update strategy after shipping
