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