apply
Implement tasks from an OpenSpec change (Experimental)
Archive a completed change in the experimental workflow
> /plugin marketplace add heurema/signum > /plugin install signum@signum
How it fires
How this command gets triggered: by you, by Claude, or both.
/archiveContext preview
What this command does when you run it.
Archive a completed change in the experimental workflow
name: "OPSX: Archive" description: Archive a completed change in the experimental workflow allowed-tools: Bash(openspec:*) category: Workflow tags: [workflow, archive, experimental]
Archive a completed change in the experimental workflow.
**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store <id>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`). Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec/` root.
**Input**: Optionally specify a change name after `/opsx:archive` (e.g., `/opsx:archive add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
**Steps**
1. **If no change name provided, prompt for selection**
Run `openspec list --json` to get available changes. Use the **AskUserQuestion tool** to let the user select.
Show only active changes (not already archived). Include the schema used for each change if available.
**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
2. **Check artifact completion status**
Run `openspec status --change "<name>" --json` to check artifact completion.
Parse the JSON to understand:
**If any artifacts are not `done`:**
3. **Check task completion status**
Read the tasks file (typically `tasks.md`) to check for incomplete tasks.
Count tasks marked with `- [ ]` (incomplete) vs `- [x]` (complete).
**If incomplete tasks found:**
**If no tasks file exists:** Proceed without task-related warning.
4. **Assess delta spec sync state**
Use `artifactPaths.specs.existingOutputPaths` from status JSON to check for delta specs. If none exist, proceed without sync prompt.
**If delta specs exist:**
**Prompt options:**
If user chooses sync, use Task tool (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change '<name>'. Delta spec analysis: <include the analyzed delta spec summary>"). Proceed to archive regardless of choice.
5. **Perform the archive**
Create an `archive` directory under `planningHome.changesDir` if it doesn't exist:
mkdir -p "<planningHome.changesDir>/archive"
Generate target name using current date: `YYYY-MM-DD-<change-name>`
**Check if target already exists:**
mv "<changeRoot>" "<planningHome.changesDir>/archive/YYYY-MM-DD-<name>"
6. **Display summary**
Show archive completion summary including:
**Output On Success**
## Archive Complete **Change:** <change-name> **Schema:** <schema-name> **Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/ **Specs:** ✓ Synced to main specs All artifacts complete. All tasks complete.
**Output On Success (No Delta Specs)**
## Archive Complete **Change:** <change-name> **Schema:** <schema-name> **Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/ **Specs:** No delta specs All artifacts complete. All tasks complete.
**Output On Success With Warnings**
## Archive Complete (with warnings) **Change:** <change-name> **Schema:** <schema-name> **Archived to:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/ **Specs:** Sync skipped (user chose to skip) **Warnings:** - Archived with 2 incomplete artifacts - Archived with 3 incomplete tasks - Delta spec sync was skipped (user chose to skip) Review the archive if this was not intentional.
**Output On Error (Archive Exists)**
## Archive Failed **Change:** <change-name> **Target:** the archive path derived from `planningHome.changesDir`/YYYY-MM-DD-<name>/ Target archive directory already exists. **Options:** 1. Rename the existing archive 2. Delete the existing archive if it's a duplicate 3. Wait until a different date to archive
**Guardrails**
Signum is a contract-first proof gate for agentic software changes: it turns a task into a reviewed contract, executes against that contract, audits the result, and packages evidence that humans and CI can inspect.
Repo: heurema/signum
Implement tasks from an OpenSpec change (Experimental)
Enter explore mode - think through ideas, investigate problems, clarify requirements
Propose a new change - create it and generate all artifacts in one step
Update a change - revise existing planning artifacts and keep them coherent (Experimental)