| name | yy-mode-spec |
| description | 规格优先开发模式。当用户输入 /yy-mode-spec 命令或需要在编码前制定详细规格说明时调用。 不用于仅给出粗粒度执行计划、直接实施代码变更,也不用于已有功能的代码审核或修复。
|
yy-mode-spec
描述
规格优先开发模式,要求在实施前完成详细规格文档编写,确保需求、设计、任务分解和验证标准全部明确后再开始编码。
使用场景
- 用户输入
/yy-mode-spec 命令
- 用户需要在编码前制定详细规格说明
- 用户要求先写规格文档再开发
不应触发:
- 用户直接要求执行某个任务,未提及规格文档
- 用户只是询问项目信息
指令
步骤 1. 理解需求
分析用户需求,判断需求清晰度:
- 需求明确:直接进入步骤 3
- 需求不明确:进入步骤 2 澄清
步骤 2. 澄清需求
当需求存在歧义、缺失关键信息或多种理解时,向用户提问:
- 列出理解上的歧义点,而非默默选择其中一种
- 提出具体问题,而非笼统问"还有什么要求"
- 每次提问控制在 1-3 个核心问题,避免信息过载
循环条件:用户回答后重新评估需求清晰度,仍不明确则继续提问,直到需求足够清晰可编写规格。
步骤 3. 评估复杂度与方案确定性
评估需求复杂度与方案确定性,判断是否跳过展示方案方向步骤:
- 需求复杂度低且方案很确定:跳过"展示方案方向",直接进入编写规格内容(步骤 5)
- 需求不明确或方案待决策:进入"展示方案方向"(步骤 4)
评估标准:
- 低复杂度:单文件修改或少量文件变更,功能单一,逻辑清晰,不涉及架构变更
- 方案确定:实现方式没有歧义,无需用户做技术选型决策
步骤 4. 展示方案方向
仅在需求不明确或方案待决策时执行。在细化规格前,先向用户展示方案的方向和方法:
- 目标:一句话说明将要完成的内容
- 方法:高层策略(1-3 句)
- 涉及范围:将要修改的文件或模块
- 待确认点:仍需用户决策的关键选择(如有)
等待用户确认方向正确后再细化。如果用户调整方向,回到步骤 1 重新理解。
步骤 5. 编写规格内容
根据需求编写规格文档,包含以下要素:
- 功能概述:核心价值和目标
- 需求分析:功能性需求和非功能性需求
- 技术设计:架构设计、API 规格、数据模型
- 核心代码示例:关键函数签名、数据结构定义、核心逻辑片段,让使用者直观看到预期变更
- 任务分解:有序的实施任务列表、依赖关系、验收标准
- 验证清单:实施前、实施中、实施后的检查项
步骤 6. 确定输出方式
简单需求:直接在对话中展示规格内容。
复杂需求:创建规格文件,执行以下步骤:
- 确定工具目录:按
.agents > .claude > .opencode > .trae 顺序检测,或使用用户指定的 --tool-dir 参数
- 创建规格目录:
{工具目录}/specs/{时间戳}_{需求目录}/
- 生成三个文件:
spec.md、tasks.md、checklist.md
时间戳格式:YYYYMMDD_HHMMSS,如 20260324_153045_实时通知系统。
步骤 7. 展示规格并等待确认
向用户展示规格内容,等待确认。
步骤 8. 处理用户反馈
- 用户确认:开始执行实施
- 用户拒绝:根据反馈调整规格,重新展示
- 用户要求调整:修改对应部分,重新展示
步骤 9. 执行实施
用户确认后执行:
- 创建待办事项列表
- 按任务分解顺序执行
- 完成后运行验证清单
步骤 10. 输出结果
方案方向(步骤 4)
## 方案方向
**目标**:[一句话描述]
**方法**:[高层策略]
**涉及范围**:[文件或模块列表]
**待确认点**:(如有)
- [需要用户决策的问题]
---
请确认方向是否正确,或提出调整意见。
规格结果(步骤 7)
## 规格已创建
**规格目录**:[规格文件路径]
### 规格摘要
[功能概述和关键需求]
### 任务概览
[任务数量和阶段划分]
---
请确认是否执行此规格。
安全边界
- 规格确认前只允许创建规格文件,不得修改项目代码或其他文件
- 不跳过用户确认步骤直接执行实施
- 不执行与规格无关的操作
相关资源
本技能包含以下辅助资源:
examples/input.md:输入示例,展示用户如何请求制定规格
examples/output.md:输出示例,展示规格文件的预期格式
templates/spec-template.md:规格文档模板
templates/tasks-template.md:任务分解模板
templates/checklist-template.md:验证清单模板