.codebuddy/commands/speckit.specify.md
$ARGUMENTS
在继续之前, 你必须考虑用户输入(如果不为空).
用户在触发消息中 /speckit.specify 后输入的文本就是功能描述. 假设你始终可以在本次对话中访问它, 即使下面字面上显示 $ARGUMENTS. 除非用户提供了空命令, 否则不要要求用户重复.
基于该功能描述, 执行以下操作:
为分支生成一个简短名称(2-4个词):
在创建新分支之前检查现有分支:
a. 首先, 获取所有远程分支以确保我们有最新信息:
git fetch --all --prune
b. 查找所有来源中简短名称的最高功能编号:
git ls-remote --heads origin | grep -E 'refs/heads/[0-9]+-<short-name>$'git branch | grep -E '^[* ]*[0-9]+-<short-name>$'specs/[0-9]+-<short-name> 的目录c. 确定下一个可用编号:
d. 使用计算出的编号和简短名称运行脚本 .specify/scripts/bash/create-new-feature.sh --json "$ARGUMENTS":
--number N+1 和 --short-name "your-short-name" 以及功能描述.specify/scripts/bash/create-new-feature.sh --json "$ARGUMENTS" --json --number 5 --short-name "user-auth" "添加用户认证".specify/scripts/bash/create-new-feature.sh --json "$ARGUMENTS" -Json -Number 5 -ShortName "user-auth" "添加用户认证"重要说明:
加载 .specify/templates/spec-template.md 以了解必需的章节.
遵循此执行流程:
使用模板结构将规范写入 SPEC_FILE, 用从功能描述(参数)派生的具体细节替换占位符, 同时保持章节顺序和标题.
规范质量验证: 编写初始规范后, 根据质量标准进行验证:
a. 创建规范质量检查清单: 使用检查清单模板结构在 FEATURE_DIR/checklists/requirements.md 生成检查清单文件, 包含这些验证项目:
# 规范质量检查清单: [功能名称]
**目的**: 在继续规划之前验证规范的完整性和质量
**创建时间**: [日期]
**功能**: [指向 spec.md 的链接]
## 内容质量
- [ ] 无实现细节(语言、框架、API)
- [ ] 专注于用户价值和业务需求
- [ ] 为非技术利益相关者编写
- [ ] 所有必需章节已完成
## 需求完整性
- [ ] 没有 [NEEDS CLARIFICATION] 标记剩余
- [ ] 需求是可测试且明确的
- [ ] 成功标准是可衡量的
- [ ] 成功标准是技术无关的(无实现细节)
- [ ] 所有验收场景已定义
- [ ] 边缘情况已识别
- [ ] 范围明确界定
- [ ] 依赖关系和假设已识别
## 功能准备就绪
- [ ] 所有功能需求都有明确的验收标准
- [ ] 用户场景覆盖主要流程
- [ ] 功能满足成功标准中定义的可衡量结果
- [ ] 没有实现细节泄漏到规范中
## 备注
- 标记为不完整的项目需要在 `/speckit.clarify` 或 `/speckit.plan` 之前更新规范
b. 运行验证检查: 根据每个检查清单项目审查规范:
c. 处理验证结果:
如果所有项目都通过: 标记检查清单完成并继续步骤 7
如果项目失败(不包括 [NEEDS CLARIFICATION]):
如果 [NEEDS CLARIFICATION] 标记仍然存在:
从规范中提取所有 [NEEDS CLARIFICATION: ...] 标记
限制检查: 如果存在超过 3 个标记, 仅保留 3 个最关键的(按范围/安全/用户体验影响)并为其余部分做出有根据的猜测
对于每个需要的澄清(最多 3 个), 以以下格式向用户呈现选项:
## 问题 [N]: [主题]
**上下文**: [引用相关规范章节]
**我们需要了解**: [来自 NEEDS CLARIFICATION 标记的具体问题]
**建议答案**:
| 选项 | 答案 | 含义 |
|--------|--------|--------------|
| A | [第一个建议答案] | [这对功能意味着什么] |
| B | [第二个建议答案] | [这对功能意味着什么] |
| C | [第三个建议答案] | [这对功能意味着什么] |
| 自定义 | 提供你自己的答案 | [解释如何提供自定义输入] |
**你的选择**: _[等待用户响应]_
关键 - 表格格式: 确保 markdown 表格格式正确:
| 内容 | 而不是 |内容||--------|按顺序编号问题(Q1、Q2、Q3 - 最多 3 个)
在等待响应之前一起呈现所有问题
等待用户响应所有问题的选择(例如, "Q1: A, Q2: 自定义 - [详情], Q3: B")
通过用用户选择或提供的答案替换每个 [NEEDS CLARIFICATION] 标记来更新规范
在所有澄清解决后重新运行验证
d. 更新检查清单: 每次验证迭代后, 使用当前的通过/失败状态更新检查清单文件
报告完成情况, 包括分支名称、规范文件路径、检查清单结果以及下一阶段(/speckit.clarify 或 /speckit.plan)的准备就绪状态.
注意: 脚本在写入之前创建并检出新分支并初始化规范文件.
当从用户提示创建此规范时:
合理默认值的示例(不要询问这些):
成功标准必须是:
好的示例:
坏的示例(以实现为中心):