home / skills / petekp / claude-code-setup / shape-up

shape-up skill

/skills/shape-up

This skill guides you through the Shape Up workflow from framing to building, proactively outlining next steps and producing working software.

npx playbooks add skill petekp/claude-code-setup --skill shape-up

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.0 KB
---
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?"

Overview

This skill guides teams through the full Shape Up workflow to take ideas to working software: Frame, Shape, Breadboard, Slice, Build. It orchestrates the /shaping and /breadboarding skills at the right moments, summarizes progress after each step, and suggests concrete next actions. It works for both greenfield projects and changes to existing codebases, adapting the entry point based on project state.

How this skill works

The skill detects whether you’re starting from an empty/new directory or an existing codebase and chooses the appropriate entry point (Frame or Map Current System). It invokes /shaping to capture source material, distill Problems and Outcomes, extract requirements, and iterate on shapes. It invokes /breadboarding to produce affordance tables, wiring diagrams, and to slice the solution into demoable vertical increments, then guides the build phase slice-by-slice.

When to use it

  • Starting a new project or feature and you want a structured plan from idea to demo.
  • Planning a significant change to an existing codebase and you need to map current behavior first.
  • You want to separate problem discovery from solution design before committing code.
  • You say: "shape this", "let's shape", "shape up", or request a guided implementation path.
  • You need developer-friendly artifacts: shaping.md, breadboards, wiring diagrams, and slice plans.

Best practices

  • Begin by framing the problem with stakeholder quotes or acceptance criteria to create a clear Outcome.
  • For existing projects, always run Phase 0 to map the CURRENT system before proposing modifications.
  • Use the fit-check loop (R x A) to surface unknowns, then spike unknowns before locking a shape.
  • Keep V1 minimal and demoable; treat slices as vertical increments that each produce a working demo.
  • Write and store shaping, spike, big-picture, and per-slice plan documents in the project for continuity.

Example use cases

  • Create a new product MVP: Frame the market need, shape approaches, breadboard UI/code affordances, and produce a V1 demo.
  • Add a major feature to a legacy app: Map current workflows, breadboard the mixture of old+new affordances, then slice for incremental rollout.
  • Resolve stakeholder debates: Capture source material, extract requirements, and run fit checks to converge on a selected shape.
  • Plan a risky technical change: Identify unknowns in shaping, run spikes, and validate feasibility before implementation.

FAQ

What if /shaping or /breadboarding aren't installed?

I will detect missing sub-skills and instruct you how to install them before proceeding.

Where are artifacts stored?

Shaping, spike, big-picture, and per-slice plan files are written into the project (or .claude/), so they travel with your codebase.

Can I resume a previous session?

Yes. If a shaping document exists, I read it, show the current fit check and pending work, and propose the next action.