product-research

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

product-research

产品研究

Product / user research as an operational discipline: choosing the right method, sizing it honestly, and synthesizing findings into governed insights. The core rule: method must match the goal, and an insight requires recurrence across independent participants — a single quote is an anecdote.
将产品/用户研究作为一项运营规范:选择合适的方法、合理确定研究规模,并将研究结果整合为可管控的洞察。核心原则:方法必须匹配目标,且洞察需要在独立参与者中重复出现——单一用户的表述只是轶事。

Purpose

用途

Product researchers, ResearchOps teams, and PMs running discovery need method rigor and an insight repository they can trust. This skill structures three decisions:
Three deterministic tools:
  1. study_designer.py
    — Maps (research goal × product stage) to an appropriate method and emits a method-matched plan skeleton (objective, participant criteria, guide structure, success criteria). Redirects live A/B to
    product-team/experiment-designer
    .
  2. saturation_planner.py
    — Method-based sample guidance with an explicit confidence label: Nielsen problem-discovery (5/segment), Guest et al. thematic saturation (~12), and evaluative coverage. Never claims a prevalence rate from a small-n usability test.
  3. insight_synthesizer.py
    — Clusters coded observations by tag, counts distinct participants, ranks by cross-participant recurrence, and flags any candidate below the source threshold as an ANECDOTE, never promoting it to an insight.
产品研究员、ResearchOps团队以及开展探索工作的产品经理,需要严谨的研究方法和可信的洞察存储库。该技能围绕三个决策构建体系:
三个确定性工具:
  1. study_designer.py
    —— 将(研究目标 × 产品阶段)映射为合适的方法,并生成匹配方法的规划框架(目标、参与者标准、指南结构、成功标准)。若涉及实时A/B测试,将重定向至
    product-team/experiment-designer
  2. saturation_planner.py
    —— 基于方法提供样本量指导,并附带明确的置信标签:Nielsen问题发现法(每个细分群体5人)、Guest等人的主题饱和法(约12人),以及评估覆盖法。绝不会从小样本可用性测试中得出普及率结论。
  3. insight_synthesizer.py
    —— 按标签对编码后的观察结果进行聚类,统计不同参与者的数量,按跨参与者的重复频次排序,并将低于来源阈值的候选结果标记为轶事,绝不将其提升为洞察。

When to use

使用场景

Invoke this skill when:
  • You are planning a study and need the method to match the goal (generative vs evaluative vs validation).
  • You need a defensible sample size / saturation rationale with a stated confidence.
  • You have raw coded observations and need to synthesize insights without over-claiming.
  • You are setting up or auditing a research repository and need the insight-vs-observation discipline.
Do NOT use this skill to: generate personas / journey maps (use
product-team/ux-researcher-designer
), plan a discovery sprint or validate an opportunity (use
product-team/product-discovery
), design or analyze a live product A/B experiment (use
product-team/experiment-designer
), or do market sizing / surveys (use the
market-research
sibling).
在以下场景中调用该技能:
  • 你正在规划一项研究,需要让方法匹配目标(生成式vs评估式vs验证式)。
  • 你需要一个具有明确置信度的、可辩护的样本量/饱和理由。
  • 你拥有原始编码观察结果,需要在不过度断言的前提下整合为洞察。
  • 你正在搭建或审核研究存储库,需要区分洞察与观察的规范。
请勿使用该技能生成角色画像/旅程地图(请使用
product-team/ux-researcher-designer
)、规划发现冲刺或验证机会(请使用
product-team/product-discovery
)、设计或分析实时产品A/B实验(请使用
product-team/experiment-designer
),或进行市场规模测算/调研(请使用姊妹技能
market-research
)。

Workflow

