Summary
Convert the existing execute command (currently backed by two legacy prompt files in .ai/backup/) into a proper Claude Code skill at .claude/skills/execute/SKILL.md, following the same governance model established by the plan skill (see MET-0002). The skill must always run under the claude-haiku-4-5-20251001 model to keep execution cost-effective.
Motivation
The plan/planner refactor (issue #146, MET-0002) split planning from mechanical file I/O. Execution is the natural next step in the same pattern:
- The current execute logic lives in
.ai/backup/execute.md and .ai/backup/h-execute.md — unregistered, undiscoverable, and not governed
- There is no dedicated implementer skill; today execution is ad-hoc
- Haiku 4.5 is the right model for execution: it follows a well-defined plan step-by-step and does not need the reasoning depth of Sonnet. Using it keeps costs low for long implementation runs.
Proposed Design
Skill file
.claude/skills/execute/SKILL.md
The skill is registered in .claude/settings.json (if needed for model pinning) and listed in the skills index.
Model
The skill must specify model: claude-haiku-4-5-20251001 in its frontmatter (or equivalent harness configuration) so every invocation uses Haiku 4.5 regardless of the caller's active model.
Behaviour (carry over from existing execute command, adapted for plans/)
- Locate the plan — scan
plans/ first (new storage), fall back to .ai/ for legacy plans. Auto-suggest based on current branch name. Ask user to confirm.
- Read and summarise — parse phases and steps; show completion status (pending / completed / blocked / skipped).
- Determine scope — accept "all", a phase ("Phase 1"), specific steps ("1.1, 2.3"), or a range ("1.1–2.3").
- Determine interaction mode — interactive (confirm after each step), batch (confirm after each phase), or autonomous (no interruptions).
- Execute — for each step in scope: display step details, implement changes (Bash, Read, Edit, Write, etc.), run specified tests, mark status.
- Handle blockers — document, ask user: retry / skip / modify approach.
- Update the plan — delegate to the
plan skill (OPERATION: UPDATE) to mark steps completed/skipped/blocked and add a revision history entry.
- Sync GitHub issue — the plan skill handles issue body sync automatically.
- Summarise — list completed, skipped, and blocked steps; suggest next action.
Architecture rules to enforce during execution
- Hexagonal Architecture (domain ← ports ← adapters)
- New modules added as
compileOnly in infra/gradle
- Parallel execution via Gradle Workers API only
- Tests run with
./gradlew test after significant changes
- Commit message guidelines from CLAUDE.md
Asset governance
Creating .claude/skills/execute/SKILL.md triggers the meta-log skill before any file is written.
Acceptance Criteria
Notes
- The skill replaces the
.ai/backup/execute.md and .ai/backup/h-execute.md prompt files functionally — do not delete them, they are historical artifacts
- The
implementer agent (.claude/agents/implementer.md) already exists; check whether this skill should complement or replace it — if the agent already covers execution, consider whether the skill should simply wrap/invoke it with Haiku pinned
- See MET-0002 (
meta/MET-0002_add-plan-skill-refactor-planner.md) for the governance pattern this issue follows
Summary
Convert the existing execute command (currently backed by two legacy prompt files in
.ai/backup/) into a proper Claude Code skill at.claude/skills/execute/SKILL.md, following the same governance model established by theplanskill (see MET-0002). The skill must always run under the claude-haiku-4-5-20251001 model to keep execution cost-effective.Motivation
The plan/planner refactor (issue #146, MET-0002) split planning from mechanical file I/O. Execution is the natural next step in the same pattern:
.ai/backup/execute.mdand.ai/backup/h-execute.md— unregistered, undiscoverable, and not governedProposed Design
Skill file
The skill is registered in
.claude/settings.json(if needed for model pinning) and listed in the skills index.Model
The skill must specify
model: claude-haiku-4-5-20251001in its frontmatter (or equivalent harness configuration) so every invocation uses Haiku 4.5 regardless of the caller's active model.Behaviour (carry over from existing execute command, adapted for
plans/)plans/first (new storage), fall back to.ai/for legacy plans. Auto-suggest based on current branch name. Ask user to confirm.planskill (OPERATION: UPDATE) to mark steps completed/skipped/blocked and add a revision history entry.Architecture rules to enforce during execution
compileOnlyininfra/gradle./gradlew testafter significant changesAsset governance
Creating
.claude/skills/execute/SKILL.mdtriggers themeta-logskill before any file is written.Acceptance Criteria
.claude/skills/execute/SKILL.mdexists and is discoverable as a user-invocable skillclaude-haiku-4-5-20251011(Haiku 4.5)plans/first, then.ai/as legacy fallbackplanskill (not by writing the plan file directly)meta-logentry written before the skill file is created.ai/backup/are left in place (not deleted)Notes
.ai/backup/execute.mdand.ai/backup/h-execute.mdprompt files functionally — do not delete them, they are historical artifactsimplementeragent (.claude/agents/implementer.md) already exists; check whether this skill should complement or replace it — if the agent already covers execution, consider whether the skill should simply wrap/invoke it with Haiku pinnedmeta/MET-0002_add-plan-skill-refactor-planner.md) for the governance pattern this issue follows