From harmony-plugin
Use when the user wants to start working on a task, feature, or bug fix. Triggers on phrases like "work on", "start", "pick up", "implement", "fix", or any mention of a Harmony task ID (e.g., B-123). Also use when the user says "let's do X" or describes work they want to begin. This is the entry point for ALL new development work in this project.
npx claudepluginhub ycomplex/harmony-plugin --plugin harmony-pluginThis skill uses the workspace's default tool permissions.
Set up everything needed to begin a piece of work: find or create the Harmony task, move it to In Progress, create an isolated worktree, and recommend an execution route (Execute, Plan, or Explore) based on task complexity and uncertainty.
Verifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Guides root cause investigation for bugs, test failures, unexpected behavior, performance issues, and build failures before proposing fixes.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
Share bugs, ideas, or general feedback.
Set up everything needed to begin a piece of work: find or create the Harmony task, move it to In Progress, create an isolated worktree, and recommend an execution route (Execute, Plan, or Explore) based on task complexity and uncertainty.
digraph start_work {
"User message" [shape=doublecircle];
"Has task ID?" [shape=diamond];
"Has description?" [shape=diamond];
"Ask user for task ID or description" [shape=box];
"Fetch task from Harmony" [shape=box];
"Search backlog/todo for match" [shape=box];
"Found match?" [shape=diamond];
"Show match, ask user to confirm" [shape=box];
"Confirmed?" [shape=diamond];
"Update task with any new context" [shape=box];
"Create task in To Do" [shape=box];
"Task is already In Progress?" [shape=diamond];
"Ask user before proceeding" [shape=box];
"Move task to In Progress" [shape=box];
"Create worktree via using-git-worktrees" [shape=box];
"Assess signals & recommend route" [shape=box];
"User confirms or overrides" [shape=diamond];
"Execute" [shape=doublecircle];
"Plan" [shape=doublecircle];
"Explore" [shape=doublecircle];
"User message" -> "Has task ID?";
"Has task ID?" -> "Fetch task from Harmony" [label="yes"];
"Has task ID?" -> "Has description?" [label="no"];
"Has description?" -> "Search backlog/todo for match" [label="yes"];
"Has description?" -> "Ask user for task ID or description" [label="no"];
"Ask user for task ID or description" -> "Has task ID?";
"Search backlog/todo for match" -> "Found match?";
"Found match?" -> "Show match, ask user to confirm" [label="yes"];
"Found match?" -> "Create task in To Do" [label="no"];
"Show match, ask user to confirm" -> "Confirmed?";
"Confirmed?" -> "Update task with any new context" [label="yes"];
"Confirmed?" -> "Create task in To Do" [label="no"];
"Update task with any new context" -> "Task is already In Progress?";
"Create task in To Do" -> "Task is already In Progress?";
"Fetch task from Harmony" -> "Task is already In Progress?";
"Task is already In Progress?" -> "Ask user before proceeding" [label="yes"];
"Task is already In Progress?" -> "Move task to In Progress" [label="no"];
"Ask user before proceeding" -> "Move task to In Progress" [label="user says go ahead"];
"Move task to In Progress" -> "Create worktree via using-git-worktrees";
"Create worktree via using-git-worktrees" -> "Assess signals & recommend route";
"Assess signals & recommend route" -> "User confirms or overrides";
"User confirms or overrides" -> "Execute" [label="execute"];
"User confirms or overrides" -> "Plan" [label="plan"];
"User confirms or overrides" -> "Explore" [label="explore"];
}
If the user provided a Harmony task ID (e.g., B-123):
mcp__harmony__get_task to understand what needs to be done.If the user described what they want but didn't give a task ID:
mcp__harmony__list_tasks to search the backlog and "To Do" statuses for a matching task.mcp__harmony__update_task.mcp__harmony__create_task with the information the user provided.If the user provided neither:
mcp__harmony__update_task.This happens BEFORE creating a worktree or branch.
Invoke the superpowers:using-git-worktrees skill to create an isolated workspace:
.worktrees/ directory (it already exists and is gitignored).feat/bulk-label-action for a feature, fix/login-redirect for a bug).After the worktree is created:
.harmony-task.json in the worktree root. This file is gitignored and allows finish-work (and other steps) to reliably find the task without relying on conversation context.{
"task_id": "uuid-here",
"task_number": 123,
"visual_id": "B-123",
"title": "Task title from Harmony",
"branch": "feat/branch-name"
}
mcp__harmony__add_comment(task_id, "Started work on branch `feat/branch-name`")
After the worktree is ready, assess the task and recommend one of three routes. Use these signals (not a scoring system — just a judgment call):
Signals that lean toward Execute:
Signals that lean toward Plan:
Signals that lean toward Explore:
Present the recommendation concisely:
Ready to work on B-123: "Add bulk export to CSV"
I'd recommend **Plan** — the task is clear but touches the list view,
a new utility, and a download trigger.
→ [1] Execute — just do it
→ [2] Plan — outline steps, then execute
→ [3] Explore — brainstorm the approach first
Which route? (default: 2)
The user can reply with a number, a word, or just confirm the default.
After fetching the task, check for acceptance criteria:
get_task returns acceptance criteria items, display them as part of the execution context:
This task has N acceptance criteria to address:
- [ ] criterion 1
- [ ] criterion 2
manage_acceptance_criteria as you address themmanage_test_cases before creating a PRExecute: Start implementing immediately. Do the work, write tests, commit, and create a PR ready for the user to review.
Plan: Enter plan mode. Write a structured outline of the approach — what files change, in what order, what the key decisions are. Wait for the user to approve or adjust, then execute the plan.
Explore: Invoke the superpowers:brainstorming skill. Follow its full flow (clarifying questions → approach options → design → spec). The brainstorming skill will naturally transition to planning and then implementation when the design is approved.
This is the authoritative reference for Harmony task status transitions. Follow this automatically throughout the development workflow — don't wait to be asked.
| Event | Status transition | Annotation |
|---|---|---|
| Starting work (this skill) | → In Progress | Comment: branch name |
| Creating a PR | → In Review | Comment: PR URL |
| PR merged (finish-work skill) | → Done | Comment: merge confirmation |
Whenever you push a branch and create a pull request (whether during Execute, after a Plan, or at any other point), you MUST:
.harmony-task.json in the worktree rootmcp__harmony__update_taskmcp__harmony__add_comment:mcp__harmony__add_comment(task_id, "PR created: <url>")
This applies regardless of which execution route was chosen. The task should be a living record of what happened.