---
name: pm-market
version: 2.1.0
description: |
  Use when: 需要了解市场格局与竞争态势、收集行业数据、分析竞品优劣势、评估市场机会
  Do NOT use when: 市场已有充分内部调研数据、仅需简单规模估算无需深度分析
allowed-tools:
  - Read
  - Write
  - AskUserQuestion
  - Agent
  - Bash
  - WebSearch
  - mcp__exa__web_search_exa
  - mcp__exa__web_fetch_exa
---

## Preamble (run first)

```bash
bash "$(dirname "${BASH_SOURCE[0]}")"/check-update.sh 2>/dev/null || true
# 创建需求调研目录
mkdir -p docs/01-需求调研

# 检查是否有需求调研报告
if [ ! -f "docs/01-需求调研/需求调研报告.md" ]; then
  echo "⚠️  未找到需求调研报告"
  echo ""
  echo "建议先执行 /pm-demand 完成需求调研"
fi
```

---

## 执行流程


### 步骤 1: 读取前置数据（主 agent）

**如果有需求调研报告**：

使用 Read 工具读取 `docs/01-需求调研/需求调研报告.md`

提取：
- 产品名称
- 行业赛道
- 目标用户
- 核心痛点

**如果没有需求调研报告**：

进入快速模式，使用 AskUserQuestion 收集基础信息。

---

### 步骤 2: 确定搜索方向（主 agent - 用户交互）

使用 AskUserQuestion 询问：

> 🎯 我要重点分析哪些方面？
>
> A) 市场规模与增长趋势
> B) 竞品分析
> C) 用户需求与行为
> D) 行业政策与风险
> E) 全部分析（推荐但耗时较长）

用户选择后，记录到变量 `MARKET_FOCUS`

---

### 步骤 3: 派发 subagent 执行市场调研（核心优化）

**优化说明**：
- 主 agent 只负责派发任务和接收结果
- Subagent 执行所有搜索和分析工作
- 搜索细节不占用主 agent 上下文

---

#### 3.1 构建搜索任务清单

根据用户选择，构建任务清单：

**如果选择"市场规模"**：
```json
[
  {
    "task_id": "market_size",
    "keywords": ["{行业赛道} 市场规模 2025", "{行业赛道} 增长趋势"],
    "domains": ["iresearch.cn", "analysys.cn", "iimedia.cn"]
  }
]
```

**如果选择"竞品分析"**：
```json
[
  {
    "task_id": "competitor_analysis",
    "keywords": ["{行业赛道} 竞品分析", "{行业赛道} 主要玩家"],
    "domains": ["36kr.com", "huxiu.com", "qimai.cn"]
  }
]
```

**如果选择"全部"**：
```json
[
  {
    "task_id": "market_size",
    "keywords": ["{行业赛道} 市场规模"],
    "domains": ["iresearch.cn", "analysys.cn"]
  },
  {
    "task_id": "competitor_analysis",
    "keywords": ["{行业赛道} 竞品"],
    "domains": ["36kr.com", "huxiu.com"]
  },
  {
    "task_id": "user_behavior",
    "keywords": ["{目标用户} 消费行为"],
    "domains": ["questmobile.com.cn"]
  }
]
```

---

#### 3.2 使用 Agent 工具派发 subagent

**单个任务**：

使用 Agent 工具：

```
Tool: Agent
Parameters:
  subagent_type: "general-purpose"
  description: "市场调研-{task_id}"
  prompt: |
    你是一个市场调研专家。请执行以下任务：

    **任务 ID**: {task_id}
    **产品名称**: {产品名称}
    **行业赛道**: {行业赛道}
    **搜索关键词**: {keywords}
    **目标数据源**: {domains}

    **要求**：
    1. 搜索工具优先级：首选 AnySearch（Bash 调用 `anysearch_cli.py（先定位：检查 ~/.claude/skills/anysearch/scripts/ ~/.opencode/skills/anysearch/scripts/ ~/.openclaw/skills/anysearch/scripts/ ~/.cursor/skills/anysearch/scripts/ ~/.anysearch/scripts/ 或 which anysearch_cli.py，找到后 python3 <路径>）`search "查询词" --max_results 5 --domain finance --sub_domain finance.cn_stock），失败降级到 Exa MCP（mcp__exa__web_search_exa），最后才用 WebSearch。使用 WebSearch 时标注「⚠️ 降级模式」
    2. 搜索每个关键词
    3. 优先搜索目标数据源
    4. 提取关键数据（市场规模、增长率、主要玩家等）
    5. 返回结构化的 JSON 结果

    **输出格式**：
    ```json
    {
      "task_id": "{task_id}",
      "findings": [
        {
          "title": "数据标题",
          "source": "数据来源",
          "value": "数据值",
          "date": "数据日期"
        }
      ],
      "summary": "关键发现总结"
    }
    ```
```

**多个任务（并行优化）**：

同时派发多个 subagent：

