Product Discovery
Every request to build something carries a hidden bet. One question governs
this skill: what measurable change in user behaviour is this meant to
cause, and what is the cheapest way to learn whether it will? Shipping the
feature is an output; the behaviour change is the outcome. Hold that question
through the whole session - every step below is a way of answering it.
Default mode: the discovery gate
Run when handed a named solution ("build X", "add feature Y") whose outcome
is unstated. Four steps, in order, before any speccing:
- Output or outcome? Restate the goal as a measurable change in user
behaviour ("more users return in week two", not "ship saved searches").
If no plausible outcome exists, say so - that is a finding, not a failure.
- Map at least two opportunities. Name other unmet needs, pains, or
desires that could serve the same outcome. The point is not to derail X
but to make choosing X a decision instead of a default.
- Name the riskiest assumption. The single assumption whose failure
sinks X - check desirability (will they want it), viability (does it
pay), feasibility (can we build it), usability (can they use it).
- Propose the cheapest test. The smallest probe that could kill the
assumption before committing: a fake door, a throwaway prototype, five
user conversations, a query over existing behaviour data. State the
pass/fail bar up front - the pre-committed threshold that decides
kill or go (e.g. "≥3 of 5 describe the pain unprompted") - so the result
can't be rationalised after the fact.
Then stop and present the result; do not continue into design or
implementation unasked.
Escape hatch: if the outcome is already stated, or discovery has clearly
happened (research cited, bet explicitly made), note that in one line - at
most also flag the single riskiest assumption the stated evidence leaves
untested - and still deliver what was asked. Do not withhold the deliverable
once outcome and evidence are stated. Never run the gate on migrations, refactors, or internal tooling
with no user-facing behaviour to change - build what was asked.
Session mode: open-ended discovery
For "what should I build next" and prioritisation work, run as an interview,
one topic per turn, building an opportunity solution tree:
- Root: one outcome, stated as a measurable behaviour change with a leading
indicator.
- Branches: opportunities sourced from observed behaviour and specific past
moments ("tell me about the last time…"), not opinions or feature ideas.
- Compare sibling opportunities by expected effect on the outcome, not by
how appealing the feature is to build.
- Only then attach candidate solutions (at least two per chosen opportunity)
and an assumption test for the front-runner.
Output
A short brief, not a document: outcome → chosen opportunity → candidate
solution(s) → riskiest assumption → cheapest test → recommendation. If the
decision is to build, hand off to PRD/spec writing - discovery decides
whether and which; the spec defines the end state.
Boundaries
- PRD/spec writing (the prd skill, where present) - specs a committed
feature's end state; this skill decides whether and which feature earns
that commitment.
- holistic-ux - journey maps, service blueprints, wireframes, UX
heuristics; discovery here is product-level, not design artefacts.
- design-forking - forks solution alternatives at the software-design
layer; opportunity branching here happens at the problem layer.
evals/evals.json holds this skill's test prompts and expected behaviours -
for revising the skill, not for performing discovery.
1---2name: product-discovery3description: Decide what to build before committing to a named solution: reframe outputs as measurable behaviour-change outcomes, map alternative opportunities, and find the cheapest test of the riskiest assumption. Use when a feature request names a solution with no stated outcome, when prioritising or choosing what to build next - "what should I build", "roadmap", "which of these ideas", "is this feature worth building" - or before writing a PRD for a product-facing feature. Sits upstream of PRD/spec writing, which specs a committed feature; for journey maps, wireframes, or service blueprints use holistic-ux; for forking software-design alternatives use design-forking.4---5
6# Product Discovery
7
8Every request to build something carries a hidden bet. One question governs
9this skill: **what measurable change in user behaviour is this meant to
10cause, and what is the cheapest way to learn whether it will?** Shipping the
11feature is an output; the behaviour change is the outcome. Hold that question
12through the whole session - every step below is a way of answering it.
13
14## Default mode: the discovery gate
15
16Run when handed a named solution ("build X", "add feature Y") whose outcome
17is unstated. Four steps, in order, before any speccing:
18
191. **Output or outcome?** Restate the goal as a measurable change in user
20 behaviour ("more users return in week two", not "ship saved searches").
21 If no plausible outcome exists, say so - that is a finding, not a failure.
222. **Map at least two opportunities.** Name other unmet needs, pains, or
23 desires that could serve the same outcome. The point is not to derail X
24 but to make choosing X a decision instead of a default.
253. **Name the riskiest assumption.** The single assumption whose failure
26 sinks X - check desirability (will they want it), viability (does it
27 pay), feasibility (can we build it), usability (can they use it).
284. **Propose the cheapest test.** The smallest probe that could kill the
29 assumption before committing: a fake door, a throwaway prototype, five
30 user conversations, a query over existing behaviour data. State the
31 pass/fail bar **up front** - the pre-committed threshold that decides
32 kill or go (e.g. "≥3 of 5 describe the pain unprompted") - so the result
33 can't be rationalised after the fact.
34
35Then stop and present the result; do not continue into design or
36implementation unasked.
37
38**Escape hatch:** if the outcome is already stated, or discovery has clearly
39happened (research cited, bet explicitly made), note that in one line - at
40most also flag the single riskiest assumption the stated evidence leaves
41untested - and still deliver what was asked. Do not withhold the deliverable
42once outcome and evidence are stated. Never run the gate on migrations, refactors, or internal tooling
43with no user-facing behaviour to change - build what was asked.
44
45## Session mode: open-ended discovery
46
47For "what should I build next" and prioritisation work, run as an interview,
48one topic per turn, building an opportunity solution tree:
49
50- Root: one outcome, stated as a measurable behaviour change with a leading
51 indicator.
52- Branches: opportunities sourced from observed behaviour and specific past
53 moments ("tell me about the last time…"), not opinions or feature ideas.
54- Compare sibling opportunities by expected effect on the outcome, not by
55 how appealing the feature is to build.
56- Only then attach candidate solutions (at least two per chosen opportunity)
57 and an assumption test for the front-runner.
58
59## Output
60
61A short brief, not a document: outcome → chosen opportunity → candidate
62solution(s) → riskiest assumption → cheapest test → recommendation. If the
63decision is to build, hand off to PRD/spec writing - discovery decides
64whether and which; the spec defines the end state.
65
66## Boundaries
67
68- **PRD/spec writing** (the prd skill, where present) - specs a committed
69 feature's end state; this skill decides whether and which feature earns
70 that commitment.
71- **holistic-ux** - journey maps, service blueprints, wireframes, UX
72 heuristics; discovery here is product-level, not design artefacts.
73- **design-forking** - forks solution alternatives at the software-design
74 layer; opportunity branching here happens at the problem layer.
75
76`evals/evals.json` holds this skill's test prompts and expected behaviours -
77for revising the skill, not for performing discovery.