用途:在 OpenSpec 实验性工作流中,将已完成的变更(change)最终归档。适用于实现完成后需要收尾的场景。
主要能力与流程:
- 变更选择:若未提供变更名,运行 npx openspec list --json 获取可用变更,通过 AskUserQuestion 让用户选择,仅显示未归档的活动变更,并尽量展示各自使用的 schema。不猜测、不自动选择。
- 产物完成检查:运行 npx openspec status --change "<name>" --json,解析 schemaName 与 artifacts 状态;若有未完成产物,列出警告并让用户确认是否继续。
- 任务完成检查:读取 tasks.md,统计 - [ ] 与 - [x];若有未完成任务,显示数量警告并确认;无任务文件则跳过该警告。
- 增量规格同步评估:检查 openspec/changes/<name>/specs/ 下的 delta specs,与 openspec/specs/<capability>/spec.md 对比,汇总将应用的增删改重命名;按情况提示“Sync now (recommended)”/“Archive without syncing”或“Archive now”/“Sync anyway”/“Cancel”。选择同步则执行 /opsx:sync 逻辑(使用 openspec-sync-specs 技能),无论选择如何都继续归档。
- 执行归档:mkdir -p openspec/changes/archive,用当前日期生成 YYYY-MM-DD-<change-name>;若目标已存在则报错并建议重命名或换日期;否则 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>。
- 输出摘要:显示变更名、所用 schema、归档位置、规格是否同步及警告说明。
限制与注意:警告不阻塞归档,仅提示并确认;移动时保留 .openspec.yaml(随目录移动);若存在 delta specs,必须先运行同步评估并展示合并摘要再提示。具体收费、平台支持等信息暂未提供。