工作流程

  1. Frame the study — Fill
    assets/research_plan_template.md
    (research questions, method rationale, participant criteria, analysis plan, repository tagging scheme).
  2. Pick the method — Run
    study_designer.py --goal {discovery|evaluative|validation} --stage {concept|prototype|beta|live} --profile {b2b-saas|consumer-app|enterprise|marketplace|hardware|platform}
    . Honor the redirect if it routes to experiment-designer.
  3. Size it — Run
    saturation_planner.py --method {usability|thematic|evaluative-coverage} --segments N
    . Record the confidence label and limits.
  4. Synthesize — After fielding, code observations and run
    insight_synthesizer.py --input observations.json --min-sources 3
    . Treat ANECDOTE-flagged clusters as signals to probe, not findings to ship.
  5. File in the repository — Tag insights to the atomic schema at synthesis time, with their evidence and confidence.
  1. 确定研究框架 —— 填写
    assets/research_plan_template.md
    (研究问题、方法依据、参与者标准、分析计划、存储库标签方案)。
  2. 选择方法 —— 运行
    study_designer.py --goal {discovery|evaluative|validation} --stage {concept|prototype|beta|live} --profile {b2b-saas|consumer-app|enterprise|marketplace|hardware|platform}
    。若重定向至experiment-designer,请遵循该指引。
  3. 确定规模 —— 运行
    saturation_planner.py --method {usability|thematic|evaluative-coverage} --segments N
    。记录置信标签及限制条件。
  4. 整合洞察 —— 完成实地研究后,对观察结果进行编码,运行
    insight_synthesizer.py --input observations.json --min-sources 3
    。将标记为ANECDOTE的聚类视为需要进一步探索的信号,而非可落地的结论。
  5. 存入存储库 —— 在整合洞察时,按照原子模式为洞察添加标签,并附上证据和置信度。

Scripts

脚本说明

ScriptPurposeProfiles
scripts/study_designer.py
(goal × stage) → method + plan skeletonb2b-saas, consumer-app, enterprise, marketplace, hardware, platform
scripts/saturation_planner.py
Method-based sample guidance + confidencen/a (method-driven)
scripts/insight_synthesizer.py
Cluster observations, flag anecdotesn/a (evidence-driven)
All three: stdlib-only,
--help
,
--sample
,
--output {human,json}
.
脚本用途适用场景
scripts/study_designer.py
(目标 × 阶段)→ 方法 + 规划框架b2b-saas, consumer-app, enterprise, marketplace, hardware, platform
scripts/saturation_planner.py
基于方法的样本量指导 + 置信度无(由方法驱动)
scripts/insight_synthesizer.py
聚类观察结果,标记轶事无(由证据驱动)
所有脚本:仅依赖标准库,支持
--help
--sample
--output {human,json}
参数。

Onboarding & customization

入门与自定义

Run the onboarding questionnaire once before you start — it captures your defaults so every tool in this skill is pre-configured. Customization is the point: the answers actually change tool behavior (e.g. the insight source-threshold).
bash
python3 scripts/onboard.py            # interactive (also: --defaults, --set key=value, --reset)
python3 scripts/onboard.py --show     # see the questions + current effective config
Answers are saved to
~/.config/research-ops/product-research.json
(global) or
./.research-ops/product-research.json
(
--scope project
) and are read automatically by
config_loader.py
. They set the default product profile, the insight source-threshold (how many independent participants make a finding an insight, not an anecdote), the default saturation method, and the high-stakes flag. CLI flags always override saved config;
RESEARCH_OPS_NO_CONFIG=1
ignores it.
The four questions: product profile · insight source-threshold · saturation method · high-stakes flag.
开始使用前请先运行一次入门问卷——它会记录你的默认设置,使该技能中的所有工具都预先配置完成。自定义是核心:问卷答案会实际改变工具行为(例如洞察来源阈值)。
bash
python3 scripts/onboard.py            # 交互式模式(也支持:--defaults, --set key=value, --reset)
python3 scripts/onboard.py --show     # 查看问题及当前生效配置
答案将保存至
~/.config/research-ops/product-research.json
(全局配置)或
./.research-ops/product-research.json
--scope project
项目级配置),并由
config_loader.py
自动读取。这些配置会设置默认产品场景洞察来源阈值(需要多少独立参与者的重复反馈才能将结论视为洞察而非轶事)、默认饱和方法,以及高风险标记。CLI参数始终优先于保存的配置;设置
RESEARCH_OPS_NO_CONFIG=1
将忽略配置文件。
四个核心问题:产品场景 · 洞察来源阈值 · 饱和方法 · 高风险标记。

Optimize with autoresearch (opt-in)

可选:通过自动研究优化

This skill ships an isolated, opt-in bridge to
engineering/autoresearch-agent
. Only when you ask to "optimize the synthesis" / "run a loop" does an autoresearch experiment iteratively refine the coding/clustering of a fixed evidence set so more cross-participant patterns surface.
scripts/ar_evaluator.py
is the ground-truth evaluator; it prints
validated_insights: <int>
(higher is better). It optimizes the coding, never fabricates evidence.
bash
/ar:setup --domain custom --name insight-synthesis \
  --target observations.json \
  --eval "python3 ar_evaluator.py --target observations.json" \
  --metric validated_insights --direction higher
