openspec-bulk-archive-change
Batch archive multiple completed specifications while resolving conflicts.
Install
mkdir -p .claude/skills/openspec-bulk-archive-change-straydragon && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12554" && unzip -o skill.zip -d .claude/skills/openspec-bulk-archive-change-straydragon && rm skill.zipInstalls to .claude/skills/openspec-bulk-archive-change-straydragon
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Archive multiple completed changes at once. Use when archiving several parallel changes.Key capabilities
- →Get all active changes using `openspec list --json`.
- →Prompt the user to select changes for archiving.
- →Collect artifact status, task completion, and delta specifications for selected changes.
- →Detect specification conflicts when multiple changes affect the same capability.
- →Intelligently resolve conflicts by investigating the codebase for implementation evidence.
- →Execute archiving by moving change directories to an archive folder.
How it works
The skill lists active changes, prompts user selection, collects status and specs for each, detects and resolves conflicts by checking code implementation, then archives the selected changes and provides a summary.
Inputs & outputs
When to use openspec-bulk-archive-change
- →Archiving multiple features
- →Resolving requirement overlaps
- →Cleaning up project specs
About this skill
一次操作归档多个已完成的变更。
该技能允许你批量归档变更,并通过检查代码库来判断实际实现,从而智能处理规范冲突。
输入:无需输入(会提示选择)
步骤
-
获取活动中的变更
运行
openspec list --json获取所有活动中的变更。如果没有活动中的变更,告知用户并停止。
-
提示选择变更
使用 AskUserQuestion 工具 的多选让用户选择变更:
- 显示每个变更及其 schema
- 提供“所有变更”选项
- 允许任意数量的选择(1+ 可用,2+ 更常见)
重要:不要自动选择。始终让用户选择。
-
批量校验 - 收集所有选定变更的状态
对每个选定变更,收集:
a. 工件状态 - 运行
openspec status --change "<name>" --json- 解析
schemaName与artifacts列表 - 标注哪些工件为
done,哪些为其他状态
b. 任务完成情况 - 读取
openspec/changes/<name>/tasks.md- 统计
- [ ](未完成)与- [x](完成) - 如无 tasks 文件,标注为“无任务”
c. delta 规范 - 检查
openspec/changes/<name>/specs/目录- 列出存在的能力规范
- 对每个规范,提取需求名称(匹配
### Requirement: <name>的行)
- 解析
-
检测规范冲突
构建
capability -> [触及该能力的变更]的映射:auth -> [change-a, change-b] <- 冲突(2+ 变更) api -> [change-c] <- OK(仅 1 个变更)当 2+ 个变更对同一能力有 delta 规范时视为冲突。
-
智能解决冲突
针对每个冲突,调查代码库:
a. 读取冲突变更的 delta 规范,理解各自声称新增/修改的内容
b. 在代码库中搜索实现证据:
- 查找与各自需求相关的实现代码
- 检查相关文件、函数或测试
c. 确定处理方案:
- 仅一个变更已实现 -> 仅同步该变更的规范
- 两个都已实现 -> 按时间顺序应用(先旧后新,新覆盖旧)
- 都未实现 -> 跳过规范同步并警告
d. 记录每个冲突的解决方案:
- 应用哪个变更的规范
- 应用顺序(如两者都实现)
- 依据(代码库中的发现)
-
显示汇总状态表
展示所有变更的汇总表:
| Change | Artifacts | Tasks | Specs | Conflicts | Status | |---------------------|-----------|-------|---------|-----------|--------| | schema-management | Done | 5/5 | 2 delta | None | Ready | | project-config | Done | 3/3 | 1 delta | None | Ready | | add-oauth | Done | 4/4 | 1 delta | auth (!) | Ready* | | add-verify-skill | 1 left | 2/5 | None | None | Warn |对冲突展示解决方案:
* 冲突解决方案: - auth 规范:将先应用 add-oauth,再应用 add-jwt(两者已实现,按时间顺序)对未完成变更展示警告:
警告: - add-verify-skill:1 个工件未完成,3 个任务未完成 -
确认批量操作
使用 AskUserQuestion 工具 进行单次确认:
- “归档 N 个变更?”并根据状态提供选项
- 选项可能包括:
- “归档全部 N 个变更”
- “仅归档 N 个就绪变更(跳过未完成)”
- “取消”
如果存在未完成变更,明确说明将带警告归档。
-
对每个确认的变更执行归档
按确定的顺序处理(遵循冲突解决顺序):
a. 如存在 delta 规范则同步规范:
- 使用 openspec-sync-specs 的方式(agent 驱动的智能合并)
- 冲突时按已确定的顺序应用
- 记录是否已同步
b. 执行归档:
mkdir -p openspec/changes/archive mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>c. 记录每个变更的结果:
- 成功:已成功归档
- 失败:归档出错(记录错误)
- 跳过:用户选择不归档(如适用)
-
显示摘要
展示最终结果:
## 批量归档完成 已归档 3 个变更: - schema-management-cli -> archive/2026-01-19-schema-management-cli/ - project-config -> archive/2026-01-19-project-config/ - add-oauth -> archive/2026-01-19-add-oauth/ 跳过 1 个变更: - add-verify-skill(用户选择不归档未完成变更) 规范同步摘要: - 已同步 4 个 delta 规范到主规范 - 已解决 1 个冲突(auth:按时间顺序应用两者)如果有失败:
失败 1 个变更: - some-change: 归档目录已存在
冲突解决示例
示例 1:仅一个已实现
Conflict: specs/auth/spec.md touched by [add-oauth, add-jwt]
Checking add-oauth:
- Delta adds "OAuth Provider Integration" requirement
- Searching codebase... found src/auth/oauth.ts implementing OAuth flow
Checking add-jwt:
- Delta adds "JWT Token Handling" requirement
- Searching codebase... no JWT implementation found
Resolution: Only add-oauth is implemented. Will sync add-oauth specs only.
示例 2:两者均已实现
Conflict: specs/api/spec.md touched by [add-rest-api, add-graphql]
Checking add-rest-api (created 2026-01-10):
- Delta adds "REST Endpoints" requirement
- Searching codebase... found src/api/rest.ts
Checking add-graphql (created 2026-01-15):
- Delta adds "GraphQL Schema" requirement
- Searching codebase... found src/api/graphql.ts
Resolution: Both implemented. Will apply add-rest-api specs first,
then add-graphql specs (chronological order, newer takes precedence).
成功输出
## 批量归档完成
已归档 N 个变更:
- <change-1> -> archive/YYYY-MM-DD-<change-1>/
- <change-2> -> archive/YYYY-MM-DD-<change-2>/
规范同步摘要:
- 已同步 N 个 delta 规范到主规范
- 无冲突(或:已解决 M 个冲突)
部分成功输出
## 批量归档完成(部分)
已归档 N 个变更:
- <change-1> -> archive/YYYY-MM-DD-<change-1>/
跳过 M 个变更:
- <change-2>(用户选择不归档未完成变更)
失败 K 个变更:
- <change-3>: 归档目录已存在
无可归档变更时输出
## 没有可归档的变更
未找到活动中的变更。使用 `/opsx:new` 创建新的变更。
护栏
- 允许任意数量的变更(1+ 可用,2+ 更常见)
- 始终提示选择,不要自动选择
- 提前检测规范冲突并通过检查代码库解决
- 当两者都已实现时,按时间顺序应用规范
- 仅在实现缺失时跳过规范同步(提示警告)
- 确认前清晰展示每个变更的状态
- 整批只做一次确认
- 跟踪并报告所有结果(成功/跳过/失败)
- 移动时保留 .openspec.yaml
- 归档目录使用当前日期:YYYY-MM-DD-<name>
- 若归档目标已存在,当前变更失败但继续处理其他变更
When not to use it
- →When there are no active changes to archive.
- →When the user wants to automatically select changes.
- →When the user wants to archive a single change.
Prerequisites
Limitations
- →It requires user selection for changes.
- →It does not automatically select changes.
- →It requires `openspec CLI`.
How it compares
This skill automates the bulk archiving of changes with intelligent conflict resolution based on code evidence, which is more efficient and accurate than manual archiving and conflict handling.
Compared to similar skills
openspec-bulk-archive-change side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| openspec-bulk-archive-change (this skill) | 0 | 6mo | Review | Advanced |
| conductor-validator | 1 | 4mo | No flags | Beginner |
| openspec-apply-change | 0 | 6mo | Review | Intermediate |
| ejs-session-init | 0 | 4mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by StrayDragon
View all by StrayDragon →You might also like
conductor-validator
sickn33
Validates Conductor project artifacts for completeness, consistency, and correctness. Use after setup, when diagnosing issues, or before implementation to verify project context.
openspec-apply-change
PBH-BTN
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
ejs-session-init
McFuzzySquirrel
>
project-logger
diegosouzapw
SQLite-based project documentation logger for tracking API references, components, and project progress. Use this skill when documenting code changes, adding API documentation, recording component updates, or tracking project milestones. Automatically invoked when user mentions documentation, change
complete-task
Log2n-io
Complete work on a GitHub issue - close issue, update artifacts, prompt for doc updates
modeling-project-structure
shengzhou-nwpu
>-