From symphony
Launch the claude-symphony autonomous bug-fixing workflow scoped to any Linear team/project backed by GitHub. Ensures Linear login (triggers OAuth if needed), lets the user pick the team/project, confirms the target repo(s), then runs the workflow. Invoked as "/symphony:symphony" (plugin skills are namespaced), or triggered by "run symphony", "fix bugs in <project>", "arreglar bugs de <project>".
How this skill is triggered — by the user, by Claude, or both
Slash command
/symphony:symphonyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is the interactive front door to the `claude-symphony` workflow, which
This skill is the interactive front door to the claude-symphony workflow, which
ships alongside this skill in the same plugin at
$CLAUDE_PLUGIN_ROOT/workflows/claude-symphony.js. The workflow itself is
project-agnostic — team, project, repos, and the Linear state names are all
args. This launcher handles the parts a headless workflow can't: Linear login,
choosing the project, and confirming which GitHub repo to fix bugs in.
Follow these steps in order. Do NOT skip the login check.
Try a lightweight Linear call: mcp__linear-server__list_teams (load it via
ToolSearch first if needed).
mcp__linear-server__authenticate, give the user the returned authorize
URL, and ask them to complete the OAuth in the browser. If the redirect page
errors, have them paste the full callback URL and call
mcp__linear-server__complete_authentication with it. Re-check with
list_teams before continuing.list_teams. If there's exactly one, use it. If several, ask the user
which one (AskUserQuestion).mcp__linear-server__list_projects for the team.project (name or id). "Whole team" → omit project.The engine defaults to single-repo mode: it fixes bugs in the GitHub repository of the current working directory and auto-detects the slug + default branch.
repos arg needed.{ repo:"owner/name", base:"main", tests:"<test command, or omit to auto-detect>" }.{ repos: { "dir-a": {repo:"owner/a", base:"main", tests:"auto"}, ... } }.Confirm gh is authenticated (gh auth status) — the fix path needs it to push and
open PRs.
Confirm with the user, briefly:
{issue:"ABC-123"}, explicit {issues:[...]}, or batch
{batch:true, limit:N} (+ optional labels / states).Invoke the workflow with the resolved args. Use the plugin-relative path so it works
after install (the plugin is copied to a cache dir; $CLAUDE_PLUGIN_ROOT resolves to
the installed plugin directory):
Workflow({ scriptPath: "$CLAUDE_PLUGIN_ROOT/workflows/claude-symphony.js", args: { team, project, batch:true, limit:5, tag:"<HH:MM>" } })
If $CLAUDE_PLUGIN_ROOT is not set (e.g. you're running the skill from a raw source
checkout rather than an installed plugin), fall back to the workflow's path relative
to this skill: ../../workflows/claude-symphony.js.
Use scriptPath (not name) so the latest engine edits are picked up in-session.
Then report the result; if the user wants a continuous sweep, drive it with /loop.
{batch:true} and a team.In Progress (claim), In Review (handoff), Needs Human
(failed/triage), Done (promote merged PRs). Create any that are missing, or
remap them with {claimState, reviewState, needsHumanState, mergedState}.cannot-reproduce / false-positive / already-fixed) and the
Bug label should exist in the target team for routing/labelling to work.Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub gmilano/symphony-marketplace --plugin symphony