需求收集Skill GatheringRequirements

需求收集是一种系统化方法,用于在项目开始前澄清用户需求、偏好和约束,涉及分类工作类型、调查现有系统、发现边缘用例和集成点、解析假设并创建详细规格。关键词包括需求分析、用户研究、产品管理、软件开发、项目管理。

需求分析 0 次安装 0 次浏览 更新于 3/8/2026

name: 需求收集 description: 在规划或实施之前系统化澄清用户需求、偏好和约束。分类工作类型、调查现有系统、发现边缘用例和集成点、解析假设并创建详细规格。用于构建功能、增强或集成时需要澄清需求的情况。

需求收集

何时使用

  • 用户指定他们希望如何完成某事
  • 澄清偏好或约束
  • 理解需要构建什么
  • 在工作开始前收集规格
  • 基于现有系统构建(增强、集成)

核心工作流程

1. 分类请求类型

询问1-2个快速问题以理解上下文:

Q1: 工作类型是什么?

  1. 新功能 - 从零开始构建
  2. 增强 - 改进现有功能
  3. 集成 - 连接外部系统
  4. 重构 - 改变实现而不改变行为

Q2: 当前知识水平?

  • 清晰愿景 - 用户确切知道他们想要什么
  • 一般想法 - 目标清晰,实现细节模糊
  • 探索选项 - 不确定方法

2. 预调查(如果需要)

何时首先调查:

  • 增强现有功能(理解当前实现)
  • 集成不清晰(探索现有模式)
  • 技术约束未知(调查能力)
  • 基于现有架构构建

何时跳过调查:

  • 绿地功能(尚无现有内容)
  • 已提供完整需求
  • 简单、清晰范围,无依赖

委托异步调查代理以理解现有系统。结果保存在agent-responses/中。

将发现转化为知情问题:

  • ❌ 通用:“您想要哪些认证方法?”
  • ✅ 知情:“我看到JWT和刷新令牌。对于MFA:TOTP应用?短信代码?对所有用户必需还是可选?”

3. 通用发现问题

针对任何功能询问这些核心问题(适应上下文):

UQ-1: 快乐路径 “从用户角度逐步描述成功场景。”

  • 什么触发功能?
  • 用户采取什么操作?
  • 期望的结果是什么?

UQ-2: 边缘用例与约束 “对于这些场景应该发生什么?”

  • 空状态(无数据)
  • 巨大数据集(性能)
  • 无效输入(验证)
  • 网络故障(离线)
  • 并发操作(冲突)

UQ-3: 性能期望 “这应该给用户什么感觉?”

  • 即时(<100ms) - UI更新、简单操作
  • 快速(<1s) - API调用、数据获取
  • 最终(加载指示器) - 重处理
  • 后台(无需等待) - 异步操作

UQ-4: 失败模式 “什么不应该发生?什么最会挫伤用户?”

  • 数据丢失场景
  • 破坏现有工作流
  • 混淆错误状态

UQ-5: 范围边界 “在这个迭代中明确排除什么?”

  • 未来增强
  • 高级功能
  • 延迟的边缘用例

UQ-6: 集成点 “这与以下如何交互:”

  • 现有功能
  • 外部API或服务
  • 数据库或存储
  • 认证/授权
  • 第三方库

4. 功能特定发现

基于功能类型定制问题(选择相关):

认证/授权:

  • 凭据:邮箱/密码?社交登录?魔法链接?2FA/MFA?
  • 会话:持续时间?记住我?
  • 密码:长度/复杂度要求?
  • 登录失败:通用错误/账户锁定/CAPTCHA/速率限制?
  • MFA:TOTP应用?短信?邮箱?必需还是可选?

CRUD操作:

  • 验证:必填字段?格式规则?长度限制?唯一约束?
  • 并发编辑:最后写入胜出/显示冲突/锁定?
  • 删除:硬删除/软删除/确认/撤销?
  • 保存:等待服务器/乐观更新/显示保存中?

搜索与过滤:

  • 范围:搜索特定字段/所有文本/元数据?
  • 时机:输入时实时/暂停后/按Enter键?
  • 匹配:精确/包含/模糊/全文?
  • 排序:相关性/字母顺序/最近/用户可选?

表单与输入:

  • 验证时机:失焦时/提交时/输入时?
  • 错误显示:内联/摘要/提示?
  • 未保存更改:警告/自动保存/允许丢失数据?
  • 默认值:先前值/智能默认/空/预填充?

实时功能:

  • 机制:轮询/WebSocket/服务器发送事件?
  • 频率:1秒/5-10秒/1分钟/事件驱动?
  • 离线:排队操作/阻止使用/显示离线模式?
  • 冲突:显示通知/自动合并/手动解决?

文件上传:

  • 类型与限制:仅图片/文档/任何文件?最大尺寸?
  • 多个文件:一次一个/同时/批量?
  • 进度:显示进度条/允许取消?
  • 存储:存储位置?CDN?S3?本地?

数据可视化:

  • 图表类型:柱状/线性/饼状/散点/自定义?
  • 交互性:悬停提示/点击钻取/缩放/平移?
  • 响应式:移动端行为?简化视图?
  • 导出:下载为图片/CSV/PDF?

5. 解析所有未知项

步骤5a: 内部生成技术推断

用置信度记录假设:

  • 高: 用户明确说明/唯一合理方法/行业标准/安全要求
  • 中: 常见实践但存在替代/需求暗示/标准模式
  • 低: 填充实现缺口/多种有效方法/偏好假设

步骤5b: 呈现推断供确认

"基于我们的讨论,这是我的技术假设:

高置信度(除非您反对将实施):

  • [带推理的假设]

中置信度(常见方法,存在替代):

  • [假设 - 替代:X]

低置信度(需要您的输入):

  • [带建议方法的问题]

有任何反对或偏好吗?"

步骤5c: 解析所有澄清

为剩余未知项询问跟进问题。直到所有推断被确认且所有澄清被解析,才进行到步骤6。

6. 创建需求规格

使用~/.claude/file-templates/requirements.template.md中的规范模板。

指令:

  • 已确认的信息填写每个部分
  • 在"实现说明"中记录决策并附推理
  • docs/中交叉引用相关文档;如果缺失则创建存根
  • 确保"相关文件"部分全面
  • 包括引用现有系统发现的"工件"部分

7. 呈现并确认最终规格

"这是基于我们已确认决策的需求规格:

[显示或链接到需求文件]

所有技术决策和澄清已纳入。准备好进入规划/实现阶段吗?"

等待用户批准后再进入下一阶段。

8. 更新项目文档

如果项目有文档结构:

更新docs/product-requirements.md

  • 添加功能并分配下一个功能ID(F-##)
  • 包括需求摘要
  • 添加验收标准
  • 链接到相关功能和集成点

参考:

  • docs/system-design.md - 架构上下文
  • agent-responses/agent_<id>.md中的调查发现

快速参考

基本问题:

  1. 快乐路径场景
  2. 关键边缘用例与性能期望
  3. 失败模式
  4. 范围外项目
  5. 集成点

调查工件:

  • 输入:docs/product-requirements.md, docs/system-design.md
  • 输出:需求规格 + 更新的项目文档

置信度级别:

  • 高:明确要求或最佳实践
  • 中:标准实践但有替代
  • 低:转化为用户问题

常见陷阱

  • ❌ 在不理解现有系统的情况下提问
  • ❌ 带着未解析的模糊性进入实现
  • ❌ 混合假设与已确认需求
  • ❌ 跳过边缘用例发现
  • ✅ 首先调查 → 问知情问题 → 解析所有未知 → 记录 → 确认