/ar:loop custom/insight-synthesis
Isolated: no hard dependency — autoresearch runs only on demand, and the loop edits
observations.json
, never the evaluator.
该技能附带一个独立、可选的桥接工具,可连接至
engineering/autoresearch-agent
。只有当你要求“优化整合过程”/“运行循环”时,自动研究实验才会迭代优化固定证据集的编码/聚类,以挖掘更多跨参与者的模式。
scripts/ar_evaluator.py
是真值评估工具,它会输出
validated_insights: <int>
(数值越高越好)。它仅优化编码过程,绝不编造证据。
bash
/ar:setup --domain custom --name insight-synthesis \
  --target observations.json \
  --eval "python3 ar_evaluator.py --target observations.json" \
  --metric validated_insights --direction higher
/ar:loop custom/insight-synthesis
独立性:无强依赖——自动研究仅按需运行,循环仅修改
observations.json
,绝不修改评估工具。

References

参考资料

  • references/research_methods_canon.md
    — Portigal Interviewing Users; Christensen/Ulwick JTBD; Rohrer's UX-research methods landscape (NN/g); Sauro & Lewis Quantifying the User Experience; Goodman/Kuniavsky.
  • references/sampling_and_saturation.md
    — Nielsen "test with 5 users"; Guest, Bunce & Johnson saturation; Faulkner on more-than-5; Sauro usability sample size; Braun & Clarke thematic analysis.
  • references/repository_and_synthesis.md
    — ResearchOps / atomic research (Tomer Sharon "Polaris"); insight-vs-observation discipline; repository governance; affinity mapping; democratization guardrails.
  • references/research_methods_canon.md
    —— Portigal《访谈用户》;Christensen/Ulwick的JTBD理论;Rohrer的UX研究方法全景图(NN/g);Sauro & Lewis《量化用户体验》;Goodman/Kuniavsky的相关研究。
  • references/sampling_and_saturation.md
    —— Nielsen的“用5名用户做测试”;Guest, Bunce & Johnson的饱和理论;Faulkner关于样本量大于5的研究;Sauro的可用性测试样本量研究;Braun & Clarke的主题分析。
  • references/repository_and_synthesis.md
    —— ResearchOps/原子研究(Tomer Sharon的“北极星”理论);洞察与观察的区分规范;存储库管控;亲和图法;民主化防护措施。

Assumptions

假设前提

  • Method selection assumes you can name the goal honestly; if the goal is fuzzy, grill it first (the goal drives everything).
  • Saturation guidance is method-based, not a power calculation — usability tests find problems, not prevalence rates.
  • The synthesizer counts evidence you provide; coding quality is upstream of it. Garbage tags → garbage clusters.
  • The insight threshold (
    --min-sources
    ) defaults to 3; raise it for high-stakes or heterogeneous populations.
  • 方法选择假设你能明确表述真实目标;若目标模糊,需先厘清(目标驱动一切)。
  • 饱和度指导基于方法,而非功效计算——可用性测试用于发现问题,而非测算普及率。
  • 整合工具仅统计你提供的证据;编码质量是前置条件。标签质量差→聚类结果差。
  • 洞察阈值(
    --min-sources
    )默认值为3;针对高风险或异质性群体可提高该值。

Anti-patterns

反模式

  • Mismatching method to goal. A usability test cannot discover unmet needs; an interview cannot measure task success.
  • Reporting usability problems as percentages. Small-n tests surface problems, not population rates.
  • Promoting an anecdote to an insight. One participant is a signal to probe, not a finding.
  • Framing interview questions as feature reactions. Probe the job-to-be-done and recent real behavior, not hypothetical opinions.
  • Synthesizing without a repository scheme. Tag at synthesis time, or insights rot unfindable.
  • 方法与目标不匹配:可用性测试无法发现未被满足的需求;访谈无法衡量任务完成度。
  • 将可用性问题按百分比报告:小样本测试仅用于发现问题,而非测算群体普及率。
  • 将轶事提升为洞察:单一参与者的反馈是需要探索的信号,而非结论。
  • 将访谈问题设计为功能反馈:应探索用户的待办任务和近期真实行为,而非假设性观点。
  • 无存储库方案就进行整合:需在整合时添加标签,否则洞察会因无法检索而失效。

Distinct from

与其他技能的区别