```
# 并行派发 3 个 subagent
Agent 1: 市场规模调研
Agent 2: 竞品分析
Agent 3: 用户行为分析
```

**主 agent 等待所有 subagent 完成**，然后收集结果。

---

### 步骤 4: 整合结果并生成报告（主 agent）

**主 agent 接收所有 subagent 的返回结果**：

1. 读取 subagent 返回的 JSON 数据
2. 整合所有发现
3. 生成结构化的市场调研报告

**使用 Write 工具生成报告**：

```markdown
# 市场调研报告

## 一、市场规模与增长趋势

（从 subagent 结果中提取）

## 二、竞品分析

（从 subagent 结果中提取）

## 三、用户需求与行为

（从 subagent 结果中提取）

## 四、关键发现与建议

（主 agent 综合分析）

---

**生成时间**: {时间}
**调研范围**: {MARKET_FOCUS}
```

---

### 步骤 5: 推荐下一步（主 agent）

> ✅ 市场调研报告已生成：`docs/01-需求调研/市场调研报告.md`
>
> 建议执行：
> 1. /pm-priority - 基于市场调研确定优先级
> 2. /pm-position - 基于竞品分析确定产品定位
> 3. /pm-mvp - 规划 MVP 方案

---

## 对比：优化前 vs 优化后

### 优化前（pm-market v1）

```
主 agent 执行流程：
1. 询问用户（10 tokens）
2. 执行搜索1（500 tokens 结果）
3. 执行搜索2（500 tokens 结果）
4. 执行搜索3（500 tokens 结果）
5. 整理结果（200 tokens）
6. 生成报告（100 tokens）

总计：1810 tokens
耗时：串行执行，约 3-5 分钟
```

### 优化后（pm-market-v2）

```
主 agent 执行流程：
1. 询问用户（10 tokens）
2. 派发 subagent（20 tokens）
   └─ Subagent 执行搜索（不占用主 agent 上下文）
3. 接收结果（100 tokens 结构化数据）
4. 整合报告（100 tokens）

总计：230 tokens
耗时：并行执行，约 1-2 分钟
效率提升：87% token 节省，2.5x 速度提升
```

---

## 关键优化点

### 1. 上下文节省
- ✅ 搜索结果不占用主 agent 上下文
- ✅ 主 agent 只处理结构化结果
- ✅ Token 使用减少 70-90%

### 2. 执行效率
- ✅ 多个搜索任务并行执行
- ✅ 总耗时减少 50-70%
- ✅ 用户体验显著提升

### 3. 可维护性
- ✅ 主 agent 逻辑清晰，聚焦决策
- ✅ Subagent 职责单一，易于测试
- ✅ 代码结构更清晰

---

## 注意事项

### 何时使用 subagent

✅ **适合**：
- 联网搜索（结果占用大量 token）
- 文档生成（可并行）
- 数据分析（计算密集）
- 竞品分析（多次搜索）

❌ **不适合**：
- 用户交互（AskUserQuestion）
- 简单决策（if-else 判断）
- 快速任务（< 10 秒）

### 异常处理

如果 subagent 执行失败：
1. 主 agent 检测到错误
2. 提供降级方案（手动输入或简化搜索）
3. 记录错误信息供用户排查

---

## 版本说明

**v2.0.0** - Subagent 架构重构
- 新增 Agent 工具支持
- 搜索任务并行化
- 主 agent 上下文优化
- 效率提升 2.5x

**v1.0.0** - 初始版本
- 基础市场调研功能

---

## 输出质量对比

**✅ Good 示例**：
```
- 有数据引用：「根据 Q4 数据，留存率从 35% 降至 28%」
- 有验证来源：「数据来源：Google Analytics, 2025-12-01」
- 有明确建议：「建议将新手引导步骤从 5 步减少至 3 步」
```

**❌ Bad 示例**：
```
- 模糊结论：「数据表明留存率有所下降」
- 无来源：「根据经验，这个功能很重要」
- 没有行动建议：「留存是个问题」
```

---

## 常见误区 / Red Flags — STOP

出现以下情况立即停止并回溯：

| 误区 | 正确做法 |
|------|---------|
| 使用"应该"、"大概"、"看起来"做结论 | 必须基于实际数据和验证 |
| 未运行检查就声称已完成 | 先验证，再陈述 |
| 因时间紧迫跳过关键步骤 | 没有例外，时间紧更要严格 |
| "这次应该没问题"的想法 | 每次都要重新验证 |

---

## 产出质量检查 / Verification Checklist

- [ ] 前置依赖已满足（输入文档/数据已收集）
- [ ] 核心步骤已全部执行
- [ ] 输出文档已生成到 `docs/` 目录
- [ ] 每个判断都有数据/证据支撑
- [ ] 已推荐 2-3 个后续 skill

> ⚠️ 任何一项未通过 → 补全后再标记完成。

---
- 串行执行搜索
