shape
Shape — Auto-Grill to PRD
Take a rough product idea and turn it into a complete PRD in one shot. No interactive grilling — Claude walks the decision tree itself, answers each question with software-engineering best practices, streams the Q&A live so you can spot bad assumptions, and writes the PRD.
Use /shape when you trust Claude's judgment and want speed. Use /grill-me + /write-a-prd when you want hands-on control over every decision.
Pipeline Position
| Step | Command | What It Does |
|---|---|---|
| 1a | /grill-me + /write-a-prd |
Manual path — interactive interview, then PRD |
| 1b | /shape |
Fast path — auto-grill + PRD in one shot |
| 2 | /prd-to-issues |
Break the PRD into vertical-slice sub-issues |
| 3 | /ralph |
Implement each sub-issue autonomously with TDD + code review |
shape produces the same PRD format as write-a-prd, so /prd-to-issues and /ralph consume its output without changes.
Instructions
When the user invokes this skill:
1. Capture the idea
If the user passed an idea as an argument, use it. Otherwise ask once:
What do you want to build? (one paragraph is fine)
Then proceed without further interactive questions until step 8.
2. Explore the codebase
Before answering anything, ground your decisions in reality:
- Read
README.md,CLAUDE.md, and any architecture docs - Identify existing modules, conventions, test patterns, and prior art the feature should match
- Verify any factual assertions in the user's idea — don't trust them, check
- Note the language, framework, test runner, and directory layout
If there is no codebase (empty directory or greenfield), skip to step 3 and record this in the PRD's Further Notes.
3. Walk the decision tree
For each branch below, generate the questions a thorough engineer would ask, then answer each one yourself. Do not skip a branch even if it feels obvious — that is the entire point of this skill.
- Actors & user stories — who uses this, what they want, what success looks like
- Happy-path flow — primary interaction step by step
- Edge cases — empty inputs, large inputs, concurrent access, partial failures, network errors, permission denied, missing data, unicode/encoding, time zones
- Data model & schema — entities, relationships, indexes, migrations
- Module boundaries — deep modules, public interfaces, what stays internal
- API contracts — request/response shapes, error codes, idempotency, versioning
- Testing strategy — what to test, what to mock (only at boundaries), prior art in the repo
- Security — authn/authz, input validation, secrets, rate limiting
- Observability — what to log, what to surface as metrics
- Out of scope — explicit non-goals to prevent scope creep
- Dependencies & blockers — what must exist first
4. Best-practice defaults
When self-answering, prefer:
- Boring over clever — simple, well-understood patterns
- Deep modules (Ousterhout) — wide functionality behind a simple, stable interface
- Match the codebase over external standards — project conventions win
- TDD-friendly design — testable through public interfaces, not internals
- Validate at system boundaries — trust internal callers, fail loudly at the edge
- YAGNI — no speculative abstractions, no features the user didn't ask for
- Parameterized queries, never string concatenation
- Rate limit auth endpoints
- Never log secrets, tokens, or PII
- Mock only at system boundaries (external APIs, DBs, time, randomness, filesystem) — never mock internal collaborators
Codebase facts always beat generic best practices. If the project already does X, the answer is X.
5. Stream the Q&A live
For every decision, emit a block in this exact format as you make the call — do not batch:
Q: <the question>
A: <the chosen answer>
Why: <one sentence — cite a codebase reference if relevant>
This is the user's chance to spot a bad assumption early.
6. Write the PRD
Use this template exactly. It matches /write-a-prd, so the rest of the pipeline accepts it unchanged.
## Problem Statement
The problem the user is facing, from the user's perspective.
## Solution
The solution, from the user's perspective.
## User Stories
A long, numbered list:
1. As a <actor>, I want a <feature>, so that <benefit>
Cover every aspect of the feature surfaced in your decision tree.
## Implementation Decisions
- Modules to build or modify
- Public interfaces of those modules
- Architectural decisions
- Schema changes
- API contracts
- Specific interactions
Do NOT include file paths or code snippets — they go stale fast.
## Testing Decisions
- What makes a good test here (test external behavior, never implementation details)
- Which modules will be tested
- Prior art for the tests (similar patterns already in the codebase)
## Out of Scope
Explicit non-goals.
## Further Notes
Anything else worth recording.
## Decisions Log
Every Q/A/Why block from step 5, in the order they were decided.
7. Save the PRD locally
- Generate a kebab-case slug from the idea (e.g. "rate-limited /healthz endpoint" →
rate-limited-healthz-endpoint) - Create
./prds/if it doesn't exist - Write the PRD to
./prds/<slug>.md - Print the absolute path
8. Offer to push to GitHub
After saving, ask the user once:
Push this as a GitHub issue? [y/N]
On y, run:
gh issue create --title "<slug>" --body-file ./prds/<slug>.md
Print the issue URL.
On n or no answer, stop. The local file is enough — the user can push later.
Rules
- Don't ask the user questions during the decision tree. The whole point is auto-answering. The only interactive moments are: capturing the idea (if not given) and the GitHub push prompt at the end.
- Don't skip branches. Even trivial-feeling branches get walked — completeness is the value.
- Codebase facts beat generic best practices. If the project already does X, X is the answer.
- No speculative scope. If the user didn't ask for it and the codebase doesn't require it, it goes in Out of Scope.
- The PRD template is fixed. It must match
/write-a-prdexactly so/prd-to-issuesand/ralphkeep working.
More from thecraighewitt/skills
ralph
Autonomous PRD implementation loop — turns GitHub issues into shipped code using TDD, code review gates, and Docker sandbox isolation. The execution engine for the grill-me → write-a-prd → prd-to-issues → ralph pipeline.
42linkedin-outreach
When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting. Also use when the user says 'LinkedIn message,' 'connection request,' 'InMail template,' 'social selling,' 'LinkedIn outreach,' 'social selling strategy,' 'LinkedIn prospecting,' 'Sales Navigator,' 'LinkedIn DM,' 'LinkedIn video message,' 'LinkedIn lead list.' For email outreach, see cold-email. For multi-channel sequences, see outbound-sequence. For profile research, see lead-research.
20video-analysis
When the user wants to analyze a YouTube video's performance, review retention data, diagnose low CTR, or understand why a video underperformed or overperformed. Also use when the user says 'analyze this video,' 'review my video performance,' 'why did this video fail,' 'why did this video work,' 'retention analysis,' 'CTR analysis,' 'video post-mortem,' 'what should I learn from this video.' For full channel health check, see channel-audit. For improving future ideas based on learnings, see idea-generation.
17forecast
When the user wants to forecast sales revenue, build a commit/upside/best-case forecast, calculate weighted pipeline, predict whether they'll hit their number, or run a forecast call. Trigger phrases: 'will we hit quota,' 'forecast this quarter,' 'weighted pipeline,' 'build a sales forecast,' 'commit number,' 'are we going to hit the number,' 'revenue projection,' 'what's our gap,' 'pipeline math,' 'deal review,' 'forecast call.' For pipeline data that feeds the forecast, see pipeline-review. For comp plans tied to quota, see sales-comp.
17referral-intro
When the user wants to ask for a warm introduction, build a referral program, or systematize their referral channel. Also use when the user says 'get me an intro,' 'ask for a referral,' 'write a forwardable email,' 'warm introduction,' 'partner referral,' 'reference request,' 'intro email,' 'leverage my network,' 'referral program,' 'ask for an intro at dinner,' or 'track referrals in CRM.' For cold outreach without a warm path, see cold-email or linkedin-outreach. For sequencing referral asks into a cadence, see outbound-sequence. For running the meeting after a referral intro is made, see discovery-call.
17win-loss-analysis
When the user wants to analyze why deals were won or lost, find patterns across closed deals, or extract competitive intelligence from deal outcomes. Trigger phrases: 'why did we lose that deal,' 'win-loss review,' 'analyze our closed deals,' 'what are we losing to,' 'deal post-mortem,' 'why do we keep losing to [competitor],' 'deal autopsy,' 'competitive losses,' 'why did we win that deal.' For individual call analysis, see call-debrief. For competitive positioning, see competitive-intel. For buyer understanding, see buyer-persona.
17