shaping
Use this methodology when collaboratively shaping a solution with the user - iterating on problem definition (requirements) and solution options (shapes).
Install
mkdir -p .claude/skills/shaping && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5800" && unzip -o skill.zip -d .claude/skills/shaping && rm skill.zipInstalls to .claude/skills/shaping
About this skill
Shaping Methodology
A structured approach for collaboratively defining problems and exploring solution options.
Multi-Level Consistency (Critical)
Shaping produces documents at different levels of abstraction. Truth must stay consistent across all levels.
The Document Hierarchy (high to low)
- Big Picture — highest level, designed for quick context acquisition
- Shaping doc — ground truth for R's, shapes, parts, fit checks
- Slices doc — ground truth for slice definitions, breadboards
- Individual slice plans (V1-plan, etc.) — ground truth for implementation details
The Principle
Each level summarizes or provides a view into the level(s) below it. Lower levels contain more detail; higher levels are designed views that help acquire context quickly.
Changes ripple in both directions:
- Change at high level → trickles down: If you flag a part as ⚠️ in the Big Picture, update the shaping doc's parts table too.
- Change at low level → trickles up: If a slice plan reveals a new mechanism or changes the scope of a slice, the Slices doc and Big Picture must reflect that.
The Practice
Whenever making a change:
- Identify which level you're touching
- Ask: "Does this affect documents above or below?"
- Update all affected levels in the same operation
- Never let documents drift out of sync
The Big Picture isn't a static snapshot — it's a live summary that must stay connected to its source documents. The system only works if the levels are consistent with each other.
Starting a Session
When kicking off a new shaping session, offer the user both entry points:
- Start from R (Requirements) — Describe the problem, pain points, or constraints. Build up requirements and let shapes emerge.
- Start from S (Shapes) — Sketch a solution already in mind. Capture it as a shape and extract requirements as you go.
There is no required order. Shaping is iterative — R and S inform each other throughout.
Working with an Existing Shaping Doc
When the shaping doc already has a selected shape:
- Display the fit check for the selected shape only — Show R × [selected shape] (e.g., R × F), not all shapes
- Summarize what is unsolved — Call out any requirements that are Undecided, or where the selected shape has ❌
This gives the user immediate context on where the shaping stands and what needs attention.
Core Concepts
R: Requirements
A numbered set defining the problem space.
- R0, R1, R2... are members of the requirements set
- Requirements are negotiated collaboratively - not filled in automatically
- Track status: Core goal, Undecided, Leaning yes/no, Must-have, Nice-to-have, Out
- Requirements extracted from fit checks should be made standalone (not dependent on any specific shape)
- R states what's needed, not what's satisfied — satisfaction is always shown in a fit check (R × S)
S: Shapes (Solution Options)
Letters represent mutually exclusive solution approaches.
- A, B, C... are top-level shape options (you pick one)
- C1, C2, C3... are components/parts of Shape C (they combine)
- C3-A, C3-B, C3-C... are alternative approaches to component C3 (you pick one)
Shape Titles
Give shapes a short descriptive title that characterizes the approach. Display the title when showing the shape:
## E: Modify CUR in place to follow S-CUR
| Part | Mechanism |
|------|-----------|
| E1 | ... |
Good titles capture the essence of the approach in a few words:
- ✅ "E: Modify CUR in place to follow S-CUR"
- ✅ "C: Two data sources with hybrid pagination"
- ❌ "E: The solution" (too vague)
- ❌ "E: Add search to widget-grid by swapping..." (too long)
Notation Hierarchy
| Level | Notation | Meaning | Relationship |
|---|---|---|---|
| Requirements | R0, R1, R2... | Problem constraints | Members of set R |
| Shapes | A, B, C... | Solution options | Pick one from S |
| Components | C1, C2, C3... | Parts of a shape | Combine within shape |
| Alternatives | C3-A, C3-B... | Approaches to a component | Pick one per component |
Notation Persistence
Keep notation throughout as an audit trail. When finalizing, compose new options by referencing prior components (e.g., "Shape E = C1 + C2 + C3-A").
Phases
Shaping moves through two phases:
Shaping → Slicing
| Phase | Purpose | Output |
|---|---|---|
| Shaping | Explore the problem and solution space, select and detail a shape | Shaping doc with R, shapes, fit checks, breadboard |
| Slicing | Break down for implementation | Vertical slices with demo-able UI |
Phase Transition
Shaping → Slicing happens when:
- A shape is selected (passes fit check, feels right)
- The shape has been breadboarded into concrete affordances
- We need to plan implementation order
You can't slice without a breadboarded shape.
Big Picture Through Time
The Big Picture is a living document that reflects the current state of truth at lower levels:
| Stage | Big Picture Contains |
|---|---|
| Exploring shapes | Not needed yet — still comparing options |
| Shape selected | Frame + Shape (fit check, parts, breadboard) |
| Shape breadboarded | Same, with full wiring diagram |
| After slicing | Adds Slices section (sliced breadboard + grid) |
| During implementation | Updated as slices complete (✅/⏳ status) |
The Big Picture always summarizes what exists in the ground truth documents. It evolves as shaping and implementation progress.
Fit Check (Decision Matrix)
THE fit check is the single table comparing all shapes against all requirements. Requirements are rows, shapes are columns. This is how we decide which shape to pursue.
Format
## Fit Check
| Req | Requirement | Status | A | B | C |
|-----|-------------|--------|---|---|---|
| R0 | Make items searchable from index page | Core goal | ✅ | ✅ | ✅ |
| R1 | State survives page refresh | Must-have | ✅ | ❌ | ✅ |
| R2 | Back button restores state | Must-have | ❌ | ✅ | ✅ |
**Notes:**
- A fails R2: [brief explanation]
- B fails R1: [brief explanation]
Conventions
- Always show full requirement text — never abbreviate or summarize requirements in fit checks
- Fit check is BINARY — Use ✅ for pass, ❌ for fail. No other values.
- Shape columns contain only ✅ or ❌ — no inline commentary; explanations go in Notes section
- Never use ⚠️ or other symbols in fit check — ⚠️ belongs only in the Parts table's flagged column
- Keep notes minimal — just explain failures
Comparing Alternatives Within a Component
When comparing alternatives for a specific component (e.g., C3-A vs C3-B), use the same format but scoped to that component:
## C3: Component Name
| Req | Requirement | Status | C3-A | C3-B |
|-----|-------------|--------|------|------|
| R1 | State survives page refresh | Must-have | ✅ | ❌ |
| R2 | Back button restores state | Must-have | ✅ | ✅ |
Missing Requirements
If a shape passes all checks but still feels wrong, there's a missing requirement. Articulate the implicit constraint as a new R, then re-run the fit check.
Possible Actions
These can happen in any order:
- Populate R - Gather requirements as they emerge
- Sketch a shape - Propose a high-level approach (A, B, C...)
- Detail (components) - Break a shape into components (B1, B2...)
- Detail (affordances) - Expand a selected shape into concrete UI/Non-UI affordances and wiring
- Explore alternatives - For a component, identify options (C3-A, C3-B...)
- Check fit - Build a fit check (decision matrix) playing options against R
- Extract Rs - When fit checks reveal implicit requirements, add them to R as standalone items
- Breadboard - Map the system to understand where changes happen and make the shape more concrete
- Spike - Investigate unknowns to identify concrete steps needed
- Decide - Pick alternatives, compose final solution
- Create Big Picture - Once a shape is selected, create the Big Picture summary
- Slice - Break a breadboarded shape into vertical slices for implementation
Communication
Show Full Tables
When displaying R (requirements) or any S (shapes), always show every row — never summarize or abbreviate. The full table is the artifact; partial views lose information and break the collaborative process.
- Show all requirements, even if many
- Show all shape parts, including sub-parts (E1.1, E1.2...)
- Show all alternatives in fit checks
Why This Matters
Shaping is collaborative negotiation. The user needs to see the complete picture to:
- Spot missing requirements
- Notice inconsistencies
- Make informed decisions
- Track what's been decided
Summaries hide detail and shift control away from the user.
Spikes
A spike is an investigation task to learn how the existing system works and what concrete steps are needed to implement a component. Use spikes when there's uncertainty about mechanics or feasibility.
File Management
Always create spikes in their own file (e.g., spike.md or spike-[topic].md). Spikes are standalone investigation documents that may be shared or worked on independently from the shaping doc.
Purpose
- Learn how the existing system works in the relevant area
- Identify what we would need to do to achieve a result
- Enable informed decisions about whether to proceed
- Not about effort — effort is implicit in the steps themselves
- Investigate before proposing — discover what already exists; you may find the system already satisfies requirements
Structure
## [Component] Spike: [Title]
### Context
Why we need this investigation. What problem we're solving.
### Goal
What we're trying to learn or identify.
### Questions
| # | Question |
|---|----------|
| **X1-Q1** | Specific question about mechanics |
---
*Content truncated.*
You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversRtfmbro is an MCP server for config management tools—get real-time, version-specific docs from GitHub for Python, Node.j
RSS Feed Parser is a powerful rss feed generator and rss link generator with RSSHub integration, perfect for creating cu
Analyze and decompile Java class files online with our Java decompiler software, featuring JD decompiler and JD GUI inte
Access and interact with Jira and Linear tickets directly in conversations—no context switching to Jira ticketing softwa
Enhance your workflow with platform-specific notification sounds on Android. Get alert sounds & custom tones, including
Dual-Cycle Reasoner enables agents to detect repetitive behavior, diagnose failure causes, and recover with advanced met
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.