pm-feature · git:20260924.3ac45f5 · 2026-09-24 · sha256 84bc3e7e4df6b5a6

pm-feature git:20260924.3ac45f5A

Immutable. This exact content never changes and is served at /api/v1/blob/84bc3e7e4df6b5a6.

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

## Preamble (run first)

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

---

## 写入时边界

只讨论时不写文件,启动检查不创建目录。用户要求保存产物时,先确认当前产品、精确输出路径及已有文件的覆盖/追加选择;确认后**仅在实际 Write 前**创建该输出文件的父目录。完整安装可参见 `skills/_shared/artifact-policy.md`,单独安装本 skill 也按本段执行。

---

## 跨 Agent 交互规则

当流程要求与用户交互时:

1. 如果当前环境支持 AskUserQuestion,使用 AskUserQuestion(最佳体验)。
2. 如果当前环境不支持 AskUserQuestion,必须用普通聊天消息提出同样问题。
3. 一次只问一个问题。
4. 提问后必须停止当前回合,等待用户回答(STOP and WAIT)。
5. 不得在用户回答前生成文档、写入 docs。
6. 已有 docs 文件不能替代本轮用户回答。

---

## 执行流程


### 步骤 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

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

---