upload current sources
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
---
|
||||
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/<name>/` → `openspec/changes/archive/YYYY-MM-DD-<name>/`.
|
||||
|
||||
**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/<name>/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/<name>/specs/`, compare each
|
||||
with its main spec at `openspec/specs/<capability>/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-<name>`.
|
||||
|
||||
- **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/<name> openspec/changes/archive/<YYYY-MM-DD>-<name>
|
||||
```
|
||||
|
||||
5. **Display summary**
|
||||
|
||||
```
|
||||
## Archive Complete
|
||||
|
||||
**Change:** <change-name>
|
||||
**Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
|
||||
**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
|
||||
Reference in New Issue
Block a user