From taskmaster
Select a task to work on. Invoke when the user says 'pick a task', 'let's work on X', 'start task auth-003', 'what should I tackle next', or names a specific task ID. Sets status to in-progress, checks dependencies, creates a git worktree for isolation, and loads task context.
How this skill is triggered — by the user, by Claude, or both
Slash command
/taskmaster:pick-taskThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Select a task to work on and set it to in-progress.
Select a task to work on and set it to in-progress.
task_id (optional) — specific task ID (e.g., auth-003). If omitted, presents top priorities to choose from.If no task ID provided:
backlog_next_available to get tasks ready to work on. When a phase is active, this only returns tasks from that phase — keeping you focused on the current block of work./advance-phase), or suggest adding work.Check for parallel task overload:
backlog_status to see current in-progress count.Dependency check (if task ID is known):
backlog_dependencies(task_id) to check upstream dependencies.{dep_id} which is still {status}. Proceed anyway?"Show anchors (if present):
anchors, display them prominently:
"This task is anchored to src/auth/**. Expected at localhost:3000/api/auth."Once a task is selected:
backlog_pick_task(task_id) — this sets status to in-progress, records started date, locks to session, and regenerates context + dashboard.Read linked docs:
docs field (plan, spec, etc.), read those files to understand the existing context before writing any code.Git worktree creation (REQUIRED):
Why worktrees? When multiple tasks are in-flight, work on different branches can bleed together if everything happens in the same working tree. A dedicated worktree per task means you can switch tasks instantly, the review gate can diff the correct branch cleanly, and there's no risk of committing task B's changes onto task A's branch. This is the foundation of safe parallel task work.
backlog_pick_task response includes worktree instructions. Follow them..git file. If not, the worktree is orphaned — delete the stale reference with git worktree prune and recreate.Creating a worktree:
sub_repo field, use that directory. Otherwise use the project root.git worktree add .worktrees/{task-id} -b feature/{task-id} (run from the repo root)backlog_update_task(task_id, "branch", "feature/{task-id}") to record the branch.backlog_update_task(task_id, "worktree", ".worktrees/{task-id}") to record the worktree path.Submodules: A PostToolUse hook (worktree-submodule-init.sh) automatically initializes submodules and fetches from the main checkout after git worktree add. You don't need to do this manually. However, before removing the worktree or merging, you MUST fetch submodule commits back to the main checkout:
git -C <main-checkout>/<submodule> fetch <worktree>/<submodule>
The hook will remind you of this. If there are no submodules, nothing happens.
If git worktree add fails:
git worktree add .worktrees/{task-id} feature/{task-id} without -b), or ask the user if they want to delete the stale branch and start fresh.See references/task-lifecycle.md for the full state machine and transition rules. The key flow:
todo → in-progress → in-review → done → archived
If backlog_pick_task returns a lock conflict (task locked by another session), the previous session likely ended without releasing the lock. Do not manually edit backlog.yaml or use backlog_update_task to change locked_by — instead:
backlog_pick_task(task_id, force=true) — this reclaims the lock in a single atomic call..git file present). If orphaned, prune and recreate.backlog_pick_task is idempotent for already in-progress tasks in the same session.in-review, picking it moves it back to in-progress — confirm this demotion with the user first, as it means they found issues during testing and want to reopen the work.blocked, the tool will reject it. Help the user resolve blockers or change status first.npx claudepluginhub gruku/claude-tools --plugin taskmasterOrchestrates backlog task selection through isolated implementation, review, documentation, verification, and publish gates. Use when asking for the next task or backlog work.
Selects and implements the next task or session from a task list. Use when continuing work, picking the next task, or implementing tasks in priority order.