Gabriel Koerich Orchestrator

All runtime configuration lives in ~/.orchestrator/config.yml.

Config Reference

SectionKeyDescriptionDefault
top-levelproject_dirOverride project directory (auto-detected from CWD)""
workflowauto_closeAuto-close GitHub issues when tasks are donetrue
workflowreview_ownerGitHub handle to tag when review is needed@owner
workflowenable_review_agentRun a review agent after task completionfalse
workflowreview_agentFallback reviewer when opposite agent unavailableclaude
workflowmax_attemptsMax attempts before marking task as blocked10
workflowstuck_timeoutTimeout (seconds) for detecting stuck in_progress tasks1800
workflowrequired_skillsSkills always injected into agent prompts (marked [REQUIRED])[]
workflowdisallowed_toolsTool patterns blocked via --disallowedTools["Bash(rm *)","Bash(rm -*)"]
routeragentDefault router executorclaude
routermodelRouter model namehaiku
routertimeout_secondsRouter timeout (0 disables timeout)120
routerdisabled_agentsAgents to exclude from routing (e.g. [opencode])[]
routerfallback_executorFallback executor when router failscodex
routerallowed_toolsDefault tool allowlist used in routing prompts[yq, jq, bash, ...]
routerdefault_skillsSkills always included in routing[gh, git-worktree]
llminput_formatCLI input format override""
llmoutput_formatCLI output format override"json"
ghenabledEnable GitHub synctrue
ghrepoDefault repo (owner/repo)"owner/repo"
ghsync_labelOnly sync tasks/issues with this label (empty = all)"sync"
ghproject_idGitHub Project v2 ID""
ghproject_status_field_idStatus field ID in Project v2""
ghproject_status_mapMapping for backlog/in_progress/review/done option IDs{}
gh.backoffmodeRate-limit behavior: wait or skip"wait"
gh.backoffbase_secondsInitial backoff duration in seconds30
gh.backoffmax_secondsMax backoff duration in seconds900
model_mapsimple/medium/complexAgent-specific model names per complexity level{}

Per-Project Config

Drop a .orchestrator.yml in your project root to override global config:

# ~/projects/my-app/.orchestrator.yml
gh:
  repo: "myorg/my-app"
  project_id: "PVT_..."
workflow:
  enable_review_agent: true
  required_skills:
    - gh-issue-worktree
router:
  fallback_executor: "claude"
  • Project config is deep-merged with global config (project wins)
  • The server restarts automatically when .orchestrator.yml changes
  • gh_project_apply.sh writes to global config, not the project overlay

Skills

Skills extend agent capabilities with specialized knowledge:

# ~/.orchestrator/skills.yml
repositories:
  - url: "https://github.com/user/skills-repo"
    commit: "abc123"
catalog:
  - id: "solana-best-practices"
    name: "Solana Best Practices"
    description: "Reviews Solana/Anchor programs for development best practices"
orch skills sync    # clone/update skill repositories
orch skills list    # show available skills

Skills listed in workflow.required_skills are always injected into agent prompts. Other skills are selected per-task by the router.