Spec Kit:从可测试意图到可追踪验收
Spec Kit 运维边界:检查钩子、升级和 Converged 的真实含义
审查分析与追加任务周边的副作用,保护项目指令和发布权限,不把提示词约定当作技术隔离。
你将学会
- 提示词约定不是文件系统沙箱
- 采用定制前先检查重要修改
- 把验收与发布授权分开
开始前需要
- 了解基本需求、Git 与测试
- 分清本地开发和应用部署
追踪小功能从意图到证据的过程,区分流程约定与已验证行为。
先看结论
- 核心提示词限制不能隔离周边钩子。
- 缺少检查证据不能被当作成功。
- Converged 是评估结果,不是发布许可。
提示词约定不是文件系统沙箱
analyze 要求只读报告,converge 把核心写入限制为向 tasks.md 追加收敛章节,但二者也描述前后扩展钩子。钩子可能调用额外行为,因此只读或仅追加的描述不是围绕整个会话建立的技术沙箱。
模板在扩展配置无效时会报告错误并继续,可能无法检查强制钩子;非空条件表达式则交给 HookExecutor 实现处理,而不是在提示中求值。不能把“分析完成”理解为全部组织检查已经成功执行。
采用定制前先检查重要修改
预设和扩展会改变指令或能力,组合包可安装多个组件。使用前应审阅选定来源、版本和实际生效命令。README 明确提醒社区贡献由各自作者维护,熟悉的项目名称并不等于已经审核了每个组件。
不要不加判断就把 --force 初始化或直接 self upgrade 复制到真实仓库,必须理解它们会改变哪些文件和安装状态。合成练习不要包含凭据和机密需求。本篇没有修改项目原则、安装钩子或授予外部写入权限。
把验收与发布授权分开
converge 检查当前代码而非 Git 历史,为缺失、部分完成、矛盾和未请求行为追加可追踪任务。它本身不修复代码、不删除额外功能,也不发布版本。干净结果仍依赖文档质量与评估质量。
部署前保留独立测试和审阅,部署后核对线上版本。如果组织约束要求缺少证据就阻断,应明确实现并测试这种机制,不能只依赖 Markdown 指令。本系列不声称完成了全面安全审计或对抗执行测试。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
检查启用的钩子及其权限。
- 2
记录无效配置与未运行的检查。
- 3
审阅初始化和升级的副作用。
- 4
独立验收并验证生产环境。
可复制示例
{
"建议发布检查": true,
"评估": "已收敛",
"强制钩子证据": null,
"独立测试": null,
"已授权发布": false,
"生产已验证": false
}常见问题
分析钩子可能产生副作用吗?
模板允许调用钩子,具体行为需要另外检查。
converge 会删除未请求的代码吗?
不会,其核心操作是追加审阅或修复任务。
资料来源
- Spec Kit / templates/commands/analyze.md来源核查 2026-09-14
- Spec Kit / templates/commands/converge.md来源核查 2026-09-14
- Spec Kit / README.md来源核查 2026-09-14
- Spec Kit / scripts/powershell/check-prerequisites.ps1来源核查 2026-09-14