Skills included: - Review (6): rr, rp, rf, rd, ru, rt - Write (5): wp, wf, wd, wu, wt - Modify (6): mr, mp, mf, md, mu, mt - Utils (2): iter, up Supports complete document lifecycle: RequirementsDoc → PRD → FeatureSummary → DevelopmentPlan → UIDesign → tasks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.0 KiB
| name | description |
|---|---|
| wf | 从 RequirementsDoc.md 和 PRD.md 生成 FeatureSummary.md,提供功能全貌概览。 |
Write FeatureSummary
文档定位:FeatureSummary 是「功能契约」文档,是产品与开发的桥梁。精确定义功能边界、输入输出、依赖关系,确保双方对"做什么"达成共识。
当用户调用 /wf 时,执行以下步骤:
1. 读取源文档
读取以下文件:
doc/RequirementsDoc.md- 必须存在doc/PRD.md- 必须存在
如果文件不存在,提示用户:
缺少上游文档,请先确保 RequirementsDoc.md 和 PRD.md 存在。
如果已存在 doc/FeatureSummary.md,同时读取作为参考(保持风格一致)。
2. 分析功能需求
从 PRD 中提取以下信息:
2.1 功能模块
- 从 PRD 3.1 功能架构提取模块结构
- 从 PRD 3.2 功能详情提取各模块功能点
2.2 功能分类
按以下维度整理功能:
- 按模块分组
- 按优先级标注(P0/P1/P2)
- 按用户角色关联
2.3 功能边界
明确每个功能的:
- 输入:触发条件、输入数据
- 输出:预期结果、输出数据
- 边界:不包含什么、异常情况
3. 生成 FeatureSummary
按以下结构生成文档:
# {产品名称} - 功能摘要
## 文档信息
| 项目 | 内容 |
|------|------|
| 版本 | v1.0 |
| 创建日期 | {YYYY-MM-DD} |
| 来源文档 | PRD.md |
## 1. 功能总览
### 1.1 功能统计
| 类别 | 数量 |
|------|------|
| 功能模块 | X 个 |
| P0 功能 | X 个 |
| P1 功能 | X 个 |
| P2 功能 | X 个 |
### 1.2 功能架构图
**【必须】使用模块图展示功能架构和模块关系:**
┌─────────────────────────────────────────────────┐ │ {产品名称} │ ├─────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 模块A │ │ 模块B │ │ 模块C │ │ │ │ ──────── │ │ ──────── │ │ ──────── │ │ │ │ • 功能1 │ │ • 功能1 │ │ • 功能1 │ │ │ │ • 功能2 │ │ • 功能2 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────┘
### 1.3 模块依赖关系
**【必须】使用依赖图展示模块间关系:**
┌──────────┐ │ 模块A │ └────┬─────┘ │ 依赖 ▼ ┌──────────┐ ┌──────────┐ │ 模块B │ ◀── │ 模块C │ └──────────┘ └──────────┘
## 2. 功能清单
### 2.1 {模块名称}
**模块职责**: {一句话描述模块职责}
#### 功能列表
| ID | 功能 | 描述 | 优先级 | 关联用户故事 |
|----|------|------|--------|--------------|
| F-001 | {功能名} | {简要描述} | P0 | US-xxx |
#### 功能契约详情
**F-001: {功能名}**
| 契约项 | 说明 |
|--------|------|
| **触发条件** | {什么情况下触发此功能} |
| **输入** | {输入数据/参数} |
| **处理逻辑** | {核心处理步骤} |
| **输出** | {输出结果/返回值} |
| **异常情况** | {可能的错误及处理} |
| **边界说明** | {不包含什么、限制条件} |
{重复以上结构覆盖所有功能}
{重复以上结构覆盖所有模块}
## 3. 功能依赖矩阵
**【必须】使用矩阵表格展示功能间依赖:**
| 功能 | 依赖 F-001 | 依赖 F-002 | 依赖 F-003 |
|------|------------|------------|------------|
| F-001 | - | | |
| F-002 | ✓ | - | |
| F-003 | | ✓ | - |
说明:
- ✓ 表示行功能依赖列功能
- 空白表示无依赖
## 4. 功能流程图
**【必须】使用流程图展示核心功能流程:**
### 4.1 {核心流程名称}
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ F-001 │ ──▶ │ F-002 │ ──▶ │ F-003 │ ──▶ │ 完成 │ │ {功能} │ │ {功能} │ │ {功能} │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ ▼ 异常 ┌─────────┐ │ 错误处理 │ └─────────┘
## 5. 版本规划
| 版本 | 包含功能 | 功能ID | 目标 |
|------|----------|--------|------|
| MVP | {功能列表} | F-001, F-002 | {目标} |
| v1.1 | {功能列表} | F-003, F-004 | {目标} |
| v2.0 | {功能列表} | F-005+ | {目标} |
## 6. 接口契约预览
> 详细接口定义在 DevelopmentPlan 中,此处仅列出关键接口
| 功能 | 接口类型 | 简要说明 |
|------|----------|----------|
| F-001 | API | {说明} |
| F-002 | Event | {说明} |
4. 保存文档
将生成的 FeatureSummary 保存到 doc/FeatureSummary.md。
如果文件已存在,覆盖原文件(历史版本通过 git 追溯)。
5. 输出摘要
向用户展示生成摘要:
- FeatureSummary 文件路径
- 功能模块数量
- 各优先级功能数量
- 建议的下一步操作(运行
/rf评审)
可视化输出要求
FeatureSummary 作为「功能契约」文档,需要精确传达功能定义,必须包含:
| 章节 | 可视化形式 | 必要性 |
|---|---|---|
| 1.2 功能架构图 | 模块图(ASCII) | 必须 |
| 1.3 模块依赖关系 | 依赖图(ASCII) | 必须 |
| 3. 功能依赖矩阵 | 矩阵表格 | 必须 |
| 4. 功能流程图 | 流程图(ASCII) | 必须 |
注意事项
- FeatureSummary 是产品与开发的桥梁,语言要精确、无歧义
- 功能摘要必须完全来源于 PRD,不要臆造功能
- 每个功能必须有明确的输入、输出、边界
- 功能 ID 必须唯一(F-xxx 格式)
- 优先级必须与 PRD 一致
- 功能依赖关系必须明确,避免循环依赖
质量检查
生成 FeatureSummary 后,自查以下项目:
- 所有功能都有唯一 ID(F-xxx)
- 所有功能都有契约详情(输入/输出/边界)
- 功能架构图清晰展示模块结构
- 模块依赖图清晰展示依赖关系
- 功能依赖矩阵完整
- 核心流程有流程图
- 优先级与 PRD 一致
- 无遗漏 PRD 中的功能