shape
Shape
Produces the single source of truth for a build: a versioned Blueprint. Never writes implementation code.
Sub-Tracks (Run in Order, Skip by Tier)
- Define — problem, users, scope, measurable success. Ends ambiguity that would change design.
- Design — UX direction + technical plan + task split with stable IDs (
S1-T1). - Validate — parallel research, tech/business feasibility, risks, corrections to design.
Tier Gate (Anti-Bloat)
| Tasks | Tier | Sections required |
|---|---|---|
| <=5 | Light | goals, success, tasks, acceptance (+ minimal §3/§4/§7/§8 skeleton, one line each) |
| >5 | Standard | full 8-section template |
Small bugfix never carries business validation. Pick tier from task count, do not ask.
Hard Rules
- Output is one Blueprint file (
BLUEPRINT.mdorreferences/blueprint-*.mdcopy). No code, no todos beyond the task list. - Every task has a stable ID, owner milestone (
M1), and acceptance line. - UX direction must converge to one executable option with a cited principle, not a mood board.
- Tech choice needs a primary + one fallback + one-line reason each.
- Snapshot rule (from split/babysit thinking): before any branch/worktree move,
git status+ recoverable snapshot; neveradd .,reset --hard, branch delete, or force-push without explicit approval.
Exit Gate C1 (Human)
Stop after the draft Blueprint. Ask for explicit "blueprint confirmed". Only then set Status: confirmed v1.0. Starting Forge on an unconfirmed draft is a defect.
Outputs
- Light or Standard Blueprint (see references), version
v1.0, with §8 change log initialized. - Task IDs ready for Forge projection; feasibility verdicts (pass/fail + evidence) inline.
Example (Smallest Light Task Line)
- [ ] S1-T1 Reject empty email on submit | Acceptance: `submitForm({email:''})` returns `{error:'Email required'}` | M1
One line carries ID, behavior, evidence, and milestone. If a task cannot be written this way, it is not ready for Forge.