用途
openspec-ff-change 用于在 OpenSpec 变更流程中“快进”完成工件创建,目标是一口气生成开始实现所需的全部材料,避免逐个工件手动推进。
主要能力
- 根据用户描述推导 kebab-case 变更名称(如“add user authentication”推导为 add-user-auth)。
- 若输入不明确,使用开放式提问工具询问用户想构建或修复什么,明确前不继续。
- 创建变更目录:
openspec new change "<name>",在openspec/changes/<name>/下生成脚手架。 - 获取工件构建顺序:
openspec status --change "<name>" --json,解析 applyRequires(实现前需要的工件 ID 数组)与 artifacts(含状态和依赖的工件列表)。 - 按依赖顺序循环创建工件:对每个依赖已满足的工件执行
openspec instructions <artifact-id> --change "<name>" --json,读取其中的 context、rules、template、instruction、outputPath、dependencies,读取已完成的依赖工件作为上下文,依据 template 结构写入工件文件,并以 context 和 rules 作为约束(不复制进文件)。 - 使用 TodoWrite 跟踪进度,每创建一个工件后显示简要进度,并重新运行状态命令检查 applyRequires 中的所有工件是否均为 done。
- 遇到上下文不清的工件时,通过提问工具澄清后继续。
- 全部完成后运行
openspec status --change "<name>"展示最终状态,并汇总变更名称与位置、已创建工件及简述、就绪提示,以及提示运行/opsx:apply或要求实现以开始任务。
使用方式
通过技能调用触发,输入变更名或构建描述;技能按上述命令与顺序自动推进。若同名变更已存在,建议继续该变更而非新建。
适用场景
需要跳过逐步确认、快速产出 OpenSpec 实现前全部工件的开发流程。
限制
依赖 OpenSpec CLI 命令与 JSON 输出;context 与 rules 仅作为约束不得写入工件文件;若关键上下文不清晰应询问用户,但整体倾向做出合理判断以保持推进节奏。