Communitygithub.com

flriancu/claude-code-setup

启动新项目、工具、功能、设计或调研,通过需求收集,编写 REQUIREMENTS.md 合同和分阶段计划,然后在用户要求时一个阶段一个阶段地执行。当用户说“需求收集”、“让我们做需求收集”、“问我澄清性问题”、“询问任何不明确的需求”、“制作包含阶段和步骤的 md 文档”、“执行阶段 N”,或者开始一个新的、开放式的任务(脚本、应用、爬虫、3D 打印部件、文档或书籍转换、硬件启动、迁移、购买决策)时,请使用此技能,因为直接构建意味着猜测。当用户对一次性回答提出质疑时,也请使用它。

claude-code-setup 是什么?

此技能通过将项目启动过程分解为明确的需求收集 (Requirements Elicitation)、合同编写 (REQUIREMENTS.md) 和分阶段执行计划,解决了在项目初期进行猜测性构建的常见问题。它避免了漫长无果的思考,通过快速提出有针对性的问题并记录决策,帮助用户和 AI 代理在“开始构建之前”就达成共识。该技能支持任何类型的开放式项目,从软件开发到硬件启动,甚至工具采购决策。它基于标准的软件需求工程实践 (ISO/IEC/IEEE 29148),通过稳定的 ID (D-xx, FR-xx) 追踪需求,确保可追溯性。执行阶段按用户指令进行,每个阶段完成后会进行审查和验证,从而将项目切分为可控且可审查的块,显著减少返工风险。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flriancu/claude-code-setup/tree/HEAD/plugins/flriancu/skills/requirements-kickoff

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

需求启动

用户在前端以明确且低成本的方式做出决策,然后在经过审查的步骤中构建。一次性构建会固化猜测,用户之后不得不重新梳理。在纸上写下任何内容之前长时间缄默思考同样令人恼火(“不需要一次性完成,为什么思考那么久?让我们起草一个包含阶段的文档”)。因此,要快速将问题和计划写下来,并让用户来引导。

1. 收集,简要进行

  • 阅读已提供的内容:文件、文件夹、链接、图片、之前的聊天记录和记忆笔记、仓库的 README。注意哪些已经决定,以免重复询问。
  • 如果仍有输入缺失(“链接即将到来”、“稍后会有照片”),则仍开始提问,并标记哪些问题依赖于此。
  • 不要编写代码或更改文件。不要长时间思考:问题本身就是思考工具。

2. 提出带编号的问题

  • 一个编号列表,当问题很多时按主题进行分组。每个问题一行,列出你看到的选项和推荐的默认值,例如: 3. 安装位置:C:\ 还是 D:\?推荐:D:\,因为 C:\ 几乎已满。
  • 用户通过编号简洁地回答(“1. 两者 2. 更新到最新 3. 可以”)。仔细映射每个回答。“可以”或“同意”表示接受你的默认值;“前者”和“后者”指的是你选项的顺序;跳过的编号表示“你决定,告诉我你选择了什么”。
  • 覆盖对此工作重要的方面:目标和受众;范围和明确的不做事项;输入和输出(格式、位置);约束(平台、允许或禁止的工具、许可证、离线使用、硬件);质量标准和验收测试(“我们如何知道它有效”);失败行为(当每个部分在任何时刻失败时会发生什么:崩溃、连接丢失、断电、多个节点中的一个节点宕机);保真度(绝不能更改的内容);内容的位置(仓库、路径、远程);交付(谁接收什么,多久一次)。
  • 仅针对那些引出了新问题的回答,进行第二轮更简短的问题。一旦剩余的不确定因素有了安全的默认值,就停止提问,并列出这些默认值。

3. 编写合同:REQUIREMENTS.md

将其放在项目根目录下,如果项目是新的则创建文件夹。保持简洁、简短并注明日期:

# <项目> 需求

于 <YYYY-MM-DD> 达成一致。此文件为合同;更改将在此处记录并附上日期。

## 目标
## 受众和用途
## 范围
## 不做事项
## 决策
- D-01 <决策> (<日期>)
## 功能需求
- FR-01 ...
## 约束和非功能需求
- NFR-01 ...
## 验证
每个需求一行:如何验证以及证据在哪里。
| ID | 方法 (测试 / 检查 / 分析 / 演示) | 证据 (测试用例、脚本、文件) |
## 未解决的问题

稳定的 ID(D-xx、FR-xx、NFR-xx)使后续的工作、提交和报告可以引用它们。使用用户自己的语言记录用户的回答;不要将其转述为更强或更弱的内容。

为每个需求提供验证方法和证据位置。四种方法是需求工程中的标准方法 (ISO/IEC/IEEE 29148)。优先使用测试。当一个需求只能通过检查或分析来验证时(“无直接 OS 线程调用”、“每个节点调度开销低于 100 微秒”),编写一个检查脚本,将其输出保存为证据,以便可以重新运行证明,而不是重新争论。

4. 编写计划:阶段

将其放在计划文件 PLAN.md 中,紧挨着需求,如果项目较小,则放在“阶段”部分。阶段 0 通常是设置,或是首先证明风险最高假设的试点。对于每个阶段,给出目标、步骤、可交付成果、如何验证以及它服务的需求 ID。保持阶段足够小,以便一次审查完,并说明计划将在过程中调整。

然后停止。用几行报告这两个文件,并推荐第一个阶段。

5. 按请求执行,一次一个阶段

  • 只运行用户指定的阶段(“执行阶段 0”、“执行阶段 0 和 1”、“开始”)。
  • 在每个阶段结束时,报告已完成的工作、证明其有效的证据(运行的命令、输出、测试结果)、与计划的偏差及原因,以及下一步是什么。在计划中标记该阶段已完成。
  • “进度检查”表示:当前阶段、已完成的工作、正在运行的工作、受阻的工作。
  • 改变范围的新需求在构建之前,需要写入 REQUIREMENTS.md 并注明日期。被推翻的决策记录为撤销;旧行保留。
  • 如果用户已指示,则修复沿途发现的错误;否则列出它们。
  • 当最后一个阶段完成时,或者当用户要求时,执行差距分析:对照代码、测试、文档和证据检查需求。报告每个差距及其需求 ID,按请求逐一修复,并重新运行证据脚本。
  • 不要在每一步后提交或推送。当一个阶段完成时,提议进行一次提交;仅在要求时推送。

变体

  • 无代码的决策(采购、工具选择):相同的问题,然后针对商定的标准进行简短的比较,而不是两个文件。
  • 他人的内容(作者的书、客户的数据、录音):预先添加一项保真度需求。内容不得静默更改;每次更改都需提出、标记并报告以供批准。

相关技能