Product Research
The operational layer of continuous product discovery: choosing a method that
actually answers the question asked, recruiting the right people without
poisoning the sample, running interviews that surface behaviour rather than
opinion, and converting a pile of session notes into insights with an honest
confidence attached.
When to use this skill
- A team is about to build something and the evidence behind it is three
sales anecdotes and a strongly held opinion
- Choosing a method — someone has asked for "a survey" or "some user
interviews" before anyone has written down the question
- Designing a screener for a study where recruiting the wrong participants
would be worse than not running it
- Writing an interview guide that has to be run consistently by several
people across a dozen sessions
- Synthesising evidence into insights after a round of discovery, with a
defensible confidence level on each claim
- Standing up a continuous discovery cadence — a repeatable weekly rhythm
rather than one-off project research
Inputs the skill expects
- The decision the research feeds, and who makes it
- The question in interrogative form — what you do not know, not what you want
confirmed
- Decision reversibility — can this be undone in a sprint, or is it a one-way door
- Timeline and budget for the study
- Access to participants: existing customers, prospects, panel, or none
- Existing evidence already on hand (tickets, session recordings, sales calls)
Clarify First
Before generating, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Workflows
Workflow 1 — Pick the method before anyone books a session
- Write the question in interrogative form. If it starts with "should we," it
is a decision, not a research question — rewrite it as what you would need to
know to decide.
- Classify the question: generative (what is going on), evaluative (does this
work), or descriptive (how many, how often).
- Rate decision reversibility and state the timeline and participant access.
- Run the recommender. It returns a primary method, a cheaper fallback, the
minimum sample, and the methods it explicitly ruled out with reasons.
- If the recommendation is "ship an experiment instead," take that seriously.
For reversible decisions, an experiment usually beats a study on both speed
and evidence quality.
python3 research-ops/product-research/scripts/method_recommender.py \
--input research-ops/product-research/assets/sample_research_question.json \
--format text
Workflow 2 — Validate the screener before recruiting opens
- Draft the screener: qualifying criteria, disqualifying criteria, and the
items that test each.
- Run the validator. It checks for transparent qualifying answers, missing
disqualification logic, professional-respondent exposure, quota coverage,
and criteria that no item actually tests.
- Fix every
fail. A screener defect costs you the whole study — you find out
only during the sessions, by which point the incentives are spent.
python3 research-ops/product-research/scripts/screener_validator.py \
--input research-ops/product-research/assets/sample_screener.json \
--format text
Workflow 3 — Score insight confidence during synthesis
- Draft each candidate insight as a claim, and attach the evidence items that
support it — each with its source type, participant, and whether it is
observed behaviour or reported opinion.
- Run the scorer. It weights observed evidence above reported evidence, rewards
source and participant diversity, and penalises claims resting on a single
session or a single channel.
- Ship only the insights scoring
moderate or above as decision inputs.
Everything below that is a hypothesis and must be labelled as one.
python3 research-ops/product-research/scripts/insight_confidence_scorer.py \
--input research-ops/product-research/assets/sample_evidence.json \
--format text
Decision frameworks
Method by question type
| Question type |
Example |
Primary method |
Minimum sample |
| Generative — what is going on |
"How do support agents currently triage tickets?" |
[PROVEN] Contextual inquiry or semi-structured interview |
6-8 |
| Evaluative — does this work |
"Can users complete onboarding unaided?" |
[PROVEN] Moderated usability test |
5-8 |
| Comparative — which is better |
"Which of two flows converts?" |
[PROVEN] A/B experiment |
Powered by traffic |
| Descriptive — how many, how often |
"What share of accounts hit this limit?" |
[PROVEN] Instrumentation or log analysis |
Full population |
| Prioritisation — which matters most |
"Which of five problems is most acute?" |
[RECOMMENDED] Survey with forced trade-offs |
100+ |
| Desirability — would people want this |
"Would customers use X?" |
[RECOMMENDED] Painted-door or pre-commitment test |
Traffic-dependent |
| Diagnostic — why did this drop |
"Why did activation fall 12%?" |
[RECOMMENDED] Funnel analysis first, then targeted interviews |
5-6 after analysis |
The pattern worth internalising: quantitative methods tell you what and how
many; qualitative methods tell you why and how. Reaching for interviews to
answer a "how many" question, or for a survey to answer a "why" question, is the
most common and most expensive method error in product research.
Reversibility gate
| Decision type |
Evidence bar |
Typical spend |
| Reversible in a sprint |
Ship it behind a flag and measure |
Hours. Research here is usually waste. |
| Reversible in a quarter |
5-6 interviews or one experiment |
Days |
| Costly to reverse — pricing, data model, public API |
Mixed methods; qual for the why, quant for the size |
1-3 weeks |
| One-way door — platform, contract, market entry |
Triangulated across 3+ independent sources |
Weeks, and worth it |
[PROVEN] Match evidence spend to reversibility, not to how interesting the
question is. The most common research-ops failure is not too little research —
it is expensive research on reversible decisions while one-way doors get decided
on intuition.
Saturation — when to stop interviewing
Track new themes per session. Stop when two consecutive sessions produce no new
theme.
| Sessions run |
Typical state |
| 1-3 |
Every session is new. Do not synthesise yet — you are pattern-matching on noise. |
| 4-6 |
Themes start repeating. First real patterns appear. |
| 7-9 |
Saturation for a homogeneous segment. Diminishing returns set in hard. |
| 10-12 |
Needed only when covering 2+ distinct segments — treat each segment as its own count. |
| 15+ |
Almost always over-research, unless the segments are genuinely many |
The count that matters is per segment, not in total. Eight sessions spread
across four segments is two per segment, which is anecdote.
Anti-Patterns
The Confirmation Study
Mistake: Running research after the decision is made, with a question phrased
to validate it — "we want to check users like the new dashboard."
Why it happens: The team needs air cover for a choice already funded, and
nobody wants to be the person whose study kills the roadmap item.
Instead: Write down, before recruiting, what result would cause you to change
course. If no such result exists, cancel the study and save the money — you are
buying decoration, not evidence. Getting that sentence written is also the
fastest way to discover the decision was never really open.
Asking Users to Design
Mistake: "What features would you like to see?" and treating the answers as a
roadmap.
Why it happens: It feels maximally user-centred, and it produces concrete
output quickly.
Instead: Ask about the last time they hit the problem — what they were doing,
what they tried, what it cost them. People are reliable reporters of their own
experience and unreliable designers of solutions. Extract the problem from the
story; the solution is your job.
Sample of Convenience
Mistake: Interviewing whoever answers the recruiting email — usually your
most engaged power users — and generalising to the whole base.
Why it happens: They respond fastest, they are pleasant to talk to, and the
sessions feel productive.
Instead: Recruit against a quota that includes the segments you most need to
hear from — churned users, low-engagement accounts, people who evaluated you and
chose a competitor. Those are harder to reach and worth several times more per
session. If you can only get power users, say so explicitly in the writeup and
scope the conclusion to them.
Synthesis by Highlight Reel
Mistake: Building the findings deck from the most quotable moments across
sessions.
Why it happens: Vivid quotes are persuasive and memorable, and a striking
quote from one participant carries more weight in a readout than a pattern
across six.
Instead: Count first, quote second. Establish how many participants exhibited
each theme, then select a quote to illustrate a theme you have already
quantified. A quote is an illustration of evidence, never the evidence itself.
Research Theatre on a Reversible Decision
Mistake: A three-week study to decide something that could be shipped behind
a flag on Tuesday and measured by Friday.
Why it happens: A research process exists, so it gets applied uniformly
regardless of what is at stake.
Instead: Run the reversibility gate first. If the decision is reversible in a
sprint, ship the experiment — it produces better evidence (observed behaviour at
real scale) faster and cheaper than any study. Reserve the research capacity for
the one-way doors that are currently being decided on nothing at all.
Files
| File |
Purpose |
scripts/method_recommender.py |
Recommends a research method from question type, reversibility, timeline, and access |
scripts/screener_validator.py |
Checks a screener for transparency, missing disqualification logic, and quota coverage |
scripts/insight_confidence_scorer.py |
Scores insight confidence from evidence count, type, and source diversity |
references/method-selection-guide.md |
Every method with cost, sample, output, and the questions it cannot answer |
references/interview-craft.md |
Guide construction, probing technique, moderator failure modes, synthesis mechanics |
assets/interview-guide-template.md |
The structure a semi-structured discovery guide ships in |
assets/sample_research_question.json |
Runnable input for the method recommender |
assets/sample_screener.json |
Runnable input for the screener validator |
assets/sample_evidence.json |
Runnable input for the insight confidence scorer |
1---2name: product-research3description: Continuous product discovery research operations — picking the method that fits the question, recruiting and screening participants, building interview guides, and scoring evidence into insights. Use when planning or running discovery.4license: MIT + Commons Clause5---6
7# Product Research
8
9The operational layer of continuous product discovery: choosing a method that
10actually answers the question asked, recruiting the right people without
11poisoning the sample, running interviews that surface behaviour rather than
12opinion, and converting a pile of session notes into insights with an honest
13confidence attached.
14
15## When to use this skill
16
17- **A team is about to build something** and the evidence behind it is three
18 sales anecdotes and a strongly held opinion
19- **Choosing a method** — someone has asked for "a survey" or "some user
20 interviews" before anyone has written down the question
21- **Designing a screener** for a study where recruiting the wrong participants
22 would be worse than not running it
23- **Writing an interview guide** that has to be run consistently by several
24 people across a dozen sessions
25- **Synthesising evidence into insights** after a round of discovery, with a
26 defensible confidence level on each claim
27- **Standing up a continuous discovery cadence** — a repeatable weekly rhythm
28 rather than one-off project research
29
30## Inputs the skill expects
31
32- The decision the research feeds, and who makes it
33- The question in interrogative form — what you do not know, not what you want
34 confirmed
35- Decision reversibility — can this be undone in a sprint, or is it a one-way door
36- Timeline and budget for the study
37- Access to participants: existing customers, prospects, panel, or none
38- Existing evidence already on hand (tickets, session recordings, sales calls)
39
40## Clarify First
41
42Before generating, confirm these inputs. If any is unknown or vague, ASK — do not assume:
43
44- [ ] **The decision this research informs, and its reversibility** — a one-way door justifies weeks of evidence; a reversible change is often better answered by shipping an experiment
45- [ ] **The question in interrogative form** — "do users want X" and "how do users currently accomplish X" call for completely different methods
46- [ ] **Participant access** — whether you can reach real users determines whether the plan is feasible at all, and it is the constraint teams discover last
47- [ ] **Timeline** — a two-day answer and a three-week answer are different studies, not the same study rushed
48
49Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
50
51## Workflows
52
53### Workflow 1 — Pick the method before anyone books a session
54
551. Write the question in interrogative form. If it starts with "should we," it
56 is a decision, not a research question — rewrite it as what you would need to
57 know to decide.
582. Classify the question: generative (what is going on), evaluative (does this
59 work), or descriptive (how many, how often).
603. Rate decision reversibility and state the timeline and participant access.
614. Run the recommender. It returns a primary method, a cheaper fallback, the
62 minimum sample, and the methods it explicitly ruled out with reasons.
635. If the recommendation is "ship an experiment instead," take that seriously.
64 For reversible decisions, an experiment usually beats a study on both speed
65 and evidence quality.
66
67```bash
68python3 research-ops/product-research/scripts/method_recommender.py \
69 --input research-ops/product-research/assets/sample_research_question.json \
70 --format text
71```
72
73### Workflow 2 — Validate the screener before recruiting opens
74
751. Draft the screener: qualifying criteria, disqualifying criteria, and the
76 items that test each.
772. Run the validator. It checks for transparent qualifying answers, missing
78 disqualification logic, professional-respondent exposure, quota coverage,
79 and criteria that no item actually tests.
803. Fix every `fail`. A screener defect costs you the whole study — you find out
81 only during the sessions, by which point the incentives are spent.
82
83```bash
84python3 research-ops/product-research/scripts/screener_validator.py \
85 --input research-ops/product-research/assets/sample_screener.json \
86 --format text
87```
88
89### Workflow 3 — Score insight confidence during synthesis
90
911. Draft each candidate insight as a claim, and attach the evidence items that
92 support it — each with its source type, participant, and whether it is
93 observed behaviour or reported opinion.
942. Run the scorer. It weights observed evidence above reported evidence, rewards
95 source and participant diversity, and penalises claims resting on a single
96 session or a single channel.
973. Ship only the insights scoring `moderate` or above as decision inputs.
98 Everything below that is a hypothesis and must be labelled as one.
99
100```bash
101python3 research-ops/product-research/scripts/insight_confidence_scorer.py \
102 --input research-ops/product-research/assets/sample_evidence.json \
103 --format text
104```
105
106## Decision frameworks
107
108### Method by question type
109
110| Question type | Example | Primary method | Minimum sample |
111|---------------|---------|----------------|----------------|
112| Generative — what is going on | "How do support agents currently triage tickets?" | **[PROVEN]** Contextual inquiry or semi-structured interview | 6-8 |
113| Evaluative — does this work | "Can users complete onboarding unaided?" | **[PROVEN]** Moderated usability test | 5-8 |
114| Comparative — which is better | "Which of two flows converts?" | **[PROVEN]** A/B experiment | Powered by traffic |
115| Descriptive — how many, how often | "What share of accounts hit this limit?" | **[PROVEN]** Instrumentation or log analysis | Full population |
116| Prioritisation — which matters most | "Which of five problems is most acute?" | **[RECOMMENDED]** Survey with forced trade-offs | 100+ |
117| Desirability — would people want this | "Would customers use X?" | **[RECOMMENDED]** Painted-door or pre-commitment test | Traffic-dependent |
118| Diagnostic — why did this drop | "Why did activation fall 12%?" | **[RECOMMENDED]** Funnel analysis first, then targeted interviews | 5-6 after analysis |
119
120The pattern worth internalising: **quantitative methods tell you what and how
121many; qualitative methods tell you why and how.** Reaching for interviews to
122answer a "how many" question, or for a survey to answer a "why" question, is the
123most common and most expensive method error in product research.
124
125### Reversibility gate
126
127| Decision type | Evidence bar | Typical spend |
128|---------------|--------------|---------------|
129| **Reversible in a sprint** | Ship it behind a flag and measure | Hours. Research here is usually waste. |
130| **Reversible in a quarter** | 5-6 interviews or one experiment | Days |
131| **Costly to reverse** — pricing, data model, public API | Mixed methods; qual for the why, quant for the size | 1-3 weeks |
132| **One-way door** — platform, contract, market entry | Triangulated across 3+ independent sources | Weeks, and worth it |
133
134**[PROVEN]** Match evidence spend to reversibility, not to how interesting the
135question is. The most common research-ops failure is not too little research —
136it is expensive research on reversible decisions while one-way doors get decided
137on intuition.
138
139### Saturation — when to stop interviewing
140
141Track new themes per session. Stop when two consecutive sessions produce no new
142theme.
143
144| Sessions run | Typical state |
145|--------------|---------------|
146| 1-3 | Every session is new. Do not synthesise yet — you are pattern-matching on noise. |
147| 4-6 | Themes start repeating. First real patterns appear. |
148| 7-9 | Saturation for a homogeneous segment. Diminishing returns set in hard. |
149| 10-12 | Needed only when covering 2+ distinct segments — treat each segment as its own count. |
150| 15+ | Almost always over-research, unless the segments are genuinely many |
151
152The count that matters is **per segment**, not in total. Eight sessions spread
153across four segments is two per segment, which is anecdote.
154
155## Anti-Patterns
156
157### The Confirmation Study
158**Mistake:** Running research after the decision is made, with a question phrased
159to validate it — "we want to check users like the new dashboard."
160**Why it happens:** The team needs air cover for a choice already funded, and
161nobody wants to be the person whose study kills the roadmap item.
162**Instead:** Write down, before recruiting, what result would cause you to change
163course. If no such result exists, cancel the study and save the money — you are
164buying decoration, not evidence. Getting that sentence written is also the
165fastest way to discover the decision was never really open.
166
167### Asking Users to Design
168**Mistake:** "What features would you like to see?" and treating the answers as a
169roadmap.
170**Why it happens:** It feels maximally user-centred, and it produces concrete
171output quickly.
172**Instead:** Ask about the last time they hit the problem — what they were doing,
173what they tried, what it cost them. People are reliable reporters of their own
174experience and unreliable designers of solutions. Extract the problem from the
175story; the solution is your job.
176
177### Sample of Convenience
178**Mistake:** Interviewing whoever answers the recruiting email — usually your
179most engaged power users — and generalising to the whole base.
180**Why it happens:** They respond fastest, they are pleasant to talk to, and the
181sessions feel productive.
182**Instead:** Recruit against a quota that includes the segments you most need to
183hear from — churned users, low-engagement accounts, people who evaluated you and
184chose a competitor. Those are harder to reach and worth several times more per
185session. If you can only get power users, say so explicitly in the writeup and
186scope the conclusion to them.
187
188### Synthesis by Highlight Reel
189**Mistake:** Building the findings deck from the most quotable moments across
190sessions.
191**Why it happens:** Vivid quotes are persuasive and memorable, and a striking
192quote from one participant carries more weight in a readout than a pattern
193across six.
194**Instead:** Count first, quote second. Establish how many participants exhibited
195each theme, then select a quote to illustrate a theme you have already
196quantified. A quote is an illustration of evidence, never the evidence itself.
197
198### Research Theatre on a Reversible Decision
199**Mistake:** A three-week study to decide something that could be shipped behind
200a flag on Tuesday and measured by Friday.
201**Why it happens:** A research process exists, so it gets applied uniformly
202regardless of what is at stake.
203**Instead:** Run the reversibility gate first. If the decision is reversible in a
204sprint, ship the experiment — it produces better evidence (observed behaviour at
205real scale) faster and cheaper than any study. Reserve the research capacity for
206the one-way doors that are currently being decided on nothing at all.
207
208## Files
209
210| File | Purpose |
211|------|---------|
212| `scripts/method_recommender.py` | Recommends a research method from question type, reversibility, timeline, and access |
213| `scripts/screener_validator.py` | Checks a screener for transparency, missing disqualification logic, and quota coverage |
214| `scripts/insight_confidence_scorer.py` | Scores insight confidence from evidence count, type, and source diversity |
215| `references/method-selection-guide.md` | Every method with cost, sample, output, and the questions it cannot answer |
216| `references/interview-craft.md` | Guide construction, probing technique, moderator failure modes, synthesis mechanics |
217| `assets/interview-guide-template.md` | The structure a semi-structured discovery guide ships in |
218| `assets/sample_research_question.json` | Runnable input for the method recommender |
219| `assets/sample_screener.json` | Runnable input for the screener validator |
220| `assets/sample_evidence.json` | Runnable input for the insight confidence scorer |