--- name: wf description: 从 RequirementsDoc.md 和 PRD.md 生成 FeatureSummary.md,提供功能全貌概览。 --- # Write FeatureSummary > **文档定位**:FeatureSummary 是「功能契约」文档,是产品与开发的桥梁。精确定义功能边界、输入输出、依赖关系,确保双方对"做什么"达成共识。 当用户调用 `/wf` 时,执行以下步骤: ## 1. 读取源文档 读取以下文件: 1. `doc/RequirementsDoc.md` - 必须存在 2. `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 按以下结构生成文档: ```markdown # {产品名称} - 功能摘要 ## 文档信息 | 项目 | 内容 | |------|------| | 版本 | 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 中的功能