shaping

rjs/shaping-skills · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/rjs/shaping-skills --skill shaping
0 commentsdiscussion
summary

A structured approach for collaboratively defining problems and exploring solution options.

skill.md

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)

  1. Shaping doc — ground truth for R's, shapes, parts, fit checks
  2. Slices doc — ground truth for slice definitions, breadboards
  3. 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 change the shaping doc's parts table, update the slices doc 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 shaping doc must reflect that.

The Practice

Whenever making a change:

  1. Identify which level you're touching
  2. Ask: "Does this affect documents above or below?"
  3. Update all affected levels in the same operation
  4. Never let documents drift out of sync

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:

  1. Display the fit check for the selected shape only — Show R × [selected shape] (e.g., R × F), not all shapes
  2. 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)
  • Chunking policy: Never have more than 9 top-level requirements. When R exceeds 9, group related requirements into chunks with sub-requirements (R3.1, R3.2, etc.) so the top level stays at 9 or fewer. This keeps the requirements scannable and forces meaningful grouping.

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.


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.

Macro Fit Check

A separate tool from the standard fit check, used when working at a high level with chunked requirements and early-stage shapes where most mechanisms are still ⚠️. Use when explicitly requested.

The macro fit check has two columns per shape instead of one:

  • Addressed? — Does some part of the shape seem to speak to this requirement at a high level?
  • Answered? — Can you trace the concrete how? Is the mechanism actually spelled out?

Format:

## Macro Fit Check: R × A

| Req | Requirement | Addressed? | Answered? |
|-----|-------------|:----------:|:---------:|
| R0 | Core goal description |||
| R1 | Guided workflow |||
| R2 | Agent boundary | ⚠️ ||

Conventions:

  • Only show top-level requirements (R0, R1, R2...), not sub-requirements
  • No notes column — keep the table narrow and scannable
  • Use ✅ (yes), ⚠️ (partially), ❌ (no) for Addressed
  • Use ✅ (yes) or ❌ (no) for Answered
  • Follow the macro fit check with a separate Gaps table listing specific missing parts and their related sub-requirements

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
  • 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.

Mark Changes with 🟡

When re-rendering a requirements table or shape table after making changes, mark every changed or added line with a 🟡 so the user can instantly spot what's different. Place the 🟡 at the start of the changed cell content. This makes iterative refinement easy to follow — the user should never have to diff the table mentally.

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 |
how to use shaping

How to use shaping on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add shaping
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/rjs/shaping-skills --skill shaping

The skills CLI fetches shaping from GitHub repository rjs/shaping-skills and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/shaping

Reload or restart Cursor to activate shaping. Access the skill through slash commands (e.g., /shaping) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

Task Automation & Efficiency

Automate repetitive workflows and reduce manual effort

Example

Generate reports, summarize documents, draft communications

Save 3-5 hours per week on routine tasks

Knowledge Enhancement

Learn new skills, understand complex topics, get expert guidance

Example

Explain concepts, provide examples, suggest learning resources

Accelerate learning and skill development by 2x

Quality Improvement

Enhance output quality through reviews, suggestions, and refinements

Example

Review drafts, suggest improvements, catch errors

Improve work quality by 30-40% with less effort

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client with skill support
  • Clear understanding of task or problem to solve
  • Willingness to iterate and refine outputs

Time Estimate

15-45 minutes depending on use case complexity

Installation Steps

  1. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 5.Integrate into regular workflow if valuable

Common Pitfalls

  • Expecting perfect results without iteration
  • Not providing enough context in prompts
  • Using skill for tasks outside its intended scope
  • Accepting outputs without review and validation

Best Practices

✓ Do

  • +Start with clear, specific prompts
  • +Provide relevant context and constraints
  • +Review and refine all outputs before using
  • +Iterate to improve output quality
  • +Document successful prompt patterns

✗ Don't

  • Don't use without understanding skill limitations
  • Don't skip validation of outputs
  • Don't share sensitive information in prompts
  • Don't expect skill to replace human judgment

💡 Pro Tips

  • Be specific about desired format and style
  • Ask for multiple options to choose from
  • Request explanations to understand reasoning
  • Combine AI efficiency with human expertise

When to Use This

✓ Use When

Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.

✗ Avoid When

Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.

Learning Path

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.754 reviews
  • Ishan Perez· Dec 28, 2024

    Keeps context tight: shaping is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Anaya Sanchez· Dec 28, 2024

    We added shaping from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Benjamin Chen· Dec 4, 2024

    shaping is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Benjamin Brown· Nov 23, 2024

    Solid pick for teams standardizing on skills: shaping is focused, and the summary matches what you get after install.

  • Isabella Li· Nov 19, 2024

    shaping has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Benjamin Park· Oct 14, 2024

    shaping has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Sakura Johnson· Oct 10, 2024

    Solid pick for teams standardizing on skills: shaping is focused, and the summary matches what you get after install.

  • Kofi Gill· Sep 21, 2024

    shaping has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Yash Thakker· Sep 5, 2024

    Registry listing for shaping matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Anaya Abbas· Sep 5, 2024

    shaping reduced setup friction for our internal harness; good balance of opinion and flexibility.

showing 1-10 of 54

1 / 6