From skills
Execute a chunk file produced by /deep-plan. Reads the specified chunk, validates suite dependencies via the suite index, confirms files and order with the user, implements in sequence, verifies each acceptance criterion, and prompts for the final status update. Use when the user invokes /execute-plan <path>.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:execute-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Implement the chunk at the path provided by the user. Every plan produced by `/deep-plan` is a **suite** — a directory containing `index.md` and one or more chunk files. Even a single-chunk plan is a suite (the chunk lives at `<suite-dir>/plan.md`).
Implement the chunk at the path provided by the user. Every plan produced by /deep-plan is a suite — a directory containing index.md and one or more chunk files. Even a single-chunk plan is a suite (the chunk lives at <suite-dir>/plan.md).
/execute-plan <path-to-chunk-file>
Examples (paths shown use the default plans directory; substitute the configured plansDir if different):
/execute-plan .claude/plans/2026-04-30-153022-add-rate-limiter/plan.md/execute-plan .claude/plans/2026-04-30-153022-mqtt-sync/listener.mdIf the user passes the suite directory or index.md, ask which chunk they want to run.
Resolve the plans directory before any path-touching action: read .claude/plans-config.json if present and use its plansDir; otherwise default to .claude/plans. If the config file is missing or malformed, silently fall back to the default. The user-supplied chunk path is authoritative — this resolution only matters when this skill needs to interpret or print paths that aren't given by the user.
This skill prefers the AskUserQuestion tool for interactive prompts. If AskUserQuestion is not available (older Claude Code versions, restricted environments), fall back to plain text: print the question, list the options as a numbered list with the recommended option marked (Recommended), and wait for the user's reply (a number or the option label). The skill proceeds normally in either mode — every call site below that says "call AskUserQuestion" follows this fallback rule.
Read the chunk file as your first action. Do not explore or implement before reading it. If the path is missing, the file doesn't exist, or the file is malformed, stop and tell the user.
Required sections in every chunk file:
## Context## Approach## Files Changed## Implementation Steps## Risks & Edge Cases## Acceptance CriteriaRequired frontmatter (a block of > **Field:** value lines near the top):
> **Status:**> **Depends on:**> **Part of suite:**If any required section or frontmatter line is missing, stop and tell the user the chunk is malformed.
Also read CLAUDE.md at the project root for project conventions.
Every chunk belongs to a suite, including single-chunk suites. Always run this phase.
> **Part of suite:** line. If unset, fall back to index.md in the same directory as the chunk.Status: field in the index:
done: stop. Tell the user this chunk is already marked done. Ask via plain text whether they want to re-run it (which requires manually editing the index back to pending first).in-progress: warn the user that the chunk is already in progress (possibly from a previous failed run). Ask via AskUserQuestion: "Continue (resume / re-run), or stop?" with options "Continue", "Stop". If continue, proceed.blocked: stop. Tell the user the chunk is marked blocked and needs human resolution before it can run.pending: proceed.Depends on: list. For each dependency, look up its status in the index.
done, stop and print:
🚫 Cannot execute <chunk-name>: depends on chunks that are not done yet.
- <dep-name>: <status>
- <dep-name>: <status>
Run those chunks first, or use /plan-tracker to see suite status.
done (or the chunk has no dependencies), mark this chunk's status as in-progress in both the index file and the chunk file's frontmatter. This is the only automatic status update — it does not claim correctness, only that work has started.For single-chunk suites this phase is trivially satisfied (Depends on: is (none)), but the status update from pending → in-progress still happens.
Print:
📄 Chunk loaded: <filename>
Suite: <suite-name>
Status: in-progress (was pending; updated on run start)
Approach: <one-line from chunk>
Files to change (in order):
1. <path> — <intent>
2. ...
Acceptance criteria: <count>
Then ask in plain text: "Plan looks current and correct? Reply 'go' to proceed, or describe what's stale or wrong."
Stop and wait. Do not proceed to Phase 3 until the user explicitly approves.
If the user reports that the plan is stale (e.g. "the file structure has changed since this was written"), stop. Tell the user the plan should be re-generated with /deep-plan. Do not patch a stale plan in execution mode. Revert the chunk's status from in-progress back to pending in both the index and the chunk file before stopping.
Implement the steps in the order specified by the chunk. Do not reorder, skip, or merge steps without explicit user approval.
For each step:
If a step is impossible or wrong-as-specified (the plan calls for a file that doesn't exist, specifies an interface that conflicts with reality, etc.), stop and ask the user. Do not silently work around plan specifications.
The chunk provides interfaces, contracts, and intent — not implementation bodies. You are responsible for designing implementations that satisfy the contracts. Use the project's existing patterns (from CLAUDE.md and the codebase) as a guide.
After all steps are complete, walk through the acceptance criteria checklist from the chunk. For each criterion:
Print a final report:
Implementation report
Acceptance criteria:
✅ <criterion 1>
✅ <criterion 2>
❌ <criterion 3> — <reason>
Files changed:
- <path>
Notes:
<any deviations from the plan, with reasoning>
If any criteria are ❌, do not claim the work is complete.
Always prompt the user for the final status — never auto-update from in-progress to done.
Call AskUserQuestion:
Update the chunk's status in both the suite index file and the chunk file's frontmatter:
done in both files. Print: "✅ Chunk marked done in suite index."blocked in both files. Print: "⚠️ Chunk marked blocked. Other chunks depending on this one cannot run until resolved."in-progress). Print: "ℹ️ Status left as in-progress."pending in both files. Print: "↩️ Status reverted to pending. (Code changes were NOT reverted — use git to undo if needed.)"End your turn after printing the acknowledgment.
done. Always prompt the user.pending → in-progress at run start.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub vpaivag/skills --plugin skills