关于 openspec-archive-change
用于归档 OpenSpec 变更的技能。它检查产物和任务完成情况,评估增量规格同步状态,并在将变更移入按日期命名的归档目录前报告警告。
主要功能
- 01未指定变更时提示选择
- 02检查产物与任务完成情况
- 03评估增量规格同步状态
- 04按日期名称归档
- 05报告归档信息与警告
适用场景
- 01归档已完成的变更
- 02归档前检查未完成事项
- 03决定是否同步增量规格
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pbh-btn/ peerbanhelper --skill openspec-archive-change安装后在 Claude Code 中输入/openspec-archive-change确认已加载。
详细介绍
在实验性工作流中归档已完成的变更。
输入:可选择指定变更名称。如果未指定,请检查能否从对话上下文中推断出来。如果含糊不清或存在歧义,你必须询问有哪些可用变更。
步骤
-
如果未提供变更名称,请提示用户进行选择
运行
openspec list --json获取可用变更。使用 AskUserQuestion 工具让用户选择。仅显示当前活动的变更(尚未归档的变更)。 如果有可用信息,请注明每个变更使用的 schema。
重要:不要猜测或自动选择变更。始终让用户自行选择。
-
检查产物完成状态
运行
openspec status --change "<name>" --json检查产物是否完成。解析 JSON 以了解:
schemaName:正在使用的工作流artifacts:产物列表及其状态(done或其他状态)
如果有任何产物尚未处于
done状态:- 显示警告并列出未完成的产物
- 使用 AskUserQuestion 工具确认用户是否要继续
- 如果用户确认,则继续
-
检查任务完成状态
读取任务文件(通常为
tasks.md)以检查是否有未完成的任务。统计标记为
- [ ](未完成)和- [x](已完成)的任务数量。如果发现未完成的任务:
- 显示警告并注明未完成任务的数量
- 使用 AskUserQuestion 工具确认用户是否要继续
- 如果用户确认,则继续
**如果不存在任务文件:**无需显示任务相关警告,直接继续。
-
评估增量规范的同步状态
检查
openspec/changes/<name>/specs/中是否有增量规范。如果没有,则无需提示同步,直接继续。如果存在增量规范:
- 将每个增量规范与对应的主规范
openspec/specs/<capability>/spec.md进行比较 - 确定将应用哪些变更(新增、修改、移除、重命名)
- 提示前显示汇总摘要
提示选项:
- 如果需要应用变更:「现在同步(推荐)」、「不同步,直接归档」
- 如果已同步:「现在归档」、「仍然同步」、「取消」
如果用户选择同步,则执行 /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
- 归档位置
- 规范是否已同步(如适用)
- 关于任何警告的说明(产物/任务未完成)
成功时的输出
## Archive Complete
**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
**Specs:** ✓ Synced to main specs (or "No delta specs" or "Sync skipped")
All artifacts complete. All tasks complete.
防护措施
- 如果未提供变更名称,始终提示用户选择变更
- 使用产物图(openspec status --json)检查完成状态
- 不要因警告而阻止归档,只需告知用户并征求确认
- 移动到归档目录时保留 .openspec.yaml(它会随目录一起移动)
- 清晰展示执行结果摘要
- 如果用户要求同步,使用 openspec-sync-specs 方式(由 Agent 驱动)
- 如果存在增量规范,始终执行同步评估,并在提示用户前展示汇总摘要