Goal
Make the Orcastrator a real orchestration system with two director backends: the current LLM director and a token-free recipe director, both feeding one live Control Panel that renders the actual task DAG.
⚠️ Corrected architecture (after adversarial review — see comment below)
The original plan rested on a false premise: "recipe mode reuses the existing coordinator, mostly free." It does not. There are two unrelated systems sharing a name:
- LLM director path (ships today): pastes
/orcastrate → Claude runs orca worktree create per PR-track. Pure worktree lineage. Never calls the coordinator. Mission Control discovers workers by lineage only.
- Coordinator/DAG path: dispatches tasks to terminals inside one worktree, never creates worktrees, and nothing in the Orcastrator UI reads its DB.
So "token-free recipes" + "Control Panel renders the DAG" both require bridging these worlds — the chosen "full bridge" path. Also dropped: the token-free pitch as primary rationale (the director is ~2–8% of run cost; workers dominate). Recipes are justified by determinism/reliability, not cost.
Feasibility (verified, file:line)
All additive or targeted — nothing blocked:
addWorktree exists in main (src/main/git/worktree.ts:613); OrcaRuntimeService backs CoordinatorRuntime.
OrchestrationDb singleton (orca-runtime.ts:2448), WAL — per-run isolation feasible.
- No resume-on-boot hook; no renderer→
orchestration.run binding (both confirmed gaps, both additive).
Work breakdown (dependency-ordered)
Foundation
Observability (Control Panel, now DAG-backed)
Recipe
Sequencing principle
Foundation → observability → recipe → abstraction. F1 (#12) ships first and standalone — it's a real bug fix with value regardless of whether recipes ever land. Validate each layer before building the next.
Workflow
All work on the fork (zaridan/orca), pushed + tested here before anything goes upstream to stablyai/orca. Behind experimentalOrchestrators. Align the bridge design with upstream before investing the full build.
Goal
Make the Orcastrator a real orchestration system with two director backends: the current LLM director and a token-free recipe director, both feeding one live Control Panel that renders the actual task DAG.
The original plan rested on a false premise: "recipe mode reuses the existing coordinator, mostly free." It does not. There are two unrelated systems sharing a name:
/orcastrate→ Claude runsorca worktree createper PR-track. Pure worktree lineage. Never calls the coordinator. Mission Control discovers workers by lineage only.So "token-free recipes" + "Control Panel renders the DAG" both require bridging these worlds — the chosen "full bridge" path. Also dropped: the token-free pitch as primary rationale (the director is ~2–8% of run cost; workers dominate). Recipes are justified by determinism/reliability, not cost.
Feasibility (verified, file:line)
All additive or targeted — nothing blocked:
addWorktreeexists in main (src/main/git/worktree.ts:613);OrcaRuntimeServicebacksCoordinatorRuntime.OrchestrationDbsingleton (orca-runtime.ts:2448), WAL — per-run isolation feasible.orchestration.runbinding (both confirmed gaps, both additive).Work breakdown (dependency-ordered)
Foundation
orchestration.run/taskCreatebinding.Observability (Control Panel, now DAG-backed)
Recipe
RecipeDirectorBackend— worktree shell, no LLM, compile recipe → tasks → run (depends F1–F4). Now genuinely token-free.DirectorBackendabstraction + director-type picker UI (LAST — only after recipe mode proves out).Sequencing principle
Foundation → observability → recipe → abstraction. F1 (#12) ships first and standalone — it's a real bug fix with value regardless of whether recipes ever land. Validate each layer before building the next.
Workflow
All work on the fork (
zaridan/orca), pushed + tested here before anything goes upstream tostablyai/orca. BehindexperimentalOrchestrators. Align the bridge design with upstream before investing the full build.