NeighborScopeDifference
product-team/ux-researcher-designer
Personas, journey maps, usability frameworks tied to design outputThat produces artifacts; this is method + repository discipline
product-team/product-discovery
Opportunity validation, discovery-sprint planningThat plans discovery sprints; this designs and synthesizes the research
product-team/experiment-designer
Live product A/B hypothesis + sample sizeThat runs live experiments; this runs qualitative/evaluative research
market-research
(sibling)
Market sizing, surveys, segmentationThat studies the market; this studies users
关联技能范围差异
product-team/ux-researcher-designer
角色画像、旅程地图、与设计输出绑定的可用性框架该技能产出工件;本技能是方法+存储库规范
product-team/product-discovery
机会验证、发现冲刺规划该技能规划发现冲刺;本技能设计并整合研究内容
product-team/experiment-designer
实时产品A/B假设+样本量该技能运行实时实验;本技能开展定性/评估式研究
market-research
(姊妹技能)
市场规模测算、调研、细分该技能研究市场;本技能研究用户

Quick examples

快速示例

bash
python3 scripts/study_designer.py --sample
python3 scripts/saturation_planner.py --method thematic --segments 3
python3 scripts/insight_synthesizer.py --sample --min-sources 3
The synthesizer sample correctly promotes "import-confusion" (3 independent participants) to INSIGHT and flags "wants-slack" (1 participant) as an ANECDOTE.
bash
python3 scripts/study_designer.py --sample
python3 scripts/saturation_planner.py --method thematic --segments 3
python3 scripts/insight_synthesizer.py --sample --min-sources 3
整合工具的示例会正确将“导入困惑”(来自3名独立参与者)标记为INSIGHT,将“想要Slack集成”(来自1名参与者)标记为ANECDOTE。

Forcing-question library (Matt Pocock grill discipline)

追问问题库(Matt Pocock严谨性规范)

Walked one at a time by
/cs:grill-research-ops
or the orchestrator. Recommended answer + canon citation per question. Never bundled.
  1. "Is this study generative (discover problems) or evaluative (test a solution)?" Recommended: name it first — the method follows from the goal. Canon: Rohrer, When to Use Which User-Experience Research Methods (NN/g).
  2. "What's your sample size and saturation rationale — and at what confidence?" Recommended: method-based n (5/segment usability; ~12 for thematic saturation), state the confidence. Canon: Nielsen; Guest, Bunce & Johnson (2006); Faulkner (2003).
  3. "How many independent participants support each insight — or is it a single-source anecdote?" Recommended: require recurrence across ≥3 sources before calling it an insight; flag singletons. Canon: atomic research / ResearchOps; Braun & Clarke thematic analysis.
  4. "Are your interview / usability tasks framed as outcomes (jobs) or as feature reactions?" Recommended: frame around the job-to-be-done and recent real behavior, not hypothetical opinion. Canon: Christensen/Ulwick Jobs-to-be-Done; Portigal Interviewing Users.
  5. "Where does this land in the repository, and how is it tagged for reuse?" Recommended: tag to the atomic schema at synthesis time, not later. Canon: Tomer Sharon, Polaris / ResearchOps repository practice.
Walk depth-first. Lock 1-2 before opening 3-5. After all are answered, invoke
study_designer.py
saturation_planner.py
→ (after fielding)
insight_synthesizer.py
.
/cs:grill-research-ops
或编排工具逐一提出。每个问题配有推荐答案及权威引用。请勿批量提问。
  1. “这项研究是生成式(发现问题)还是评估式(测试解决方案)?” 推荐:先明确类型——方法由目标决定。 引用:Rohrer,《何时使用何种用户体验研究方法》(NN/g)。
  2. “你的样本量和饱和理由是什么——置信度是多少?” 推荐:基于方法确定样本量(可用性测试每个细分群体5人;主题饱和约12人),并说明置信度。 引用:Nielsen;Guest, Bunce & Johnson(2006);Faulkner(2003)。
  3. “每个洞察有多少独立参与者支持——还是仅为单一来源的轶事?” 推荐:要求至少≥3个来源的重复反馈才能称为洞察;标记单一来源的内容。 引用:原子研究/ResearchOps;Braun & Clarke的主题分析。
  4. “你的访谈/可用性任务是围绕结果(待办任务)还是功能反馈设计的?” 推荐:围绕用户待办任务和近期真实行为设计,而非假设性观点。 引用:Christensen/Ulwick的待办任务理论;Portigal《访谈用户》。
  5. “这项研究将存入存储库的哪个位置,如何标记以便复用?” 推荐:在整合洞察时按原子模式添加标签,而非事后补充。 引用:Tomer Sharon,《北极星》/ResearchOps存储库实践。
按深度优先顺序提问。在回答1-2个问题后再开启3-5的提问。所有问题回答完毕后,依次调用
study_designer.py
saturation_planner.py
→ (完成实地研究后)
insight_synthesizer.py