Product Discovery
ASecurityFile-first orchestrator for product discovery and spec frameworks. Frames the problem with a Discovery Lead / Product Analyst / System Architect role, spawns parallel framework agents (Double Diamond, How Might We, Jobs to Be Done, user stories + INVEST, EARS for AI-coder specs, Gherkin), synthesizes into a PRD or discovery memo, runs a critic pass. Absorbs prd-drafter (idea to PRD via 3 parallel research roles) and design-thinking (pain-point excavation, landscape research, brainstorm). Ship...
- 28 stars
- 0 votes
- 0 copies
- 2 views
- Added September 19, 2026
Works with
Security analysis
100/100Pro scans all 20 files and shows the line behind each finding
npx -y skills add laithalsaadoon/erpaval --skill product-discovery --agent claude-codeAre you the author of Product Discovery?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/laithalsaadoon-product-discovery-erpaval)---
name: product-discovery
description: >
File-first orchestrator for product discovery and spec frameworks.
Frames the problem with a Discovery Lead / Product Analyst / System
Architect role, spawns parallel framework agents (Double Diamond,
How Might We, Jobs to Be Done, user stories + INVEST, EARS for
AI-coder specs, Gherkin), synthesizes into a PRD or discovery memo,
runs a critic pass. Absorbs prd-drafter (idea to PRD via 3 parallel
research roles) and design-thinking (pain-point excavation, landscape
research, brainstorm). Ships per-framework references, role prompts,
templates for PRDs, HMW outputs, job stories, EARS specs. Use when
the user asks to write a PRD, draft requirements, run discovery,
brainstorm a product, turn insights into HMW questions, write job
stories, spec a feature in EARS for Kiro or Spec Kit, define user
stories with INVEST, run a Double Diamond round, or mentions JTBD,
acceptance criteria, Kiro spec format. Do NOT use for business
strategy (Rumelt, Wardley, PR-FAQ as leadership artifact) — use
product-strategy.
arguments:
- name: source
description: Optional path to raw content (brief, notes, tickets) or a one-line topic.
required: false
user_facing: true
---
## Contents
| Reference | When to load |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `references/orchestrator.md` | Running the pipeline — 5 routes, parallel Phase 2, critic review, deliver |
| `references/write-protocol.md` | Canonical write-protocol block copied into every subagent prompt |
| `references/frameworks/INDEX.md` | Routing guide — discovery + spec decision tables, discovery → spec composition |
| `references/frameworks/*.md` | Per-framework files — double-diamond, how-might-we, jtbd-job-stories, user-stories-invest, ears, gherkin |
| `references/methodology/discovery-rounds.md` | Six-phase discovery methodology |
| `references/inference-heuristics.md` | Signal-to-inference tables for PRD-route Intent Profile capture |
| `references/quality/prd.md` | Per-section PRD quality bar, cross-section consistency checks |
| `references/roles/product-analyst.md` | PRD route — vision, personas, user stories, IA, milestones (sections 1-6, 12) |
| `references/roles/system-architect.md` | PRD route — NFRs, data models, API contracts, edge cases (sections 7-10) |
| `references/roles/research-scout.md` | PRD route — competitive landscape, open questions (sections 11, 13) |
| `references/roles/discovery-lead.md` | Discovery-round route — pain-point excavation, Double Diamond cadence |
| `references/roles/hmw-framer.md` | HMW-only route (also hard-dep entry point for erpaval CL-RIGOR fuzzy) |
| `references/roles/jtbd-interviewer.md` | JTBD-only route — job stories from PM-provided source material |
| `references/roles/ears-specifier.md` | EARS-only route (also hard-dep entry point for erpaval CL-RIGOR contract-unclear) |
| `references/roles/prd-synthesizer.md` | PRD route Phase 3 — composes final PRD from three parallel work logs |
| `references/roles/discovery-critic.md` | Phase 3.5 critic — rubric-graded review of any synthesized artifact |
| `templates/prd-template.md` | 15-section PRD skeleton with `[FILL]` markers |
| `templates/worklog-skeleton.md` | Per-role work-log skeleton with embedded write-protocol |
| `templates/discovery-memo.md` | Discovery-round output shape |
| `templates/double-diamond-workbook.md` | Double Diamond four-stage workbook |
| `templates/hmw-skeleton.md` | HMW brainstorms file — `brainstorms/NNN-<slug>-requirements.md` |
| `templates/jtbd-skeleton.md` | JTBD job-stories file |
| `templates/ears-spec-skeleton.md` | EARS spec file — `specs/NNN-<slug>/spec.md` |
# Product discovery
One skill, five routes. Takes a problem at any maturity (one-sentence idea, research notes, fuzzy framing, clear feature) and routes to the right framework pipeline. File-first write protocol throughout. Every role is a Markdown prompt copied verbatim into a `general-purpose` `Agent` call — zero custom agent files.
## Pipeline at a glance
```mermaid
flowchart TD
A[User brief] --> B[Phase 0: Route]
B -->|PRD ask| P1[Phase 1: Intent Profile]
B -->|Discovery round| D1[Phase 1: discovery-lead framing]
B -->|HMW only| H1[Phase 1: framing]
B -->|EARS only| E1[Phase 1: framing]
B -->|JTBD only| J1[Phase 1: framing]
P1 --> P2[Phase 2: product-analyst + system-architect + research-scout in parallel]
D1 --> D2[Phase 2: hmw-framer / jtbd-interviewer / research-scout as routed]
H1 --> H2[Phase 2: hmw-framer]
E1 --> E2[Phase 2: ears-specifier]
J1 --> J2[Phase 2: jtbd-interviewer]
P2 --> P3[Phase 3: prd-synthesizer]
D2 --> D3[Phase 3: discovery-lead composes memo]
H2 --> P35
E2 --> P35
J2 --> P35
P3 --> P35
D3 --> P35
P35[Phase 3.5: discovery-critic] --> P4[Phase 4: Deliver]
```
Full route-by-route runbook, role prompts, check-in cadence, and stuck-detection recovery live in `references/orchestrator.md`.
## When to run which route
| User signal | Route | Primary output |
| ------------------------------------------------------------- | --------------- | -------------------------------------------- |
| "write a PRD", "draft requirements", one-sentence idea | PRD | `{product-slug}-prd.md` (15 sections) |
| "brainstorm a product", "run discovery", "think through this" | Discovery round | `discovery-memo.md` |
| "turn these notes into HMW", "reframe this" | HMW-only | `brainstorms/NNN-{{ slug }}-requirements.md` |
| "spec this for Kiro / Spec Kit", "write EARS ACs" | EARS-only | `specs/NNN-{{ slug }}/spec.md` |
| "write job stories for [segment] from these tickets" | JTBD-only | `jtbd-job-stories.md` |
Default-in-doubt: PRD route. Absorbs the most source-material shapes and the 3-role parallel research pattern is the skill's strongest lane.
When the brief is genuinely ambiguous (audience unknown, source unclear), use one `AskUserQuestion` call with up to 4 questions. Then proceed. Do not loop.
## Write-protocol discipline
Every role follows the same rhythm: edit the output file → read → edit. Partial work on disk survives subagent termination; plans held in working memory do not. The canonical block lives in `references/write-protocol.md` and is copied verbatim into every role prompt and every task skeleton.
`{product-slug}-prd.md`, `discovery-memo.md`, `brainstorms/NNN-*.md`, `specs/NNN-*/spec.md`, `jtbd-job-stories.md` — one of these is the source of truth per run. Nothing else becomes load-bearing.
## Framework family
The skill ships one routing guide plus per-framework files. The orchestrator reads `references/frameworks/INDEX.md` first — it covers BOTH discovery frameworks (upstream, problem-space) and spec frameworks (downstream, contract-shaped) in one decision table because they compose as a single pipeline. Each framework's canonical structure, templates, and validation checks live in its own file in the same `frameworks/` directory.
- Discovery: `${CLAUDE_PLUGIN_ROOT}/skills/product-design-shared/references/double-diamond.md`, `frameworks/how-might-we.md`, `frameworks/jtbd-job-stories.md`.
- Spec: `frameworks/user-stories-invest.md`, `frameworks/ears.md`, `frameworks/gherkin.md`.
Common heuristic across both: **discovery (HMW/JTBD) → PRD (user stories) → spec (EARS for invariants, Gherkin for scenarios).** Routes compose — one run can fire multiple frameworks via the orchestrator's Phase 2 fan-out.
## Discovery methodology
The six-phase methodology lives at `references/methodology/discovery-rounds.md`. Pain-point excavation → landscape research (three vectors) → multi-direction brainstorm → vocabulary mapping → data-model synthesis → delivery. The discovery-round route fans out against these phases; the `discovery-lead` role owns the cadence.
## Ecosystem integration
**erpaval hard-deps on two role files as a public API:**
- `references/roles/hmw-framer.md` — erpaval's CL-RIGOR `fuzzy` classifier spawns this role directly.
- `references/roles/ears-specifier.md` — erpaval's CL-RIGOR `contract-unclear` classifier spawns this role directly.
Renames or scope changes to either role are breaking for erpaval. The orchestrator's ecosystem section in `references/orchestrator.md` documents the contract. Coordinate breaking changes in the same commit.
## When NOT to use this skill
- **Business and product strategy** (Rumelt kernel, Wardley map, PR-FAQ-as-leadership-artifact) — use `product-strategy`.
- **Long-form narrative composition** — strategy and discovery here produce the thinking; hand the artifacts to whatever narrative-writing workflow your team uses.
- **Implementation-only tasks** — use `erpaval` for autonomous coding; this skill defines the spec, not the build.
## Anti-patterns
- **Don't skip framing.** A Phase 2 fan-out without a frozen framing.md or Intent Profile produces divergent agent outputs the synthesizer can't reconcile.
- **Don't run more than 2 critic-revise rounds.** After 2, surface findings inline. Critic loops are a stop-energy pattern, not a quality gate.
- **Don't fabricate job stories or HMWs to meet a count.** Three real job stories beat five fake ones; the jtbd-interviewer and hmw-framer roles will flag gaps rather than invent.
- **Don't rewrite across roles.** Each role owns a slice. If a sibling role's output is wrong, flag it in the synthesizer's log — don't silently rewrite.
- **Don't bypass the write-protocol.** Batched-writes-at-the-end lose work on timeout. Edit → read → edit is the discipline every role follows.
- **Don't confuse upstream and downstream.** Job stories are upstream; user stories are downstream. HMW is upstream; EARS/Gherkin are downstream. Using the wrong one for the current phase produces artifacts that feel right but don't land.
- **Don't delete or rename hmw-framer.md / ears-specifier.md without updating erpaval.** Those are public API. Alias-then-delete for any rename; coordinate breaking changes.
Files in this skill
- SKILL.md
- references/frameworks/INDEX.md
- references/frameworks/ears.md
- references/frameworks/gherkin.md
- references/frameworks/how-might-we.md
- references/frameworks/jtbd-job-stories.md
- references/frameworks/user-stories-invest.md
- references/inference-heuristics.md
- references/methodology/discovery-rounds.md
- references/orchestrator.md
- references/quality/prd.md
- references/roles/discovery-critic.md
- references/roles/discovery-lead.md
- references/roles/ears-specifier.md
- references/roles/hmw-framer.md
- references/roles/jtbd-interviewer.md
- references/roles/prd-synthesizer.md
- references/roles/product-analyst.md
- references/roles/research-scout.md
- references/roles/system-architect.md
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.