/executing-an-implementation-plan
Use when executing implementation plans with independent tasks in the current session - dispatches fresh subagent for each task, reviews once per phase, loads phases just-in-time to minimize context usage
$ npx -y skills add ed3dai/ed3d-plugins --skill executing-an-implementation-plan --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/executing-an-implementation-plan
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when executing implementation plans with independent tasks in the current session - dispatches fresh subagent for each task, reviews once per phase, loads phases just-in-time to minimize context usage
SKILL.md
executing-an-implementation-plan.SKILL.mdname: executing-an-implementation-plan
description: Use when executing implementation plans with independent tasks in the current session - dispatches fresh subagent for each task, reviews once per phase, loads phases just-in-time to minimize context usage
user-invocable: false
Executing an Implementation Plan
Execute plan phase-by-phase, loading each phase just-in-time to minimize context usage.
**Core principle:** Read one phase → execute all tasks → review → move to next phase. Never load all phases upfront.
**REQUIRED SKILL:** `requesting-code-review` - The review loop (dispatch, fix, re-review until zero issues)
Overview
**When NOT to use:**
- No implementation plan exists yet (use writing-implementation-plans first)
- Plan needs revision (brainstorm first)
MANDATORY: Human Transparency
**The human cannot see what subagents return. You are their window into the work.**
**Do not use nested subagents.** This workflow may dispatch first-level task, review, bug-fix, and librarian subagents. Those subagents must not dispatch additional subagents; they must do their assigned work directly and report back to this caller.
After EVERY subagent completes (task-implementor, bug-fixer, code-reviewer), you MUST:
1. **Print the subagent's full response** to the user before taking any other action 2. **Do not summarize or paraphrase** - show them what the subagent actually said 3. **Include all details:** test counts, issue lists, commit hashes, error messages
**Before dispatching any subagent:**
- Briefly explain (2-3 sentences) what you're asking the agent to do
- State which phase this covers
**Why this matters:** When you silently process subagent output without showing the user, they lose visibility into their own codebase. They can't catch errors, learn from the process, or intervene when needed. Transparency is not optional.
**Red flag:** If you find yourself thinking "I'll just move on to the next step" without printing the subagent's response, STOP. Print it first.
REQUIRED: Implementation Plan Path
**DO NOT GUESS.** If the user has not provided a path to an implementation plan directory, you MUST ask for it.
Use AskUserQuestion:
Question: "Which implementation plan should I execute?"
Options:
- [list any plan directories you find in docs/implementation-plans/]
- "Let me provide the path"
If `docs/implementation-plans/` doesn't exist or is empty, ask the user to provide the path directly.
**Never assume, infer, or guess which plan to execute.** The user must explicitly tell you.
The Process
1. Discover Phases
**DO NOT read the full phase files yet.** List them and read only the header and task markers.
# List phase files
ls [plan-directory]/phase_*.md
# For each file, get the header (first 10 lines include title and Goal)
head -10 [plan-directory]/phase_01.md
# Get task/subcomponent structure without reading full content
grep -E "START_TASK_|START_SUBCOMPONENT_" [plan-directory]/phase_01.md
The header includes the title (`# [Phase Title]`) and `**Goal:**` line. Extract the title for the task entry.
The grep output shows the task structure, e.g.:
<!-- START_TASK_1 -->
<!-- START_TASK_2 -->
<!-- START_SUBCOMPONENT_A (tasks 3-5) -->
<!-- START_TASK_3 -->
<!-- START_TASK_4 -->
<!-- START_TASK_5 -->
Examples of headers you might see:
- `# Document Infrastructure Implementation Plan` — Phase 1 implied
- `# Phase 4: Link Resolution` — Phase number explicit
**Check for implementation guidance:**
After discovering phases, check if `.ed3d/implementation-plan-guidance.md` exists in the project root:
# Check for implementation guidance (note the absolute path for later use)
ls [project-root]/.ed3d/implementation-plan-guidance.md
If the file exists, note its **absolute path** for use during code reviews. If it doesn't exist, proceed without it—do not pass a nonexistent path to reviewers.
**Check for test requirements:**
Check if `test-requirements.md` exists in the plan directory:
# Check for test requirements (note the absolute path for later use)
ls [plan-directory]/test-requirements.md
If the file exists, note its **absolute path** for use during final review. The test requirements document specifies what automated tests must exist for each acceptance criterion.
**Create a session-isolated scratchpad directory:**
# Extract slug from plan directory name (last path component, without trailing slash)
SLUG=$(basename "[plan-directory]")
# Generate unique session ID
SESSION_ID=$(printf '%04x%04x' $RANDOM $RANDOM)
# Create scratchpad path
SCRATCHPAD_DIR="/tmp/exec-${SLUG}-${SESSION_ID}"
mkdir -p "${SCRATCHPAD_DIR}"
echo "${SCRATCHPAD_DIR}"This scratchpad ensures isolation when multiple execution sessions run in parallel. Pass it to code-reviewer invocations.
2. Create Phase-Level Task List
Use TaskCreate to create **three task entries per phase** (or TodoWrite in older Claude Code versions). Include the title from the header:
- [ ] Phase 1a: Read /absolute/path/to/phase_01.md — Document Infrastructure Implementation Plan
- [ ] Phase 1b: Execute tasks
- [ ] Phase 1c: Code review
- [ ] Phase 2a: Read /absolute/path/to/phase_02.md — API Integration
- [ ] Phase 2b: Execute tasks
- [ ] Phase 2c: Code review
...
**Why absolute paths in task entries:** After compaction, context may be summarized. The absolute path in the task entry ensures you always know exactly which file to read.
**Why include the title:** Gives visibility into what each phase covers without loading full content.
3. Execute Each Phase
For each phase, follow this cycle:
3a. Read Phase File (just-in-time)
Mark "Phase Na: Read [path]" as in_progress.
Read ONLY that phase file now. Extract:
- List of tasks in this phase
- Working directory
- Any phase-specific context
Mark "Phase Na: Read" as complete.
3b. Execute All Tasks
Mark "Phase Nb: Execute tasks" as in_progress.
**Be
Read more
name: executing-an-implementation-plan description: Use when executing implementation plans with independent tasks in the current session - dispatches fresh subagent for each task, reviews once per phase, loads phases just-in-time to minimize context usage user-invocable: false
Executing an Implementation Plan
Execute plan phase-by-phase, loading each phase just-in-time to minimize context usage.
**Core principle:** Read one phase → execute all tasks → review → move to next phase. Never load all phases upfront.
**REQUIRED SKILL:** `requesting-code-review` - The review loop (dispatch, fix, re-review until zero issues)
Overview
**When NOT to use:**
- No implementation plan exists yet (use writing-implementation-plans first)
- Plan needs revision (brainstorm first)
MANDATORY: Human Transparency
**The human cannot see what subagents return. You are their window into the work.**
**Do not use nested subagents.** This workflow may dispatch first-level task, review, bug-fix, and librarian subagents. Those subagents must not dispatch additional subagents; they must do their assigned work directly and report back to this caller.
After EVERY subagent completes (task-implementor, bug-fixer, code-reviewer), you MUST:
1. **Print the subagent's full response** to the user before taking any other action 2. **Do not summarize or paraphrase** - show them what the subagent actually said 3. **Include all details:** test counts, issue lists, commit hashes, error messages
**Before dispatching any subagent:**
- Briefly explain (2-3 sentences) what you're asking the agent to do
- State which phase this covers
**Why this matters:** When you silently process subagent output without showing the user, they lose visibility into their own codebase. They can't catch errors, learn from the process, or intervene when needed. Transparency is not optional.
**Red flag:** If you find yourself thinking "I'll just move on to the next step" without printing the subagent's response, STOP. Print it first.
REQUIRED: Implementation Plan Path
**DO NOT GUESS.** If the user has not provided a path to an implementation plan directory, you MUST ask for it.
Use AskUserQuestion:
Question: "Which implementation plan should I execute?" Options: - [list any plan directories you find in docs/implementation-plans/] - "Let me provide the path"
If `docs/implementation-plans/` doesn't exist or is empty, ask the user to provide the path directly.
**Never assume, infer, or guess which plan to execute.** The user must explicitly tell you.
The Process
1. Discover Phases
**DO NOT read the full phase files yet.** List them and read only the header and task markers.
# List phase files ls [plan-directory]/phase_*.md # For each file, get the header (first 10 lines include title and Goal) head -10 [plan-directory]/phase_01.md # Get task/subcomponent structure without reading full content grep -E "START_TASK_|START_SUBCOMPONENT_" [plan-directory]/phase_01.md
The header includes the title (`# [Phase Title]`) and `**Goal:**` line. Extract the title for the task entry.
The grep output shows the task structure, e.g.:
<!-- START_TASK_1 --> <!-- START_TASK_2 --> <!-- START_SUBCOMPONENT_A (tasks 3-5) --> <!-- START_TASK_3 --> <!-- START_TASK_4 --> <!-- START_TASK_5 -->
Examples of headers you might see:
- `# Document Infrastructure Implementation Plan` — Phase 1 implied
- `# Phase 4: Link Resolution` — Phase number explicit
**Check for implementation guidance:**
After discovering phases, check if `.ed3d/implementation-plan-guidance.md` exists in the project root:
# Check for implementation guidance (note the absolute path for later use) ls [project-root]/.ed3d/implementation-plan-guidance.md
If the file exists, note its **absolute path** for use during code reviews. If it doesn't exist, proceed without it—do not pass a nonexistent path to reviewers.
**Check for test requirements:**
Check if `test-requirements.md` exists in the plan directory:
# Check for test requirements (note the absolute path for later use) ls [plan-directory]/test-requirements.md
If the file exists, note its **absolute path** for use during final review. The test requirements document specifies what automated tests must exist for each acceptance criterion.
**Create a session-isolated scratchpad directory:**
# Extract slug from plan directory name (last path component, without trailing slash)
SLUG=$(basename "[plan-directory]")
# Generate unique session ID
SESSION_ID=$(printf '%04x%04x' $RANDOM $RANDOM)
# Create scratchpad path
SCRATCHPAD_DIR="/tmp/exec-${SLUG}-${SESSION_ID}"
mkdir -p "${SCRATCHPAD_DIR}"
echo "${SCRATCHPAD_DIR}"This scratchpad ensures isolation when multiple execution sessions run in parallel. Pass it to code-reviewer invocations.
2. Create Phase-Level Task List
Use TaskCreate to create **three task entries per phase** (or TodoWrite in older Claude Code versions). Include the title from the header:
- [ ] Phase 1a: Read /absolute/path/to/phase_01.md — Document Infrastructure Implementation Plan - [ ] Phase 1b: Execute tasks - [ ] Phase 1c: Code review - [ ] Phase 2a: Read /absolute/path/to/phase_02.md — API Integration - [ ] Phase 2b: Execute tasks - [ ] Phase 2c: Code review ...
**Why absolute paths in task entries:** After compaction, context may be summarized. The absolute path in the task entry ensures you always know exactly which file to read.
**Why include the title:** Gives visibility into what each phase covers without loading full content.
3. Execute Each Phase
For each phase, follow this cycle:
3a. Read Phase File (just-in-time)
Mark "Phase Na: Read [path]" as in_progress.
Read ONLY that phase file now. Extract:
- List of tasks in this phase
- Working directory
- Any phase-specific context
Mark "Phase Na: Read" as complete.
3b. Execute All Tasks
Mark "Phase Nb: Execute tasks" as in_progress.
**Be
Showing the first part of this file.
This is my collection of plugins that I use on a day-to-day basis for getting stuff done with Claude Code. Most of these are development-oriented in some way or another, but also often end up being useful for other things.
Repo: ed3dai/ed3d-plugins
Other skills on ed3d-plugins.
- /doing-a-simple-two-stage-fanout
Use when analyzing a large corpus of text, code, or data that exceeds a single agent's effective context - orchestrates parallel Worker subagents, Critic review subagents, and a final Summarizer subagent with task tracking and failure recovery
Open skill - /using-generic-agents
Use to decide what kind of generic agent you should use
Open skill - /creating-a-plugin
Use when creating a new Claude Code plugin or setting up plugin structure - provides complete file organization, manifest format, and component definitions for commands, agents, skills, hooks, and MCP servers
Open skill - /creating-an-agent
Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for auto-delegation, tool selection, prompt structure, and testing agents
Open skill - /maintaining-a-marketplace
Use when creating, releasing, or maintaining a Claude Code Plugin Marketplace - covers marketplace.json schema, version management, release checklists, changelog conventions, and validation to prevent sync drift between plugin.json and marketplace.json
Open skill - /maintaining-project-context
Use when completing development phases or branches to identify and update CLAUDE.md or AGENTS.md files that may have become stale - analyzes what changed, determines affected contracts and documentation, and coordinates updates
Open skill

