Help us improve
Share bugs, ideas, or general feedback.
From groundwork
Dispatches planned tasks or features to task-executor agent for worktree-isolated TDD implementation. Resolves monorepo project context and plan files.
npx claudepluginhub etr/groundworkHow this skill is triggered — by the user, by Claude, or both
Slash command
/groundwork:task-implementationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Dispatches a previously planned task or feature to the task-executor agent for worktree-isolated TDD implementation.
Orchestrates task execution with git worktree isolation, TDD implementation, validation loop, and merge for phrases like 'execute task N' or 'implement TASK-NNN'.
Executes approved implementation tasks from a plan.json file created by spec-plan. Tracks progress via beads or harness todos, enforces TDD, and reports between batches. Invoke when ready to start coding from an approved plan.
Executes implementation plans with automatic sequential/parallel orchestration, handling worktree verification, resume detection, phase dispatch, and quality verification.
Share bugs, ideas, or general feedback.
Dispatches a previously planned task or feature to the task-executor agent for worktree-isolated TDD implementation.
This skill orchestrates implementation dispatch. Every turn re-reads the full context window, so unnecessary turns are expensive.
Your current effort level is {{effort_level}}.
Skip this step silently if effort is high or higher AND you are Sonnet or Opus.
If effort is below high, you MUST show the recommendation prompt — regardless of model.
If you are not Sonnet or Opus, you MUST show the recommendation prompt — regardless of effort level.
Otherwise → use AskUserQuestion:
{
"questions": [{
"question": "Implementation benefits from consistent multi-domain reasoning.\n\nTo switch: cancel, run `/effort high` (and `/model sonnet` if on Haiku), then re-invoke.",
"header": "Effort check",
"options": [
{ "label": "Continue" },
{ "label": "Cancel — I'll switch first" }
],
"multiSelect": false
}]
}
If the user selects "Cancel — I'll switch first": output the switching commands and stop. Do not proceed with the skill.
Before dispatching, ensure project context is resolved:
.groundwork.yml exist at the repo root?
{{project_name}} non-empty?
Skill(skill="groundwork:project-selector") to select a project, then restart this skill.{{project_name}}, specs at {{specs_dir}}/.Parse input from the caller's conversation context. Three modes:
Identifier, Mode, Branch prefix, Tasks path..groundwork-plans/TASK-NNN-plan.md. If file does not exist, output RESULT: FAILURE | No plan found for TASK-NNN. Run task-planning first. and stop.RESULT: FAILURE | No plan_file_path or task_id provided. Run task-planning first. and stop.Read ONLY the ## Context header from the plan file to extract:
identifier (e.g., TASK-004 or FEATURE-user-login)mode (task, feature, or task+blurb)branch_prefix (task or feature)tasks_path (path to tasks file, or N/A)specs_dirDo NOT read the full plan content into this orchestrator's context. The task-executor agent will read it.
Skip this step if identifier starts with FEATURE-.
Update the task file to **Status:** In Progress and update the status table in {{specs_dir}}/tasks/_index.md or {{specs_dir}}/tasks.md (change the task's row to In Progress).
Dispatch to the task-executor agent with a fresh context window. This agent has use-git-worktree and test-driven-development skills preloaded — it does not need to call Skill() or spawn subagents.
Build the Agent prompt — pass paths, not content.
identifier starts with TASK-)Agent(
subagent_type="groundwork:task-executor:task-executor",
description="Execute {identifier}",
prompt="You are implementing a task that has already been fully planned.
[If GROUNDWORK_BATCH_MODE=true in session: include the line below]
[If interactive: omit this line]
Do NOT use AskUserQuestion — proceed automatically.
PROJECT ROOT: [absolute path to project root]
TASK:
- task_id: [TASK-NNN]
- tasks_path: [absolute path to tasks file]
Read the '### TASK-NNN:' section from tasks_path for goal, action items,
and acceptance criteria. Do not ask the caller for task details.
PLAN FILE: [plan_file_path]
Read this file first with the Read tool — it contains the validated implementation plan.
INSTRUCTIONS:
1. Follow your preloaded skills to create a worktree, implement with TDD, and commit.
2. Read the task section from tasks_path and the plan from PLAN FILE — they provide all session context. Do NOT re-ask the user for requirements.
3. When complete, output your final line in EXACTLY this format:
RESULT: IMPLEMENTED | <worktree_path> | <branch> | <base_branch>
OR:
RESULT: FAILURE | [one-line reason]
IMPORTANT:
- Do NOT run validation-loop or merge — the caller handles those
- Do NOT use AskUserQuestion for merge decisions
- Your LAST line of output MUST be the RESULT line
"
)
identifier starts with FEATURE-)Agent(
subagent_type="groundwork:task-executor:task-executor",
description="Implement {identifier}",
prompt="You are implementing a feature that has already been fully planned.
PROJECT ROOT: [absolute path to project root]
FEATURE:
- Identifier: [FEATURE-slug]
PLAN FILE: [plan_file_path]
Read this file first with the Read tool — it contains the validated implementation plan
including full requirements, acceptance criteria, and spec paths.
INSTRUCTIONS:
1. Follow your preloaded skills to create a worktree, implement with TDD, and commit.
2. The plan file provides all session context including requirements, acceptance criteria, and spec paths. Read spec files referenced in the plan for architecture and design context. Do NOT re-ask the user for requirements.
3. When complete, output your final line in EXACTLY this format:
RESULT: IMPLEMENTED | <worktree_path> | <branch> | <base_branch>
OR:
RESULT: FAILURE | [one-line reason]
IMPORTANT:
- Do NOT run validation-loop or merge — the caller handles those
- Do NOT use AskUserQuestion for merge decisions
- Your LAST line of output MUST be the RESULT line
"
)
After the subagent returns, parse the result:
RESULT: IMPLEMENTED | <path> | <branch> | <base-branch> → Output:
RESULT: IMPLEMENTED | worktree_path=<path> | branch=<branch> | base_branch=<base-branch>
RESULT: FAILURE | ... → Output:
RESULT: FAILURE | <reason>
RESULT: FAILURE | Implementation subagent did not return a structured result. Check worktree status manually.
DO NOT proceed past this step. The caller handles validation, merge, and completion.