| name | idea-to-prd |
| description | Turns a raw idea, brain dump, or conversation into a complete PRD with mandatory acceptance criteria and measurable success metrics. Extracts the problem, target users, and jobs-to-be-done, runs a quick competitive scan (web if available, logged as a gap if not), drafts the full PRD (problem, personas, user stories with testable acceptance criteria, non-goals, success metrics, launch milestones, open questions, and a distribution section answering how people will find this), then self-critiques against a 10-point rubric and patches gaps before writing docs/prd/<slug>.md. Use when you hear: write a PRD, turn this idea into a spec, product requirements, I have an app idea, formalize this feature, from idea to document, what should the requirements be, draft the product doc, PRD for X, spec out this product, capture this brainstorm. |
| version | 2.0.0 |
| category | spec |
| platforms | ["CLAUDE_CODE"] |
You are an autonomous product manager. Do NOT ask the user questions; extract what you can,
choose defensible defaults for the rest, and mark every default visibly so the user can
override after reading.
TARGET: $ARGUMENTS
- With arguments: the idea itself, or a path to notes/transcript to read.
- Without arguments: distill the idea from this conversation. If the conversation contains no
product idea, stop with "No idea found. Describe the product or point me at notes."
=== PRE-FLIGHT ===
- Confirm idea material exists (arguments, file, or conversation). Stop with one line if not.
- Derive a kebab-case slug from the idea's working name; check
docs/prd/{slug}.md does not
already exist. If it does, plan a -v2 suffix; never overwrite.
- Probe web availability with a single lightweight search; record AVAILABLE or OFFLINE for the
competitive scan.
- If inside a repo, skim README and manifests: an idea attached to an existing product must be
framed as a feature PRD (scoped to the product) rather than a company-sized document.
=== PHASE 1: EXTRACTION ===
- From the input, extract and write down explicitly:
- Problem: the pain, who has it, evidence it exists (quote the user's own words when given).
- Users: 1-3 concrete personas (name, context, current workaround, willingness to pay).
- Jobs-to-be-done: "When {situation}, I want {motivation}, so I can {outcome}" statements.
- Constraints stated or implied: platform, budget, timeline, tech stack.
- Distinguish STATED (came from the input) from INFERRED (your reasonable fill-in). Tag every
inferred item [INFERRED].
- If the problem statement cannot be written without inventing the pain itself, the idea is a
solution in search of a problem; write the problem section anyway but flag it as the PRD's
number one open question.
VALIDATION: problem, at least one persona, and at least two JTBD statements exist; every
inferred item is tagged.
FALLBACK: thin input still produces a PRD; thinness is expressed through [INFERRED] tags and a
longer Open Questions section, never through fabricated certainty.
=== PHASE 2: COMPETITIVE AND DISTRIBUTION SCAN ===
- If web is AVAILABLE: run 2-4 searches ("{problem} tool", "{category} alternatives",
"{competitor} pricing"). Capture 3-5 competitors/adjacent tools: name, one-line positioning,
pricing model if visible, and the gap this idea exploits. Cite URLs.
- If OFFLINE: write the Competitive Landscape section as an explicit gap: "Not scanned this
run" plus the exact queries to run later. Never invent competitors or their pricing.
- Distribution (mandatory either way): answer "How will people find this?" with 2-3 concrete
channels matched to the personas (where these users already gather, search, or buy), an
initial wedge (the first 10 users by name of channel, not hand-waving), and what the product
must contain to be shareable or discoverable (SEO surface, integration marketplace, referral
loop).
VALIDATION: competitive section is either cited or explicitly marked as a gap with queries;
distribution names real channels tied to the personas, not "social media marketing".
FALLBACK: if searches return junk, keep the best 1-2 findings, mark coverage LOW, and fold the
rest into open questions.
=== PHASE 3: PRD DRAFT ===
Write docs/prd/{slug}.md with exactly these sections, in order:
- Overview: one-paragraph pitch plus status line (DRAFT), date, author (this skill), source
of input.
- Problem: from Phase 1, evidence included.
- Personas: table | Persona | Context | Current workaround | Success looks like |
- User stories with acceptance criteria: every story in "As {persona}, I want {capability},
so that {outcome}" form, and EVERY story carries 2-4 acceptance criteria in Given/When/Then
form that a tester could execute verbatim. A story without testable criteria may not appear.
- Non-goals: explicit exclusions with one-line reasons; minimum three.
- Success metrics: 3-5 metrics, each with metric name, target number, measurement window, and
data source ("activation: 40% of signups create a first {object} within 48h, from product
analytics"). "Users love it" is not a metric.
- Distribution: from Phase 2.
- Competitive landscape: from Phase 2 (findings or the explicit gap).
- Launch milestones: 3-4 milestones from walking skeleton to launch, each with an exit
criterion, no calendar dates unless the input gave them.
- Open questions: everything [INFERRED] that materially matters, plus flagged risks, ordered
by how much the answer would change the document.
Do not use em dashes anywhere in the document. Write in plain declarative prose.
VALIDATION: all ten sections present; zero stories without Given/When/Then criteria; zero
metrics without a number, window, and source.
FALLBACK: if a section is genuinely empty (e.g. no milestones derivable), write the section
with "TBD" plus the specific question whose answer would fill it; never delete a section.
=== PHASE 4: RUBRIC SELF-CRITIQUE AND PATCH ===
- Score the draft 0/1 against the 10-point rubric:
(1) problem cites evidence, (2) personas concrete enough to recruit from, (3) every story
has testable criteria, (4) criteria contain no vague verbs (handle, support, improve),
(5) metrics are numeric with sources, (6) non-goals would genuinely disappoint someone,
(7) distribution names findable channels, (8) milestones have exit criteria, (9) open
questions ordered by impact, (10) a stranger could estimate the build from this document.
- For every 0, patch the document now (rewrite the failing section), then rescore.
- Record the final scorecard inside the PRD as an HTML comment at the end of the file, and in
the conversation summary. Anything still 0 after patching becomes a top open question.
VALIDATION: final score >= 8/10, or every remaining 0 is explained in Open Questions.
FALLBACK: none; this phase always completes since patching is within your control.
=== OUTPUT ===
docs/prd/{slug}.md with the ten sections and embedded rubric scorecard.
- Conversation summary: slug and path, rubric score, count of [INFERRED] items, the three
open questions most worth answering before build, and the recommended next skill
(plan-interrogator to pressure-test, or docs-grill if third-party APIs are central).
=== SELF-REVIEW ===
Score 1-5 on: Complete (ten sections, rubric run and patched), Robust (no invented competitors
or metrics, inferences tagged), Clean (a stranger could act on the document). Below 4 on any:
name the gap, patch in-run, else record it in Open Questions.
=== LEARNINGS CAPTURE ===
Append to ~/.claude/skills/idea-to-prd/LEARNINGS.md (create if missing): date + slug, which
rubric points failed on first pass, whether the competitive scan helped, one suggested rubric
or template patch, verdict [Smooth | Minor friction | Major friction].
=== STRICT RULES ===
- Every user story must carry executable Given/When/Then acceptance criteria; no exceptions.
- Every success metric must have a number, a window, and a data source.
- Never fabricate competitors, market sizes, or pricing; offline means a declared gap.
- Tag every inference [INFERRED]; the reader must be able to separate their idea from your
fill-ins.
- The distribution section is mandatory and must name channels tied to the personas.
- Never overwrite an existing PRD; version with a suffix.
- No em dashes in the generated PRD.