---
name: pm-feature
version: 2.0.1
description: |
  Use when: 需要细化功能实现细节、拆解复杂功能、为开发准备详细任务、功能点需多维度描述
  Do NOT use when: 功能已足够简单可直接进入开发、仅需功能列表无需深度拆解
allowed-tools:
  - Agent
  - Read
  - Write
  - AskUserQuestion
  - Bash
---

## Preamble (run first)

```bash
bash "$(dirname "${BASH_SOURCE[0]}")"/check-update.sh 2>/dev/null || true
mkdir -p docs/02-方案设计

echo "📊 正在检查前置文档..."
if [ -f "docs/02-方案设计/PRD产品需求文档.md" ]; then
  echo "✅ PRD文档 - 已找到"
else
  echo "⏳ PRD文档 - 未找到"
fi
if [ -f "docs/02-方案设计/原型设计方案.md" ]; then
  echo "✅ 原型设计方案 - 已找到"
else
  echo "⏳ 原型设计方案 - 未找到"
fi
```

---

## 执行流程


### 步骤 1: 选择需要拆解的功能

> 您希望拆解哪个功能？
>
> A) 拆解所有核心功能（基于PRD功能列表）
> B) 拆解单个功能（请指定功能名称）
> C) 拆解某个模块的所有功能
> D) 其他（请手动输入）
>
> 💡 提示：开发准备→拆解所有，技术评审→拆解单个复杂功能，项目排期→拆解某模块

记录到变量 `FEATURE_SCOPE`

---

### 步骤 2: 读取前置数据

**必需文档**：PRD产品需求文档、原型设计方案（需其一）
**可选文档**：技术对接方案、MVP方案

如果 PRD 不存在：

> ⚠️ 未找到 PRD 文档
>
> A) 执行 /pm-docs 生成 PRD
> B) 使用 MVP 方案作为输入
> C) 手动输入功能需求（快速模式）

---

### 步骤 3: 功能列表提取

从 PRD 提取功能模块划分、功能需求列表、优先级。
从原型设计提取页面功能、交互功能、状态功能。

> 📋 基于PRD识别出以下功能列表：
>
> **用户模块**：用户注册、登录、个人信息管理
> **业务模块**：商品浏览、搜索、购物车、订单管理
>
> 是否拆解所有功能？
>
> A) 是的，拆解所有
> B) 只拆解部分
> C) 需要调整功能列表

---

### 步骤 4: 功能拆解（逐个功能）

对每个功能使用拆解模板：

#### 4.1 功能基本信息

> 📝 **{功能名称}**
> **功能描述**：{从PRD提取}
> **优先级**：P0/P1/P2
> **用户价值**：{解决什么用户问题}

#### 4.2 用户场景分析

> 🎯 使用动机：
> A) 完成核心任务 B) 解决具体问题 C) 满足情感需求
> 使用场景：
> A) 日常高频 B) 低频但重要 C) 偶发场景

#### 4.3 功能流程拆解

**主流程**：前置条件→操作步骤序列(6-12步)→后置操作
**分支流程**：对每个异常场景：触发条件→系统处理→用户反馈→后续操作

#### 4.4 界面元素拆解

> 🎨 页面结构：顶部/主体/底部元素
> 交互元素：输入框(校验规则)、按钮(状态)、列表(分页)
> 状态展示：加载状态/空状态/错误状态

#### 4.5 数据逻辑拆解

> 💾 输入数据：字段名/类型/必填/校验规则
> 数据处理：存储位置/更新逻辑/删除策略
> 数据校验：格式校验/业务校验/权限校验

#### 4.6 异常处理

前端异常（网络/校验/超时）和后端异常（参数/业务/系统）的处理方案 + 边界条件

#### 4.7 技术实现要点

> 🔧 前端实现：组件选择、状态管理、性能优化
> 后端实现：API设计、数据库操作、缓存策略
> 第三方依赖：{服务名称} - {用途}

#### 4.8 测试要点

功能测试（正常/异常/边界）、性能测试、安全测试、兼容性测试

---

### 步骤 5: 输出功能拆解文档

使用 Write 工具创建 `docs/02-方案设计/功能细节拆解.md`。

参考 `references/output-template.md` 模板，文档结构：

1. **功能列表总览** - 模块划分、依赖关系
2. **各模块功能拆解** - 每个功能的完整拆解（基本信息/场景/流程/界面/数据/异常/技术/测试/排期）
3. **附录** - 开发任务清单、技术风险识别

---

## Subagent 并行拆解（可选）

如果有大量功能（>5个），可使用 Agent 工具并行拆解：

```markdown
Agent 1: 拆解用户模块的所有功能
Agent 2: 拆解业务模块的所有功能
Agent 3: 拆解订单模块的所有功能

每个 subagent 按拆解模板输出到文档对应章节
主 agent 等待所有完成，整合输出最终文档
```

---

## 兜底机制

### 场景: 无前置文档

提供快速模式，用户手动输入功能名称和描述，AI 按模板自动拆解。

---

## 注意事项

1. 核心拆解模板包含8个维度：基本信息→场景→流程→界面→数据→异常→技术→测试
2. 每个功能拆解完成后记录开发排期（前端/后端/第三方/测试）
3. 完整输出模板详见 `references/output-template.md`
4. 大量功能可使用 subagent 并行拆解提升效率

---

## 输出质量对比

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

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

---

## 常见误区 / Red Flags — STOP

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

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

---

## 推荐下一步

建议执行：
1. `/pm-user-story` - 将功能拆解为具体用户故事
2. `/pm-journey` - 绘制用户旅程地图，验证功能覆盖
3. `/pm-mvp` - 根据功能拆解重新审视 MVP 范围

---

## 产出质量检查 / Verification Checklist

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

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

---
