用途:把已完成的 OpenSpec 变更从活动状态移入归档目录,并在归档前确认完整性、可选同步 delta specs 到长期主 specs。
主要能力与流程:
- 选择变更。未指定时运行 openspec list --json,仅展示活动(未归档)变更及其 schema,由用户选择,不自动猜测。
- 检查产物完成度。运行 openspec status --change "<name>" --json,读取 schemaName 与各 artifact 状态;若有未完成项,列出警告并确认是否继续。
- 检查任务完成度。读取 tasks 文件(通常为 tasks.md),统计 - [ ] 与 - [x];存在未完成任务时给出数量警告并确认。无 tasks 文件则无需警告。
- 评估 delta spec 同步状态。检查 openspec/changes/<name>/specs/;若存在 delta specs,与 openspec/specs/<capability>/spec.md 对比,给出合并摘要,并提供“立即同步(推荐)”与“不同步直接归档”选项(若已同步则为“立即归档/仍然同步/取消”)。选择同步时通过 Task 工具(subagent_type: general-purpose)委派,提示为 Invoke /openspec-sync-specs for change '' 并附分析摘要;无论是否同步都继续归档。
- 执行归档:mkdir -p openspec/changes/archive 与 mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>,使用当前日期;目标目录已存在则报错并建议重命名或换日期。.openspec.yaml 随目录自动移动。
- 展示摘要:变更名、schema、归档位置、是否同步 specs,以及步骤 2-3 的警告。
限制与守则:未指定变更时必须提示选择,绝不自动选择;警告只提示并要求确认,不静默阻断;归档时保留 .openspec.yaml;存在 delta specs 时必须先做同步评估并展示合并摘要再询问。完成条件为目录已移动到归档路径、所选同步已执行、摘要(含所有警告)已展示。