--- name: openspec-archive-change description: Archive a completed change after implementation. Use when the user wants to finalize and archive a change once its tasks are done. license: MIT compatibility: Claude Code — no external CLI required. metadata: author: openspec (adapted for Claude Code) version: "1.0-claude" source: SAP-samples/cap-agentic-engineered --- Archive a completed change. > **Adapted for Claude Code.** No `openspec` CLI. Archiving is a plain directory move: > `openspec/changes//` → `openspec/changes/archive/YYYY-MM-DD-/`. **Input**: Optionally specify a change name. If omitted, prompt for selection. **Steps** 1. **Select the change** List active changes and let the user choose with the **AskUserQuestion tool**: ```bash ls -1 openspec/changes 2>/dev/null | grep -v '^archive$' ``` **IMPORTANT**: Do NOT guess or auto-select. Always let the user choose (unless they already named the change in their request). 2. **Check task completion** Read `openspec/changes//tasks.md` and count incomplete tasks (`- [ ]`) vs complete (`- [x]`). - **If incomplete tasks exist:** show the count and use the **AskUserQuestion tool** to confirm the user still wants to archive. Proceed only if confirmed. - **If no `tasks.md` exists:** proceed without a task warning. 3. **Sync any delta specs (optional)** If the change captured spec deltas under `openspec/changes//specs/`, compare each with its main spec at `openspec/specs//spec.md` and offer to apply the changes (read both, then Edit the main spec). Options to present: - "Sync now (recommended)" / "Archive without syncing" If there are no delta specs, skip this step. 4. **Perform the archive** ```bash mkdir -p openspec/changes/archive ``` Determine today's date (`date +%F` → `YYYY-MM-DD`) and build the target name `YYYY-MM-DD-`. - **If the target already exists:** stop with an error; suggest a different date suffix or renaming the existing archive. - **Otherwise:** move the change folder: ```bash mv openspec/changes/ openspec/changes/archive/- ``` 5. **Display summary** ``` ## Archive Complete **Change:** **Archived to:** openspec/changes/archive/YYYY-MM-DD-/ **Specs:** ✓ Synced to main specs (or "No delta specs" / "Sync skipped") ``` **Guardrails** - Always prompt for change selection if not provided - Don't block archive on warnings — inform, confirm, then proceed - Never overwrite an existing archive target - Show a clear summary of what happened - If delta specs exist, run the sync assessment and show the summary before prompting