with one click
corgispec-apply-change
// Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
// Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | corgispec-apply-change |
| description | Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. |
| license | MIT |
| compatibility | Requires openspec CLI. |
| metadata | {"author":"openspec","version":"2.0","generatedBy":"1.3.0"} |
Implement tasks from an OpenSpec change — one Task Group at a time, with subagent delegation.
openspec/config.yaml is readableisolation.mode is worktree → worktree MUST exist (created by propose). If missing, STOP.openspec status --change "<name>" --json does NOT return state: "blocked"isolation.mode is worktreeRead openspec/config.yaml for isolation settings.
If isolation.mode: worktree: Changes live inside worktrees, not the main checkout. Read references/worktree-discovery.md for the full discovery procedure. Quick summary:
openspec list --json — if it returns changes, use them<isolation.root>/ directories, verify each with git worktree list and check openspec/changes/<name>/ exists insideIf no isolation: openspec list --json directly. Auto-select if one, prompt if multiple.
If name provided by user, use it directly. Announce: Using change: <name> (and worktree path if applicable).
openspec status --change "<name>" --json
openspec instructions apply --change "<name>" --json
Handle states: blocked → stop. all_done → suggest review/archive. Otherwise → proceed.
Read all files listed in contextFiles.
Read references/checkpoint-flow.md for: Task Group parsing from tasks.md, identifying the current group (first group with pending tasks), and building the group progress table.
Read references/delegation-strategy.md for: how to analyze tasks within the current group, decide which to delegate to subagents, and how to structure delegation prompts.
Quick summary: Analyze task dependencies within the group. Independent tasks SHOULD be delegated to subagents for cleaner context and potential parallelism. Each subagent gets only the relevant context files and task description — not the full conversation history.
If tracked: move the child issue to in-progress before starting Step 4 (read references/issue-sync.md).
a. Announce: Group N: <name> (with issue number if tracked)
b. Execute the group's implementation tasks — either directly or via subagents per Step 3's plan:
tasks.md: - [ ] → - [x]After all tasks in the group are complete, close out the group without doing new implementation work:
references/issue-sync.md for format)memory/session-bridge.md: set Active opsx Change to current change/phase/branch, update Done with completed tasks, update Waiting with next group infomemory/pitfalls.md Active section with source link (source: [[openspec/changes/<name>/tasks]])wiki/architecture/implicit-contracts.mdwiki/hot.md Recent Decisions if significant decisions were madeIssue sync SHOULD be delegated to a subagent — it is mechanical work that doesn't need main agent context.
If implementation work is complete but closeout fails, retry closeout and sync rather than re-running the group implementation.
## Checkpoint: Group N Complete
**Change:** <name>
**Progress:** A/B tasks complete
**Worktree:** <path> or "none"
Run `/corgi-review` to review this group, or `/corgi-apply` to continue.
STOP. Do not auto-continue to the next group.
[x] in tasks.mdopenspec instructions apply --change "<name>" --json reflects updated progressisolation.mode is worktree: all changes are in the worktree, not main checkoutIf ANY postcondition fails, STOP and report which one failed. Do not claim completion.
proposal.md or specs/ is missing, derive objectives from task descriptions