| name | shape-up |
| description | Co-write a top-down design spec for software projects. Shape vague ideas into clear specs by working layer-by-layer — vision, scope, building blocks, then detail. Use when user wants to design a system, plan a project, write a design spec, or needs to see the big picture before diving into details. Use before /grill-design to prevent losing focus on large projects. |
Shape Up — Top-Down Design Spec
Shape a vague idea into a clear design spec by working top-down: start from the big picture, confirm alignment at each layer, then go deeper. This is NOT an interview — it's collaborative writing where the agent drafts and the user shapes.
When to Use
- User says "shape up", "design spec", "let's design", "plan a system", "I need to think through this"
- User has a large or ambiguous project and needs to see the big picture first
- Before
/grill-design — when the scope isn't clear enough to grill on details yet
Core Principle
One layer at a time. Confirm before going deeper. Never jump ahead.
If the user can't answer something at the current layer, mark it [TBD] and move on. Don't drill down into unknowns — that's how people lose focus.
Workflow
Layer 1: Vision
Ask the user to describe what they're building in plain language. Then co-write a short vision block:
- What — one sentence describing the thing
- Why — what problem it solves, who it's for
- Done looks like — how you'd know it succeeded
Draft this as a short block (5-8 lines max). Show it to the user. Adjust until they say it's right.
Do NOT ask about tech stack, architecture, or implementation yet.
Layer 2: Scope
Now that the vision is clear, co-write the scope:
- In scope — what this project will do (bullet list)
- Out of scope — what it explicitly won't do (bullet list)
- Constraints — timeline, tech, team, budget, dependencies
- Users / Actors — who interacts with it
Draft and show. The user cuts, adds, moves things between in/out scope. Keep going until scope feels tight.
If scope is getting too big, say so: "This feels like it's growing — want to split it?"
Layer 3: Building Blocks
Break the in-scope work into 3-7 big blocks. Each block is a major component, feature area, or workstream. For each block:
- Name — short label
- Purpose — one line
- Depends on — which other blocks it needs
Show as a simple list or diagram. The user rearranges, renames, merges, splits. This is the skeleton — no detail yet.
If a block is unclear, mark it [TBD] and keep going. Don't stop the whole flow for one unknown.
Layer 4: Draft Spec
For each block (in order the user chooses), co-write a short spec:
- What it does
- Key decisions or trade-offs
- Open questions
Each block spec should be half a page to one page max. If it's getting longer, it probably needs to be split into smaller blocks — go back to Layer 3.
The user can stop at any point and say "that's enough for now." Respect that. Not every block needs a spec in the first pass.
Output
Write the spec to a file. The user decides the filename and location. If the user doesn't specify, suggest design-spec.md in the current directory.
The spec can have multiple drafts — e.g., draft/phase-1.md, draft/final-spec.md. Follow the user's lead on structure.
How to Co-Write (not interview)
- Draft first, ask second. Don't open with a list of questions. Write a rough version based on what you know, then let the user correct it.
- Show, don't ask. Instead of "what should the scope be?", write a scope and say "this is what I'm hearing — what's wrong?"
- Keep momentum. If the user gives a vague answer, write your best interpretation and move on. They'll correct you if it's wrong.
- Short blocks. Each layer's output should fit on one screen. If you're writing more than that, you've gone too deep.
What NOT to Do
- Don't start with 10 clarifying questions (that's grill-design's job)
- Don't discuss implementation details in Layer 1-2
- Don't expand
[TBD] items unless the user asks
- Don't write a full spec in one shot — layer by layer
- Don't keep going deeper if the user hasn't confirmed the current layer