用途:在 OpenSpec 实验性工作流中归档已完成的变更,适合实现完成后的收尾处理。
主要能力与流程:可指定变更名;未指定时先从对话上下文推断,无法确定则须提示用户选择。列出可用变更时运行 openspec list --json,仅显示未归档的活跃变更,并尽量附带所用 schema,禁止猜测或自动选择。随后用 openspec status --change "<name>" --json 检查工件完成状态,解析 schemaName 与 artifacts;若有未完成工件,显示警告并经用户确认后再继续。接着读取任务文件(通常为 tasks.md),统计 - [ ] 与 - [x] 数量,存在未完成任务时显示数量警告并确认;无任务文件则跳过该警告。再检查 openspec/changes/<name>/specs/ 下的 delta 规格,若存在则与 openspec/specs/<capability>/spec.md 对应主规格比较,汇总将应用的增删改重命名,并提示同步选项(需同步时推荐“Sync now”,已同步时给出“Archive now”“Sync anyway”“Cancel”)。若选择同步,执行 /opsx-sync 逻辑(使用 openspec-sync-specs 技能)。最后创建归档目录并移动:mkdir -p openspec/changes/archive 与 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>。
限制与注意:目标名使用当前日期 YYYY-MM-DD-<change-name>;若目标已存在则报错并建议重命名或换日期。警告不阻塞归档,只提示并确认。移动时保留 .openspec.yaml。完成后输出包含变更名、schema、归档位置、规格同步状态及警告的摘要。