用途:帮助用户把规格内容放入既有 spec-driven 变更的正确增量(delta)规格文件中,只编辑规划产物,不实现代码。
前置条件:项目根目录需存在 .spec-driven/ 目录,可用 ls .spec-driven/ 验证;若失败说明项目未初始化,需先运行 /spec-driven-init。
主要能力与流程:
- 选择变更:运行 node {{SKILL_DIR}}/scripts/spec-driven.js modify 列出活动变更;用户未指定时询问要编辑哪个。
- 理解请求:判断是新增规格内容、扩展已有规格、修改已有需求,还是删除一个或多个已有需求。
- 索引优先读取:先读 .spec-driven/config.yaml、.spec-driven/specs/INDEX.md,以及 .spec-driven/changes/<name>/specs/ 下可能相关的已有文件。
- 从 INDEX.md 选候选目标:优先复用已有分类与文件;仅当没有合适分类时才新建分类,仅当该分类下没有合适文件时才新建文件。
- 决定增量路径:更新镜像已有主规格的增量文件、在已有分类下新建增量文件、在新分类下新建增量文件,或修订已存在增量文件中的需求;增量路径应与归档后应存在的主规格路径对齐。
- 编辑增量内容:保留标准格式,新增用 ## ADDED Requirements,修改用 ## MODIFIED Requirements 并附 Previously: 说明,删除用 ## REMOVED Requirements 并附原因;保持 ### Requirement: 标题完整;描述可观察行为而非实现细节。
- 删除处理:明确指出被删除的 ### Requirement: 标题并显式写入增量文件,避免模糊措辞;若目标需求不明确,停止并询问用户。
- 格式检查:编辑后运行 node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>,修复可安全修复的格式问题并重跑;若仅是非格式的工作流阻塞(如 questions.md 中的开放问题),单独说明,不要误报为格式失败。
- 汇总路由决策:告知所选分类/文件、是已有文件还是新建、是新增/修改/删除需求、格式检查是否通过。
限制:不实现代码;必须完成格式检查;未提供收费、平台或效果等信息。