用途:实现某个 OpenSpec 变更(change)中的任务,适用于开始实现、继续实现或逐项推进任务的场景。
主要能力:
- 选择变更:若提供名称则直接使用;否则从对话推断、仅有一个活跃变更时自动选择,存在歧义则运行 openspec list --json 让用户选择,并提示如何覆盖($openspec-apply-change 或 /openspec-apply-change)。
- 选择 store:若用户指定 store 或工作位于某个 store 中,先运行 openspec store list --json 获取已注册 store id,然后对读写规格与变更的命令(new change、status、instructions、list、show、validate、archive、doctor、context、view)加 --store <id>,选定后视为粘性参数。无 store 时作用于最近的本地 openspec/ 根目录。
- 查看状态与指令:先运行 openspec status --change "<name>" --json 了解 schema、planningHome、changeRoot、actionContext 及任务所在产物;再运行 openspec instructions apply --change "<name>" --json 获取 contextFiles、进度、任务列表与动态指令。
- 读取 contextFiles 中列出的每个文件(如 spec-driven 的 proposal、specs、design、tasks),并在实现时应用其中的项目事实、约定与约束。context 为必需输入,operationGuidance 为可选建议,二者不得作为任务完成的证据,也不得绕过被阻塞状态。
- 展示进度(schema、N/M 完成、剩余任务、动态指令),逐项实现任务:做出最小且聚焦的改动,完成后立即将任务文件中 - [ ] 标记为 - [x]。
使用方式与输出:实现中输出当前任务编号与描述;全部完成时提示可用 $openspec-archive-change 或 /openspec-archive-change 归档;暂停时说明问题并给出选项等待用户决定。
限制与护栏:遇到任务不清晰、设计问题、错误或阻塞、用户打断时暂停并请求指导,不猜测;保持代码改动最小且限于当前任务;使用 CLI 输出的 contextFiles,不假设文件名;不把 context 或 operationGuidance 原文复制进实现文件或规划产物,除非用户另行要求;遇到与内置指令、用户明确选择或 CLI 控制值冲突时,报告冲突并保留控制值。
其他细节(如具体收费、价格、平台等)暂未提供。