name: 110-requirement-planning description: 软件需求规划技能,通过启发式访谈将用户想法转化为PRD。当用户需要:(1)规划新产品或梳理功能范围, (2)编写PRD文档, (3)设计业务流程和站点地图时触发。 alwaysApply: false author: "axeon(23231269@qq.com)" version: "2.0.0"
需求规划
项目环境检测
从当前目录向上查找 project-info.md,最多 3 层,找到后记为 PROJECT_ROOT。详见 检测方法与前置检查。未找到 → 提示用户先执行 0-init。
核心原则
| 原则 | 说明 |
|---|---|
| 不假设,只验证 | 每一个需求点都必须经过用户确认,从不凭空推测 |
| 深入背景 | 通过 5 层 Why 挖掘真实业务痛点,而非表面需求 |
| 启发式引导 | 使用类比、场景推演、反向思考激发用户思考 |
| 反复澄清 | 功能模块至少经过概念→边界→细节 3 轮确认 |
| 用户中心 | 每个功能必须映射到具体用户故事和使用场景 |
需求三层模型
需求存在三个层次,各司其职:
| 层次 | 领域模块 | 前端M(一级菜单) | 前端P(页面组) |
|---|---|---|---|
| 关注点 | 系统做什么 | 用户在哪里找到功能 | 用户看到和操作什么 |
| 内容 | 业务逻辑、规则、跨端交互、状态流转 | 导航结构、菜单分组 | 线框图、交互流程、页面状态 |
| 指导 | 后端开发+数据库设计 | 前端导航架构 | 前端页面开发 |
| 编号 | domains/M01 | M01-{name}/ | M01P01-{name}.md |
三层之间的关系:
| 关系 | 说明 |
|---|---|
| 多个前端M可能对应同一个领域M | guest的"M01-社区"和saas的"M02-社区管理"都对应领域M的"M06-社区与内容" |
| 一个前端M下包含多个P | saas的"M03-POI管理"下有M03P01-POI管理、M03P02-目的地管理 |
| 前端P文档的数据需求引用领域M | 前端P只描述"要什么数据",领域M描述"业务规则和数据约束" |
| 领域M整合所有前端对同一业务领域的需求 | 后端开发者只看domains/即可理解完整业务 |
前后端编号独立:前端M按导航结构编号,领域M按业务领域编号,通过映射表关联。
触发检查
检查 PROJECT_ROOT/project-info.md 是否存在。
| 条件 | 操作 |
|---|---|
PROJECT_ROOT/project-info.md 存在 |
读取文件内容,执行 Phase 1 需求访谈与澄清 |
PROJECT_ROOT/project-info.md 不存在 |
跳转执行 0-init,初始化完成后自动回到 110-requirement-planning 继续执行 |
跳转 0-init 时的信息传递:
告知 0-init 当前是从 110-requirement-planning 跳转而来,0-init 完成初始化后应自动触发回到 110-requirement-planning。
角色职责
| 角色 | 职责 | 智能体 |
|---|---|---|
| 主导 | 需求规划 | product-manager |
| 协作 | 技术可行性 | system-architect |
| 协作 | 验收标准 | test-engineer |
| 协作 | 工期评估 | project-manager |
规划流程
Phase 1: 需求访谈与澄清(必须首先完成)
在编写任何文档之前,必须通过多轮启发式访谈与用户充分澄清需求细节。访谈执行原则:逐轮推进、确认理解、启发式追问、记录决策、用户确认。详见 访谈原则。
各阶段详细执行方法:1.1-1.6 每个阶段的详细提问清单、话术示例、检查清单见 访谈指南。
访谈执行原则(全局要求)
| 原则 | 执行方式 |
|---|---|
| 逐题提问 | 每次只问一个问题,等待用户回答后再问下一个,禁止一次性列出所有问题 |
| 使用选择框 | 必须使用 AskUserQuestion 工具呈现可点击的选择框,禁止纯文本列出选项让用户手工录入 |
| 逐轮推进 | 每轮聚焦1个层次,完成当前阶段后再进入下一阶段 |
| 一步一确认 | 每个步骤、每个模块、每个问题都需单独确认,禁止批量确认 |
重要:以上原则是全局要求,适用于所有阶段(1.1-1.6)。详细的访谈原则、追问策略和执行方式见 访谈指南。
提问方式规范
所有访谈问题必须使用 AskUserQuestion 工具,参数要求:question(问题内容)、header(≤12字符)、options(3-5个可点击选项)、multiSelect(true/false)。工具自带"Other"选项供自由录入。
访谈框架(6个阶段)
1.1 项目背景访谈(Discovery)
目标:理解业务上下文、成功标准和约束条件。6个核心问题逐个提出。
1.2 需求探索与头脑风暴(Brainstorming)
目标:在理解背景后、锁定需求前,主动探索产品可能性。
| 环节 | 产出 |
|---|---|
| 用户场景扩展 | 典型+边缘场景清单 |
| 竞品功能映射 | 竞品功能对比表 |
| SCAMPER 发散 | 3-8个创新功能创意 |
| 技术赋能探索 | 技术驱动功能清单 |
| 架构能力识别 | UniWeb/SaaS 已支持能力清单(标注无需设计) |
| 功能汇总归类 | Must/Should/Could 功能清单 |
架构能力识别:基于 UniWeb + SaaS 技术栈,识别需求中已被架构覆盖的功能。展示格式和完整清单见 访谈指南。
1.3 产品架构规划(Architecture)
用户角色和终端平台是 N:N 关系。先确定角色,再为每个角色选择平台。详见 role-platform-matrix.md。
| 步骤 | 确认项 |
|---|---|
| 第一步 | 用户角色 |
| 第二步 | 终端平台 |
| 第三步 | 项目清单(含后端 {project-name}) |
| 第四步 | 模块划分与优先级(含依赖确认) |
| 第五步 | 非功能需求 |
1.4 站点地图与页面规划(Sitemap & Pages)
目标:将模块功能映射为用户可见的页面结构,确定完整的站点地图、页面层级和导航关系。
仅对前端项目执行,后端项目不参与本阶段。
| 步骤 | 确认项 | 产出 |
|---|---|---|
| 第一步 | 导航结构 | 全局导航图 |
| 第二步 | 站点地图(完整页面层级树) | 页面清单+层级关系 |
| 第三步 | 前端M→领域M映射 | 映射表 |
| 第四步 | 页面间跳转关系 | 页面流转图 |
| 第五步 | 用户确认 | 确认的站点地图 |
门控规则:站点地图未确认前,禁止进入1.5需求澄清阶段。
详细执行步骤、展示格式和检查清单见 访谈指南。
1.5 需求澄清与验证(Clarification & Verification)
从按模块澄清改为按页面澄清,每个页面的澄清覆盖其包含的所有模块功能。仅对前端项目执行。
| 执行规则 | 说明 |
|---|---|
| 执行顺序 | P0前端项目 → P1前端项目 |
| 执行粒度 | 一次聚焦一个页面,按1.4确认的页面清单逐一澄清 |
| 页面覆盖 | 每个页面的澄清必须覆盖其包含的所有模块功能 |
| 同角色复用 | 同一角色的用户故事仅澄清一次,后续项目复用 |
每个页面7步法:页面定位 → 页面元素 → 交互流程 → 异常路径 → 状态设计 → 线框图(强制) → 复述验证。
详细执行步骤、提问模板和检查清单见 访谈指南。
流程裁剪规则
根据项目复杂度自动简化访谈流程。详见 流程裁剪规则。
1.6 汇总确认(Final Confirmation)
将所有访谈信息整合为完整汇总文档,向用户提出最终确认三问,全部通过后才允许进入文档编写。
访谈检查清单(1.6最终门控)
所有访谈结束后,对照以下清单确认是否可以进入文档编写:
基础检查(1.1-1.3):
- 项目背景和触发因素已明确
- 成功指标已量化
- 目标用户和角色已定义(含用户故事)
- 用户角色和终端平台已确认
- 项目清单已确认
- 模块划分与优先级已确认
- 架构已支持能力已识别
站点地图检查(1.4):
- 全局导航结构已确认(Tab/侧边栏/浮动按钮)
- 完整页面清单已列出(含Tab主页、子页面、弹窗/浮层)
- 前端M→领域M映射表已完成
- 页面间跳转关系已描述
- 用户已确认完整站点地图
需求澄清检查(1.5):
- 每个页面的定位和核心使命已明确
- 每个页面的元素和布局已描述
- 每个页面的交互流程已说明
- 每个页面的异常路径已覆盖(操作失败、超时、冲突)
- 每个页面的状态设计已完成
- 每个页面有线框图(强制)
- 页面间导航和用户体验连贯性已验证
- 用户已复述确认所有页面需求
任一项未完成,不得进入文档编写阶段。
完整清单、追问策略和示例对话见 访谈指南。
访谈记录保存
Phase 1全部完成后(1.6汇总确认通过)统一保存一份完整的访谈记录。
保存路径、命名规则和模板详见 访谈记录模板。
Phase 2: PRD文档编写
访谈完成且用户确认后,进入文档编写阶段。
输出范围限制(重要)
需求阶段只输出产品需求文档(PRD),不输出技术设计文档。
| 禁止输出 | 说明 | 正确阶段 |
|---|---|---|
| ❌ 数据模型文档 | 如 data-model.md |
设计阶段 (200-database-design) |
| ❌ 数据库设计 | 如 database-schema.md |
设计阶段 (200-database-design) |
| ❌ API可行性评估 | 如 api-feasibility.md |
开发阶段 (210-java-uniweb-dev) |
| ❌ 性能架构方案 | 如 performance-architecture.md |
开发阶段 (210-java-uniweb-dev) |
| ❌ 技术选型文档 | 如 tech-stack.md |
开发阶段 (210-java-uniweb-dev) |
PRD文档结构(三层)
文档职责边界:
| 文档类型 | 职责范围 | 不包含 |
|---|---|---|
| 前端P文档 | 展示什么、怎么交互、什么状态、需要什么数据 | 不描述业务规则(引用领域M文档) |
| 领域M文档 | 业务规则、跨端交互、状态流转、权限、并发约束 | 不描述页面布局和交互细节;不定义字段、表结构、API |
| 根README | 项目总览,唯一汇总文档,包含所有项目信息 | 不重复各子文档细节 |
产出结构:
prds/
├── README.md # 项目总览(唯一汇总文档,包含所有项目信息)
├── domains/ # 业务领域(整合多端共享的业务对象和规则)
│ └── M{seq}-{name}.md # 领域模块文档
├── {role}-{platform}/ # 前端项目
│ └── M{seq}-{name}/ # 一级菜单/功能组
│ └── M{seq}P{seq}-{name}.md # 页面组文档
└── reviews/
文档内容要求
前端页面组文档(M{seq}P{seq}-{name}.md) 必须包含:
| 章节 | 说明 | 强制 |
|---|---|---|
| 页面定位 | 所属菜单、页面类型、核心使命 | ✅ |
| 页面元素 | 按视图自包含组织的ASCII线框图 + 区域说明 | ✅ |
| 交互说明 | 用户操作→系统响应的完整表格 | ✅ |
| 异常路径 | 操作失败、超时、冲突等异常场景 | ✅ |
| 页面状态 | 空状态/加载/正常/异常 | ✅ |
| 数据需求 | 页面需要的数据,引用领域M文档 | ✅ |
| 前置条件 | 进入页面的前提 | ✅ |
| 响应式说明 | 多端适配差异(仅多端项目) | 条件 |
领域模块文档(domains/M{seq}-{name}.md) 必须包含:
| 章节 | 说明 | 强制 |
|---|---|---|
| 模块概述 | 核心职责和业务边界 | ✅ |
| 需求来源 | 该模块的需求来自哪些前端页面 | ✅ |
| 核心业务对象 | 业务概念、归属关系、量级、唯一性、生命周期 | ✅ |
| 对象关系 | 对象间的1:1/1:N/N:M关系,含跨模块引用 | ✅ |
| 功能列表 | 整合多端的同类功能 | ✅ |
| 业务规则 | 核心规则、边界条件 | ✅ |
| 跨端交互 | 多端之间的联动行为 | 条件(有多端联动时) |
| 状态流转 | 状态机或状态变更 | 条件(有状态时) |
| 并发约束 | 并发控制要求(只描述业务约束) | 条件(有并发场景时) |
| 权限规则 | 各角色的操作权限 | ✅ |
| 依赖模块 | 与其他模块的依赖关系 | ✅ |
重要:领域模块文档描述"业务上存在什么概念及其关系",不定义字段、类型、表结构、API路径、技术选型。这些属于技术设计阶段的工作。
根目录 README.md 必须包含以下章节,按顺序排列:
| 章节 | 层级 | 说明 |
|---|---|---|
| 概述 | ## |
项目名称、核心价值、核心能力 |
| 项目背景 | ## |
触发因素、现有方案、核心痛点 |
| 成功指标 | ## |
量化指标表 |
| 目标用户 | ## |
角色-用户-平台表 |
| 核心价值 | ## |
各角色一句话价值 |
| 用户故事 | ## |
按角色分组 |
| 业务领域 | ## |
下含 ### 领域模块(模块清单表)+ ### 交互流程(Mermaid时序图,participant使用具体模块名) |
| {角色名}{平台名}端 | ## |
每个端包含三个 ### 子节:### 功能模块(页面表格按一级菜单分组)、### 领域映射(前端M→领域M映射表)、### 验收标准(验收项表) |
| 功能模块 | ## |
Must/Should/Could/Won't 功能范围表 |
| 非功能需求 | ## |
性能、兼容性、安全要求 |
| 架构已支持能力 | ## |
UniWeb+SaaS 已有能力清单 |
| 业务约束 | ## |
外部依赖等约束 |
重要:
### 领域模块必须在### 交互流程上面。交互流程的时序图中 participant 必须使用具体模块名(如M01-用户与认证),禁止使用模糊的"业务领域"。
交互流程设计规范:
| 规则 | 说明 |
|---|---|
| 核心领域必须有流程图 | 涉及用户核心价值链的领域(如行程管理、订单支付)必须有交互流程图,无论是否跨端 |
| 跨端联动必须有流程图 | 多端之间存在数据同步、状态联动、审批流转等行为时必须有流程图 |
| 单端核心流程也要覆盖 | 即使只有单端参与,只要涉及多步骤状态流转(如行程的创建→预订→执行→完成),也需要流程图 |
| 流程图需完整覆盖业务链路 | 流程图应覆盖从触发到完成的完整业务链路,不截断。如行程流程应包含创建→预订→执行→分享 |
| participant 使用具体模块名 | 时序图中 participant 必须写具体模块名(如 M02-行程管理),涉及跨模块协作时列出所有相关模块 |
按 PRD模板 编写。
⚠️ 完成验证(强制,全自动执行)
开发工作完成后,立即按以下顺序自动执行:
- 强制调用
111-requirement-review - 如果评审不通过(< 95),自动修复问题,然后回到步骤 1(最多 5 轮)
- 直到评审通过(≥ 95),才向用户报告最终结果
此流程全自动执行:中间不暂停、不询问、不汇报。 未收到通过确认前,禁止结束本技能任务。
输出要求
语言要求: 所有输出文档必须使用中文编写(包括PRD、访谈记录、评审报告等)
输出位置: PROJECT_ROOT/requirement/prds/
目录结构: 详见 目录结构