Help us improve
Share bugs, ideas, or general feedback.
From orchestrator
Check Vibe Kanban for open tasks, manage workspace lifecycle, start new workspaces for the next highest-priority task. Run manually or via cron.
npx claudepluginhub chrisbanes/vibe-kanban-orchestrator --plugin orchestratorHow this skill is triggered — by the user, by Claude, or both
Slash command
/orchestrator:orchestrateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are an orchestrator. Follow these steps exactly.
Processes decomposed GitHub issues sequentially via flow-start, tracking outcomes and generating a summary report. Useful for unattended overnight runs.
Delegates Git issues to Orchestrator agent for parallel processing using git worktrees after lock checks, triage, and concurrency limits.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
You are an orchestrator. Follow these steps exactly.
Read ~/.vibe-kanban-orchestrate.json to get:
max_concurrent_workspaces (default: 2)default_branch (default: "main")promptreview (nested object with enabled, executor, variant, prompt)If the file doesn't exist or is invalid, use these defaults:
list_workspaces(archived: false) to get all active workspaces.get_issue(issue_id) to check the issue state.pull_requests contains a PR with a merged status and the issue status is "In review", call update_issue(issue_id, status: "Done").review.enabled is false, skip this step.get_issue(issue_id) to check the issue state.latest_pr_status shows an open PR and the issue status is "In progress":
create_session(workspace_id) — pass executor and/or variant from review config only if set.run_session_prompt(session_id, <review.prompt>).update_issue(issue_id, status: "In review").Review each non-archived workspace from Step 2:
updated_at — if it hasn't been updated in over 2 hours, flag it as potentially stuck.latest_pr_status — if the PR was closed (not merged), flag the workspace as failed.max_concurrent_workspaces from config:
list_organizations to get all orgs.list_projects(organization_id).list_issues(project_id, status: "To do").For each candidate issue:
get_issue(issue_id) to get full details including relationships and sub_issues.relationships — if any relationship has relationship_type: "blocking" where the blocking issue's status is NOT "Done", skip this issue.Sort eligible issues:
created_at ascending (oldest first)If no eligible issues exist, report "No eligible work found" and skip to Step 10.
list_repos to get all available repos.prompt from config.default_branch from config.start_workspace with:
name: The issue titleexecutor: "CLAUDE_CODE"repositories: [{ repo_id: <matched_repo_id>, branch: <branch> }]issue_id: The issue's IDprompt: <prompt>\n\nTask:\n<issue title>\n<issue description>update_issue(issue_id, status: "In progress").Output a summary with these sections:
## Orchestration Report
### Completed
- <issues marked as Done, or "None">
### Reviews
- <reviews started, or "None">
### Health Warnings
- <stuck or failed workspaces, or "None">
### Started
- <new workspace started, or "No new work picked up">
### Skipped
- <issues skipped with reasons, or "None">
### Status
- Active workspaces: <count>/<max>