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