home / skills / petekp / agent-skills / shape-up
This skill guides you through a Shape Up workflow from framing to building, delivering structured problem solving and incremental software delivery.
npx playbooks add skill petekp/agent-skills --skill shape-upReview the files below or copy the command above to add this skill to your agents.
---
name: shape-up
description: >
Guided Shape Up workflow for taking projects from idea to working software.
Orchestrates the /shaping and /breadboarding skills through a structured
process: Frame, Shape, Breadboard, Slice, Build. Works for both greenfield
(0-1) and existing projects. Use when: starting a new project or feature,
planning a significant change to an existing codebase, user says "shape this",
"let's shape", "shape up", or wants to go from idea to implementation with
structured problem/solution separation. Proactively guides each phase and
suggests next steps.
---
# Shape Up
Orchestrate the full Shape Up workflow by invoking `/shaping` and `/breadboarding`
at the right moments. Be proactive — after each step, explain what was accomplished
and suggest the next move.
## Prerequisites
Requires the `/shaping` and `/breadboarding` skills to be installed. If missing,
instruct the user to install them from https://github.com/rjs/shaping-skills
## Workflow Overview
```
Frame → Shape → Breadboard → Slice → Build
```
| Phase | Purpose | Sub-skill | Output |
|-------|---------|-----------|--------|
| **Frame** | Capture the "why" | `/shaping` | Problem + Outcome |
| **Shape** | Separate problem from solution, iterate | `/shaping` | R (requirements) + selected Shape |
| **Breadboard** | Map affordances and wiring | `/breadboarding` | Affordance tables + diagram |
| **Slice** | Cut into demoable increments | `/breadboarding` | V1..V9 vertical slices |
| **Build** | Implement slice by slice | — | Working software |
## Entry Point Detection
Determine the project type, then follow the appropriate path:
**New project (empty or new directory)?** → Start at Phase 1: Frame
**Existing project with code?** → Start at Phase 0: Map Current System
## Phase 0: Map Current System (Existing Projects Only)
Before shaping a change to an existing codebase, understand what exists.
1. Ask: "What workflow or area of the system does this change affect?"
2. Read the relevant code to understand the current implementation
3. Invoke `/breadboarding` to map the existing system as `CURRENT`:
- Trace the affected workflow through the code
- Produce affordance tables (UI + Code) for the current system
- Generate a wiring diagram showing how it works today
This `CURRENT` breadboard becomes the baseline. Proposed shapes will modify it.
**After completing:** Present the CURRENT breadboard and say:
> "Here's how the current system works. Now let's frame what we want to change.
> What problem are you trying to solve, or what outcome do you want?"
## Phase 1: Frame
Capture source material and distill it into Problem and Outcome.
1. Ask the user to describe what they want (or paste stakeholder quotes, requests, etc.)
2. Invoke `/shaping` — capture the description as Source material
3. Distill into:
- **Problem** — What's broken, what pain exists
- **Outcome** — What success looks like
4. Write to `shaping.md` in `.claude/` (or project root for standalone projects)
**After completing:** Present the frame and say:
> "Here's the frame. Does this capture the problem and desired outcome?
> Once confirmed, we'll start extracting requirements and sketching a solution."
## Phase 2: Shape
Iterate on problem (R) and solution (shapes) until a shape is selected.
1. Invoke `/shaping`
2. Offer both entry points:
- **Start from R** — extract requirements from the frame
- **Start from S** — if user already has a solution in mind, capture it as Shape A
3. Run the shaping loop:
```
Extract R → Sketch shape(s) → Fit check → Spike unknowns → Iterate
```
### Proactive Guidance During Shaping
After extracting initial R and Shape A, immediately show the fit check:
> "Here's R x A — the fit between requirements and the proposed solution."
Then suggest based on what the fit check reveals:
| Fit check shows | Suggest |
|----------------|---------|
| Flagged unknowns (warning markers) | "A2 is flagged — want me to spike it?" |
| Requirements failing | "R3 fails because [reason]. Should we revise the shape or adjust R3?" |
| All green | "The shape looks solid. Ready to breadboard?" |
| Multiple viable shapes | "Both A and B pass. Want to compare with `show me A x R` vs `B x R`?" |
### Shorthand Commands
Teach the user these as you go:
| Command | What it does |
|---------|-------------|
| `show me R x A` | Fit check: requirements against shape A |
| `show me A x R` | Rotated fit check: shape A against requirements |
| `spike A2` | Investigate a specific part in depth |
| `add R that...` | Add a new requirement |
| `sketch shape B` | Propose an alternative approach |
**Phase complete when:** A shape is selected (passes fit check, unknowns resolved).
> "Shape [X] is selected and all requirements pass. Ready to breadboard?"
## Phase 3: Breadboard
Detail the selected shape into concrete affordances with wiring.
1. Invoke `/breadboarding`
2. For existing projects: breadboard the **mixture** — existing + new affordances wired together
3. For new projects: breadboard from the shape's parts
4. Produce:
- Places table
- UI Affordances table
- Code Affordances table
- Wiring diagram (Mermaid)
**After completing:**
> "The breadboard shows [N] UI affordances, [N] code affordances across [N] places.
> Ready to slice into vertical increments?"
## Phase 4: Slice
Cut the breadboard into demoable vertical slices.
1. Invoke `/breadboarding` slicing procedure
2. Identify V1 as the minimal demoable increment
3. Layer additional capabilities as V2..V9
4. For each slice, define:
- Which affordances it includes
- What mechanism it demonstrates
- A concrete demo statement
**After completing:** Present the slice summary and say:
> "We have [N] slices. V1 demos '[demo statement]'. Want to start building V1?"
## Phase 5: Build
Implement each slice, verify it works, then move to the next.
For each slice:
1. Create an implementation plan (`V[N]-plan.md`)
2. Build the slice
3. Verify: run and test to confirm the demo works
4. Update the Big Picture document with completion status
**After each slice:**
> "V[N] is complete — [demo statement] is working. Ready for V[N+1]?"
## File Management
| File | Purpose | Location |
|------|---------|----------|
| `shaping.md` | Ground truth for R, shapes, fit checks | `.claude/` or project root |
| `spike-[topic].md` | Investigation findings | `.claude/` or project root |
| `big-picture.md` | High-level summary of entire feature | `.claude/` or project root |
| `V[N]-plan.md` | Per-slice implementation plans | `.claude/` or project root |
## Resuming a Session
When invoked with an existing `shaping.md`:
1. Read the shaping doc to understand current state
2. Invoke `/shaping` — it will detect the existing doc and show the fit check for the selected shape
3. Identify what needs attention (unsolved requirements, pending slices)
4. Suggest the next action:
- If shaping: "R4 is still undecided — want to discuss?"
- If breadboarded: "Ready to slice?"
- If sliced: "V3 is next — want to build it?"
- If building: "V2 is complete. V3 demos '[statement]' — ready?"
This skill orchestrates a guided Shape Up workflow to take projects from idea to working software. It coordinates shaping and breadboarding steps, walks you through Frame → Shape → Breadboard → Slice → Build, and proactively recommends next actions after each phase. It works for both new (0→1) and existing projects and detects the right entry point automatically.
The skill invokes the shaping and breadboarding sub-skills at the appropriate moments to capture problems, iterate on solutions, and map affordances and wiring. For existing codebases it first maps the current system, then shapes changes against that baseline. After breadboarding it slices the work into demoable vertical increments and guides implementation slice by slice, producing the key artifacts and update prompts at each handoff.
What if the shaping or breadboarding sub-skills are missing?
I will tell you which sub-skill is required and provide the installation source so you can add them before continuing.
Where does the workflow start for existing projects?
For existing codebases the workflow starts with 'Map Current System' to produce a CURRENT breadboard that becomes the baseline for proposed shapes.