Apply multiple active OpenSpec changes by creating isolated worktrees, dispatching delegated apply flows in parallel subagents, running verification in each flow, and reporting back without merging.
When to Use
- More than one active OpenSpec change exists
/opsx-applywas invoked without an explicit change target- The user wants multiple changes applied in parallel
Do not use this skill when the user explicitly targeted one change for /opsx-apply.
Steps
-
Get candidate changes
Run
openspec list --jsonto get active changes.
- If the command input included change names, limit analysis to those changes.
- If fewer than 2 active candidate changes remain, do not use bulk mode. Fall back to normal single-change apply.
-
Collect change context
For each candidate change:
- Run
openspec status --change "<name>" --json - Run
openspec instructions apply --change "<name>" --json - Read listed
contextFiles - Read the tasks artifact and summarize pending work
- Note the implementation scope needed by the delegated apply flow
- Run
-
Create isolated worktrees
For each candidate change:
- Create a git worktree under
.worktrees/<change> - Keep the parent agent out of direct implementation work in the main workspace
- Create a git worktree under
-
Dispatch subagents in parallel
For each candidate change:
- Dispatch one subagent in that change's worktree
- Run all delegated apply flows in parallel
- Do not apply any change directly in the parent agent
-
Require apply then verify in each subagent
Instruct each subagent to:
- run
/opsx-apply <change> - run
/opsx-verify <change>after apply work is complete - stop after verification
- summarize implementation outcome, verification status, changed files, blockers, and unresolved warnings
- run
-
Collect and normalize reports
For each executed change, capture:
- Worktree path
- Apply status (
complete,paused,failed) - Verify status (
ready,warnings,critical,failed) - Files changed summary
- Blockers or unresolved warnings
-
Report back without merging
Present a final bulk-apply report:
- Changes analyzed
- Worktrees created
- Apply result per change
/opsx-verifyresult per change- Which changes are ready for human review
End with a clear statement that no merge was performed and that explicit user approval is required before any merge.
Guardrails
- Do not auto-merge
- Do not auto-archive
- Do not bulk-apply when only one candidate change remains
- Do not perform apply work in the parent agent; use subagents only
- Do not run bulk apply in the main workspace; use isolated worktrees only
- Keep
.worktrees/as the default worktree root unless the user specifies another location - Require
/opsx-verifyin every delegated apply flow before reporting a change as review-ready