Preamble (run first)
# 检查是否有需求调研报告
if [ ! -f "docs/01-需求调研/需求调研报告.md" ]; then
echo "⚠️ 未找到需求调研报告"
echo ""
echo "建议先执行 /pm-demand 完成需求调研"
echo ""
echo "您可以选择:"
echo "A) 执行 /pm-demand 先完成需求调研(推荐)"
echo "B) 手动输入需求列表(快速模式)"
fi
Boundaries when writing
When only discussing, do not write files; startup checks do not create directories. When the user asks to save artifacts, first confirm the current product, the exact output path, and the overwrite/append choice for existing files; after confirmationonly immediately before the actual Writecreate the parent directory of that output file. For complete installation, see skills/_shared/artifact-policy.md, installing this skill alone also follows this paragraph.
Cross-Agent interaction rules
When the process requires interaction with the user:
- If the current environment supports AskUserQuestion, use AskUserQuestion (best experience).
- If the current environment does not support AskUserQuestion, you must ask the same question via a normal chat message.
- Ask only one question at a time.
- After asking, you must stop the current turn and wait for the user's answer (STOP and WAIT).
- You must not generate documents or write to docs before the user answers.
- Existing docs files cannot substitute for this round of user answers.
Execution flow
Step 1: Read prerequisite data
If there is a requirements research report:
Use the Read tool to read docs/01-需求调研/需求调研报告.md
Extract:
- Product name
- Target users
- Core pain points
- Preliminary requirements list
If there is a creative solution library:
Use the Read tool to read docs/01-需求调研/创意方案库.md
Extract:
- Core creative solutions
If there are no prerequisite documents:
Enter quick mode and use AskUserQuestion to collect the requirements list:
📝 Quick mode - Please list the core requirements:
Please enter requirements one by one, one requirement per line: For example:
- Quick ordering
- Order tracking
- Membership system
Enter "done" to finish
Step 2: Refine requirements one by one
Key principles:
- Refine only one requirement at a time
- Clarify usage scenarios
- Clarify boundary conditions
- Clarify acceptance criteria
For each requirement, the AI asks the following questions:
Question 1: Usage scenario
What is the usage scenario for the requirement "{requirement name}"?
A) When the user uses it for the first time B) When the user uses it daily C) When the user encounters a specific problem D) After the user completes a specific task E) Other (please enter manually)
Record to variable SCENARIO
Question 2: Specific behavior
What exactly does the user need to do in this scenario?
For example: "The user opens the APP, selects a product, clicks Buy Now, and completes payment"
Please describe the specific steps:
After the user describes it, the AI organizes it into process steps.
Question 3: Boundary conditions
What are the boundary conditions for this requirement?
A) Time limit - e.g. "Orders unpaid within 30 minutes are automatically canceled" B) Quantity limit - e.g. "Each user can create at most 10 projects" C) Permission limit - e.g. "Only members can use it" D) Status limit - e.g. "Only incomplete orders can be modified" E) Other (please enter manually)
Record to variable BOUNDARY_CONDITIONS
Question 4: Exception handling
What should be done in case of an exception?
A) Prompt the user and guide them to a solution B) Automatically retry or degrade gracefully C) Log it and notify the administrator D) Roll back the operation and indicate failure E) Other (please enter manually)
Record to variable EXCEPTION_HANDLING
Question 5: Acceptance Criteria
What are the acceptance criteria for this requirement?
For example: "Users can complete an order in 3 steps, with a payment success rate > 95%"
Please describe measurable criteria:
After the user describes it, record to variable ACCEPTANCE_CRITERIA
Step 3: Summarize the refinement results
AI organizes the refinement information for each requirement into a structured format.
Step 4: Generate the confirmed requirements list
Use the Write tool to create docs/01-需求调研/确认需求清单.md:
# 确认需求清单
## 一、基础信息
- **产品名称**: {PRODUCT_NAME}
- **目标用户**: {TARGET_USER}
- **生成时间**: {当前时间}
---
## 二、需求详情
### 需求 1: {需求名称}
**使用场景**:
{SCENARIO}
**具体步骤**:
1. {步骤1}
2. {步骤2}
3. {步骤3}
**边界条件**:
{BOUNDARY_CONDITIONS}
**异常处理**:
{EXCEPTION_HANDLING}
**验收标准**:
{ACCEPTANCE_CRITERIA}
**优先级**: 待定(需通过 /pm-priority 确定)
---
### 需求 2: {需求名称}
**使用场景**:
{SCENARIO}
**具体步骤**:
1. {步骤1}
2. {步骤2}
**边界条件**:
{BOUNDARY_CONDITIONS}
**异常处理**:
{EXCEPTION_HANDLING}
**验收标准**:
{ACCEPTANCE_CRITERIA}
**优先级**: 待定
---
## 三、需求汇总表
| 序号 | 需求名称 | 场景 | 边界条件 | 验收标准 | 状态 |
|------|----------|------|----------|----------|------|
| 1 | {需求1} | {场景简述} | {边界简述} | {标准简述} | ✅ 已细化 |
| 2 | {需求2} | {场景简述} | {边界简述} | {标准简述} | ✅ 已细化 |
---
## 四、下一步建议
建议执行:
1. **/pm-market** - 市场分析,了解竞品和市场规模(推荐)
2. **/pm-priority** - 优先级排序,决定先做哪个需求
3. **/pm-mvp** - MVP规划,确定第一版要做什么
---
**项目状态**: 需求细化完成
**生成时间**: {时间戳}
**生成工具**: super-pm
Step 5: Output the completion prompt
Use AskUserQuestion to provide the next-step options:
✅ Requirements refinement complete!
📄 Confirmed requirements list generated:
docs/01-需求调研/确认需求清单.md🎯 Suggested next steps:
A) Run /pm-market - Market analysis to understand competitors and market size (recommended) B) Run /pm-priority - Priority ranking to determine requirement priorities C) Run /pm-mvp - MVP planning to determine the first version's features D) View the confirmed requirements list
Subagent parallel analysis (new in v2.0)
After requirements refinement is complete, subagents can be dispatched to perform external validation in parallel:
Agent 1: Market benchmarking analysis
type: "general-purpose"
prompt: "搜索与当前产品对标的市场同类功能详情,提供参考标准..."
Agent 2: Technical feasibility assessment
type: "general-purpose"
prompt: "评估各需求的技术实现难度和备选方案..."
V1 vs V2 comparison
| Dimension | v1 (serial) | v2 (Subagent parallel) |
|---|---|---|
| External validation | Manual search or skip | Subagent parallel search and analysis |
| Token usage | Search results occupy the main context | Handled independently by Subagent |
| Execution efficiency | Linear sequence | 2x speedup through parallelism |
Fallback mechanism
Scenario 1: No requirements research report
Provide a quick mode that allows the user to manually enter a requirements list.
Prompt:
⚠️ No requirements research report found
You can choose: A) Run /pm-demand to complete requirements research first (recommended) B) Manually enter the requirements list (quick mode)
Scenario 2: Too many requirements
If the number of requirements > 10, ask the user:
⚠️ {N} requirements detected; refinement may take a long time
You can choose: A) Refine all requirements B) Refine only the core requirements (the first 5) C) I will choose which requirements to refine
Notes
- One requirement at a time: avoid overburdening the user
- Structured questions: scenarios, steps, boundaries, exceptions, acceptance criteria
- Boundary conditions are important: clarify constraints to avoid later rework
- Acceptance criteria should be quantifiable: facilitates subsequent testing and acceptance
- Markdown storage: the requirements list is human-readable and editable
Output quality comparison
✅ Good example:
- 有数据引用:「根据 Q4 数据,留存率从 35% 降至 28%」
- 有验证来源:「数据来源:Google Analytics, 2025-12-01」
- 有明确建议:「建议将新手引导步骤从 5 步减少至 3 步」
❌ Bad example:
- 模糊结论:「数据表明留存率有所下降」
- 无来源:「根据经验,这个功能很重要」
- 没有行动建议:「留存是个问题」
Common pitfalls / Red Flags — STOP
If any of the following occurs, stop immediately and backtrack:
| Misconception | Correct approach |
|---|---|
| Drawing conclusions using "should", "probably", "seems" | Must be based on actual data and verification |
| Claiming completion without running checks | Verify first, then state |
| Skipping key steps due to time pressure | No exceptions; the tighter the time, the stricter you must be |
| The thought that "this time it should be fine" | Re-verify every time |
Output Quality Check / Verification Checklist
- Prerequisite dependencies are satisfied (input documents/data have been collected)
- All core steps have been executed
- Output document has been generated to the
docs/directory - Every judgment is supported by data/evidence
- 2-3 follow-up skills have been recommended
⚠️ If any item fails → complete it before marking as done.