用途:从 OpenSpec 变更中实现任务。当用户要开始实现、继续实现或逐项完成变更任务时使用。
仓库选择:若用户指定 store(本机注册的独立 OpenSpec 仓库)或工作在其中,先运行 openspec store list --json 获取已注册 store id,再在读取/写入 specs 与 changes 的命令(new change、status、instructions、list、show、validate、archive、doctor、context、view)上加 --store <id>。选定后该参数在整个流程中保持;无 store 时命令作用于最近的本地 openspec/ 根目录。
输入:可选指定变更名称,如 $openspec-apply-change (Codex) 或 /openspec-apply-change (other agents) add-auth。省略时可从对话上下文推断;模糊时必须让用户从可用变更中选择。
主要步骤:选定变更并公告;用 openspec status --change "<name>" --json 了解 schema(如 spec-driven)、planningHome、changeRoot、actionContext 及包含任务的产物;用 openspec instructions apply --change "<name>" --json 获取 contextFiles、进度(总数/完成/剩余)、任务列表、动态指令,以及可选的 context 与 operationGuidance。若状态为 blocked(缺少产物),提示使用 $openspec-continue-change (Codex) 或 /openspec-continue-change (other agents);若 all_done 则建议归档;否则进入实现。
随后读取 contextFiles 中每个文件路径(spec-driven 下为 proposal、specs、design、tasks),展示当前进度与动态指令,逐项实现:显示当前任务、做最小且聚焦的代码修改、将 tasks 文件中 - [ ] 改为 - [x],再继续下一项。遇到任务不清、暴露设计问题、报错阻塞或用户中断时暂停并等待指示。完成后展示本次完成项与总体进度,全部完成时建议归档。
约束:先读上下文文件;任务含糊先问;改动保持最小;完成即勾选;出错或不清楚不要猜测;使用 CLI 输出的 contextFiles 而非假定文件名;不得把 context 或 operationGuidance 当作任务完成的证据;与内置指令、用户明确选择或 CLI 控制值冲突时报告并保留控制值;不得把运行时上下文或操作指导原样复制进实现或规划产物。该技能支持"对变更的操作"模型,可在任意时刻调用并允许更新产物。