agentleFS
redhat-developerredhat-developer/rhdh-skills/skills/refinement/openspec-bulk-archive-change/SKILL.md

openspec-bulk-archive-change

Skill20 starsChanged 20 days agoApache-2.0View on GitHub

Archives several completed OpenSpec changes in one batch, detecting and agentically resolving spec conflicts by checking the codebase for what is actually implemented. Use for "archive these changes", "clean up finished changes", or "archive everything that's done" when more than one change needs archiving at once. For a single change, use openspec-archive-change instead.

58 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use draft-openspec-docs, release-openspec and 6 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • goernSkill

    draft-openspec-docs

    Collaborative page-drafting mode for the OpenSpec docs. Builds a scratch plan inside the target page (purpose, structure, numbered draft steps), iterates on it with the user, then drafts one section per approved step and cleans up after itself. Use when a page needs a from-scratch rewrite or a new page is being shaped with the user in the loop.

    Also in 3 projects that use this

  • goernSkill

    release-openspec

    Use this skill when releasing OpenSpec: audit merged work and changeset coverage, decide whether a catch-up changeset PR is needed, prepare or resume the Changesets Version Packages PR, cut a beta or stable release, verify publishing, and polish GitHub release notes. Also use when asked whether an open release PR is complete, what the next release step is, or to continue a release paused for human approval.

    Also in 3 projects that use this

  • Microsoft AzureSkill

    openspec-update-change

    Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.

    Also in 10 projects that use this

  • SentrySkill

    openspec-propose

    Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

    Also in 23 projects that use this

  • SentrySkill

    code-simplifier

    Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to "simplify code", "clean up code", "refactor for clarity", "improve readability", or review recently modified code for elegance. Focuses on project-specific best practices.

    Also in 3 projects that use this

  • +2 more from goern
  • +1 more from getsentry

The file

We split this skill into the rules it gives an agent

2 rules. 1 is common, 1 is distinctive, and 0 are very specific to this project.

  • 1

    Common

    Most of the 56 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Resolve each conflict agentically: read each conflicting change's delta spec, search the codebase for implementation evidence, and decide — …

    line 32
  2. Common:

    Always prompt for selection — never auto-select, even for "archive everything".

    line 61

“Common” is measured: kept by at least 6 in 10 of the 56 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Bulk-archive OpenSpec changes

Archive multiple parallel changes at once, resolving delta-spec conflicts between them by checking which is actually implemented rather than failing or guessing.

Steps

  1. Get active changes: openspec list --json. If none, tell the user and stop.
  2. Let the user select (multi-select, never auto-select): show each change with its schema, offer "All changes", and allow any number of selections (1+ works; 2+ is the typical case).
  3. Gather status for every selected change: artifact status (openspec status --change "<name>" --json), task completion (count - [ ]/- [x] in tasks.md, or note "No tasks" if absent), and delta specs under openspec/changes/<name>/specs/ with their requirement names.
  4. Detect spec conflicts. Build capability -> [changes touching it]; a conflict is 2+ selected changes touching the same capability.
  5. Resolve each conflict agentically: read each conflicting change's delta spec, search the codebase for implementation evidence, and decide — only one implemented -> sync that one; both implemented -> apply in chronological order (older first, newer takes precedence); neither implemented -> skip spec sync for that capability and warn. Record the resolution and its rationale per conflict.
  6. Show a consolidated status table (change, artifacts, tasks, specs, conflicts, ready/warn), with conflict resolutions and incomplete-change warnings called out beneath it.
  7. Confirm the batch operation with a single prompt: "Archive N changes?" offering "Archive all N", "Archive only the ready ones (skip incomplete)", or "Cancel". Make clear that choosing "all" archives incomplete changes with warnings, not silently.
  8. Execute per confirmed change, in the resolved order: if the change has delta specs to sync, delegate the merge to /openspec-sync-specs (via the Task tool, subagent_type: general-purpose, with the prompt "Invoke /openspec-sync-specs for change '<name>'" plus this change's resolved conflict decision from step 5) — conflict detection and resolution stay here; the merge mechanics belong to that skill. Then mkdir -p openspec/changes/archive && mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name>. Track success/failed/skipped per change; an existing archive target fails that change but does not stop the batch.
  9. Display the final summary: archived changes with their destinations, skipped changes with the reason, failed changes with the error, and a spec sync summary (deltas synced, conflicts resolved).

Guardrails

  • Always prompt for selection — never auto-select, even for "archive everything".
  • Detect conflicts before confirming the batch, and resolve them by checking the codebase, not by guessing or by change order alone.
  • Preserve .openspec.yaml on every archived change.
  • One failure must not abort the rest of the batch.

Completion

Complete when every selected-and-confirmed change has a recorded outcome — archived, skipped, or failed with a reason — and the spec-sync summary accounts for every capability that had a conflict.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.