用途:在 OpenSpec 实验性工作流中,把一个已实现完成的变更正式收尾并归档。输入为可选的变更名称;若未提供且无法从上下文推断,必须提示用户从可用变更中选择,不得猜测或自动选择。
主要流程:1) 用 openspec list --json 列出未归档的活动变更,并通过 AskUserQuestion 让用户选择,尽量显示各变更所用的 schema。2) 用 openspec status --change "<name>" --json 检查制品完成状态,解析 schemaName 与 artifacts;若有未完成制品,显示警告并确认是否继续。3) 读取任务文件(通常为 tasks.md),统计 - [ ] 与 - [x],若有未完成任务则警告并确认;无任务文件则跳过该警告。4) 检查 openspec/changes/<name>/specs/ 下的增补规格,与 openspec/specs/<capability>/spec.md 比对,汇总将要执行的增改删改名,然后提示“Sync now (recommended)”与“Archive without syncing”;若已同步则提示“Archive now”“Sync anyway”“Cancel”。选择同步时通过 Task 工具调用 openspec-sync-specs,之后无论是否同步都继续归档。5) 归档:mkdir -p openspec/changes/archive,按当前日期生成 YYYY-MM-DD-<change-name> 目标名,若目标已存在则报错并建议改名或换日期,否则用 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name> 移动目录,.openspec.yaml 随目录移动。6) 输出归档完成摘要,含变更名、schema、归档位置、是否同步规格及未完成制品/任务警告。
限制:警告不阻止归档,只提示确认;若目标名冲突必须失败;未提供变更名时必须询问。其余平台、收费、价格等信息暂未提供。