Install
$ agentstack add skill-jvogan-symphony-claude-lane-symphony-claude-lane ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ● Shell / process execution Used
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Symphony + Claude Lane
Use this skill when a team has Symphony + Linear and wants a durable long-horizon multi-agent harness — routing work to Claude Code or Codex based on what the task actually needs, not just a static label.
This skill also works for teams that want to run Claude-only workers without Codex.
Prerequisites
- The target repo already uses Symphony + Linear, or is clearly intended to.
- The target repo has a place for durable orchestration guidance such as
AGENTS.mdor.orchestration/. - At least one of Claude Code or Codex can be run as a worker against the repo.
- Browser verification can be done with Playwright or an equivalent automation path (recommended but not required).
- GitHub-only mode (no Linear/Symphony) is supported. An adopter with only Claude Code/Codex + an authenticated
ghCLI and a GitHub repo where they can createrelease:*labels can run the worker→release-manager flow without a tracker. Read../../docs/github-only-quickstart.mdand skip the Linear-specific steps below (PR +release:*labels are the control plane).
If those conditions are not true, explain the gap and stop or redirect to a more appropriate setup skill — except when the only missing piece is Linear/Symphony: in that case offer GitHub-only mode (../../docs/github-only-quickstart.md) instead of stopping.
Required workflow
- Inspect the target repo, existing
AGENTS.md, workflow docs, and issue contract. - Confirm the repo is a real candidate for multi-model dispatch, not just a generic coding repo.
- Confirm the base Symphony workflow already has workspace bootstrap assertions, a no-progress stop-loss, and a stable issue contract before adding model routing.
- Analyze the repo's work patterns to recommend a routing strategy. Consider what types of tasks appear in the backlog: bounded implementation, UI/frontend, complex reasoning, browser-dependent verification, code review, documentation, security-sensitive changes, E2E testing.
- Ask the user about their routing and backend preferences: should the orchestrator analyze task characteristics automatically, or use label-only routing? Which agent capabilities matter most for this repo? Is this a mixed-model or Claude-only setup? Should Claude workers use the default tmux-backed interactive backend, or does the adopter intentionally prefer a headless
claude -p/ API-priced backend? - Create or update a repo-local routing profile from
assets/claude-lane-profile.example.yaml, including routing strategy, model selection criteria, privacy rules, and cleanup or retention rules for that adopter's actual storage hotspots. - Prefer same-project label-filtered routing when labels are used. Recommend a separate queue or Linear project only when the adopter needs stronger operational separation.
- Add routing and dispatch guidance to the target repo's orchestration docs. Use
assets/claude-lane-guidance.snippet.mdas a starting point. Do not hardcode repo specifics back into this shared skill. - Help the adopter set up Claude worker launch capability. Use
references/worker-launch.mdfor the secure tmux launch pattern andassets/claude-worker.reference.shas a starting point for the launcher script. If the adopter prefers API pricing or a fully headless subprocess, read../../docs/backend-options.mdand adapt deliberately rather than mixing semantics. Useassets/worker-prompt.template.mdas the basis for worker prompts. Adapt all paths, auth, and MCP config to the adopter's environment. - If workers will receive "deploy" instructions or many PRs may finish concurrently, add a separate release-manager lane using
../../docs/release-manager-lane.md: workers mark PRsrelease:readyand stop; one release manager owns queue/merge/deploy/Done closeout. - For tickets that affect rendered output, default to Playwright-based verification before closeout.
- Define closeout, retry,
In Review, release-manager, and cleanup behavior as part of the routing contract, including how worktrees, snapshots, and other heavy local artifacts are removed safely.
Safety defaults
- Route based on task characteristics by default. Use labels as overrides, not as the sole routing mechanism.
- When task characteristics are ambiguous and no label override exists, prefer the safer choice: Codex for bounded sandbox-compatible work, Claude for anything requiring tools, browser access, or deep reasoning.
- Keep ambiguous tickets in the more conservative path until the repo proves the routing is stable.
- Persist user routing choices into the repo-local profile, not only in chat.
- Inherit the base workflow guardrails instead of treating any model's lane as exempt from them.
- Require an explicit Claude route before launching a full-access Claude worker. Labels, project filters, or assignee filters are acceptable portable guards.
- Launch Claude workers with an allowlisted environment rather than inheriting the full operator shell.
- Treat the backend as an explicit design choice. Tmux is the default for attachable long-horizon workers;
claude -pis acceptable only when the adopter intentionally wants API-priced headless execution and preserves the same routing, prompt, outcome, closeout, and cleanup contracts. - Prefer operator-reviewed closeout unless the adopter already has a safe self-close path.
- Keep merge-to-main and production deploys in a single-owner release-manager lane. Workers may prepare PRs and add
release:ready, but should not merge, rebase, push tomain, trigger production, or move issues toDoneunless the adopter has explicitly chosen a direct-Done flow. - Render the intended closeout state into the worker prompt so issue text cannot choose
DoneversusIn Review. - Verify tracker state after worker success when self-close or worker-driven closeout is allowed. Surface
closeout_verified=falseorcheck_failedas warnings. - Support current
symphony-outcomecomments and legacysymphony:outcome verdict=passcomments during migration, but never auto-promote current failed or blocked outcomes. - If issue state cannot be confirmed during closeout or cleanup, preserve artifacts and stop rather than guessing.
- Do not assume every adopter's storage pressure looks the same; document repo-specific cleanup hotspots in the repo-local profile.
- Do not put secrets, credentials, tokens, session cookies, personal data, or raw customer payloads into issues, comments, screenshots, traces, or other artifacts.
- Do not launch paid cloud resources from worker tickets unless the issue explicitly authorizes budget, time limit, cleanup, validation, and expected artifacts.
Reference map
- Read
references/setup.mdfirst when deciding whether the target repo is ready. - Read
references/routing.mdbefore analyzing work patterns or asking the user about routing preferences. - Read
references/dispatch.mdwhen defining queue split, model selection, and worker lifecycle. - Read
references/worker-launch.mdwhen helping the adopter set up the Claude worker launcher, MCP config, or security practices. - Read
../../docs/backend-options.mdwhen the adopter asks about tmux versusclaude -p, API pricing, or a hybrid backend. - Read
../../docs/release-manager-lane.mdwhen the adopter asks about autonomous deploys, high-volume PR merging, "deploy" commands, merge queues, or avoiding parallel workers fighting overmain. - Read
../../docs/goal-layer.mdwhen the adopter wants autonomous progress toward a long-horizon goal (not just a fixed backlog) — a durable goal in a Linear project + ephemeral planner passes that mint each next wave of work and stop on acceptance/budget. It sits ABOVE the release lane; the/goalcommand bootstraps it andbin/goal-managerowns the durable state + termination guards. - Read
../../docs/github-only-quickstart.mdwhen the adopter has only Claude Code/Codex + GitHub and no Linear/Symphony — the worker→release-manager flow runs in--no-linearmode with PR +release:*labels as the control plane. - Read
references/visual-verification.mdbefore writing browser-verification policy. - Read
references/closeout.mdwhen definingIn Review, outcome blocks, retry behavior, or self-close rules. - Read
references/troubleshooting.mdwhen a worker stalls, exhausts turns, or drifts from the routing contract. - Read
references/examples.mdwhen you need concrete ticket-routing examples or model selection patterns.
Output expectations
When this skill is applied well, the target repo should end up with:
- a working Claude worker launch setup (launcher script, MCP config, prompt template)
- a durable routing profile with model selection criteria
- clear routing rules — task-characteristic analysis, label overrides, or both
- explicit Claude backend selection — tmux by default,
claude -pby deliberate adaptation, or a hybrid split - an explicit release-manager contract when workers can prepare deployable PRs: workers add
release:ready; one release manager serializesmain, waits for merge/deploy evidence when configured, and posts tracker closeout - explicit privacy and redaction rules for all worker artifacts
- repo-local orchestration guidance describing what each model handles and why
- a Playwright-first visual verification rule for tickets that affect rendered output
- inherited base-workflow guardrails called out explicitly
- explicit closeout and retry behavior for all workers regardless of model
- a documented fallback for control-plane outages or missing tracker state
- a cleanup and retention policy that covers worktrees, snapshots, and repo-specific storage hotspots
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jvogan
- Source: jvogan/symphony-claude-lane
- License: MIT
- Homepage: https://github.com/jvogan/symphony-claude-lane
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.