--- 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 > ⚠️ 任何一项未通过 → 补全后再标记完成。 ---