apply
Implement tasks from an OpenSpec change (Experimental)
Update a change - revise existing planning artifacts and keep them coherent (Experimental)
> /plugin marketplace add heurema/signum > /plugin install signum@signum
How it fires
How this command gets triggered: by you, by Claude, or both.
/updateContext preview
What this command does when you run it.
Update a change - revise existing planning artifacts and keep them coherent (Experimental)
name: "OPSX: Update" description: Update a change - revise existing planning artifacts and keep them coherent (Experimental) allowed-tools: Bash(openspec:*) category: Workflow tags: [workflow, artifacts, experimental]
Revise a change's existing planning artifacts and keep them coherent. Never edit code.
**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:update` (e.g., `/opsx:update 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 sorted by most recently modified. Then use the **AskUserQuestion tool** to let the user select which change to update.
Present the top 3-4 most recently modified changes as options, showing:
Mark the most recently modified change as "(Recommended)" since it's likely what the user wants to update.
**IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.
2. **Get the change's artifacts**
openspec status --change "<name>" --json
Parse the JSON to understand current state. The response includes:
The artifact ids and paths come from the active schema - do NOT assume them, and do NOT branch on hardcoded artifact names. Custom schemas must work unchanged.
The files to edit are `artifactPaths.<id>.existingOutputPaths` - the concrete files that exist on disk, already glob-expanded for glob artifacts (e.g. `specs/**/*.md`). Do NOT write to `resolvedOutputPath`: for a glob artifact it is still the glob pattern, not a real file.
3. **Understand the request**
4. **Read and reconcile**
5. **Confirm and apply, one artifact at a time**
openspec instructions <artifact-id> --change "<name>" --json
6. **Point to the next step (guidance only - NEVER act on it)**
**Output**
After each invocation, show:
**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)
Archive a completed change in the experimental workflow
Enter explore mode - think through ideas, investigate problems, clarify requirements
Propose a new change - create it and generate all artifacts in one step