ss-archivelisted
Install: claude install-skill lbk-open/super-spec
# Archive OpenSpec Change
Merge OpenSpec delta specs from `openspec/changes/<change-id>/specs/` into
`openspec/specs/`, then move the change directory to
`openspec/changes/archive/YYYY-MM-DD-<change-id>/`.
This skill is idempotent. The `ss-create-pr` skill calls it automatically before opening a
pull request.
## Inputs
Optional: a specific `<change-id>`, and/or `--dry-run` to validate and report without
writing anything.
## Process
### Step 1: Discover the Active Change
If a `<change-id>` was given, use it. Otherwise:
1. List directories under `openspec/changes/`, excluding `archive/`.
2. If none exist, report a no-op.
3. If exactly one exists, use it.
4. If multiple exist, ask the user which one to archive.
If `openspec/changes/<change-id>/specs/` has no delta files, report a zero-spec no-op.
### Step 2: Sync With Git
Check the working tree status.
- If there are uncommitted changes: continue only if they are the intended OpenSpec
delta/code changes for this branch. Stop if unrelated files are dirty — never stash,
discard, or rewrite the user's work.
- Don't rebase-pull while the worktree is dirty.
- If the worktree is clean, sync first (fetch and rebase against upstream).
- If the worktree is dirty but only contains the intended change, perform the archive
merge and commit first, then rebase-pull only if needed before pushing.
### Step 3: Validate Delta Format
For every `openspec/changes/<change-id>/specs/<cap>/spec.md`:
- section headings are only ADDE