← the Atlas

The orchestrator repo — our agent setup, cloneable by anyone

Features·seedling·proposed·

Extract the non-kolu-specific AI skills from agents/ into a standalone repo named orchestrator: any kolu user clones it and gets our whole multi-agent setup — coordinator, dashboard, review gauntlet — driving their terminals through kolu mcp. Gated on kolu-cli PR2.

User-facing description

A kolu user runs one clone, opens one file, and has the setup this campaign runs on:

git clone https://github.com/srid/orchestrator ~/code/orchestrator
# open a kolu terminal in your project, load /orchestrator, dispatch your first lane
# open <orchestrator>/dashboard/index.html in the Code tab → the live board
any user's machine — the whole loop, five minutes after cloning the human rules on forks · merges coordinator agent a kolu terminal running /orchestrator briefs · goals · gates · venue rulings dashboard in the Code tab ▸ live board lane agents one terminal + worktree each /be → gauntlet → CI → PR questions = files, never dialogs kolu mcp — the portable seam (kolu-cli PR2) terminals · urgency · screen.text · create/kill/sendInput(keys) · wait.outputSettled / wait.agentState kolu the product (installed, not the repo) padi + kaval daemons · canvas · Code tab · deep links kaval-tui / padi-tui = the CLI fallback when MCP is absent dispatch
The whole loop on a stranger's machine. The skills never touch kolu's repo — they drive kolu THE PRODUCT through the MCP seam, falling back to kaval-tui/padi-tui where MCP is absent.

Architecture-level changes

TODAY — tangled inside kolu AFTER — a repo anyone clones kolu repo agents/ (local path-dep) generic: orchestrator+dashboard · be be-review · lens/agent-debate · kolu perfection-review · a-f-p kolu-only: surface (mixed in) .apm/ (kolu's own) atlas · release · test · evidence · ci … nobody else can use the generic half orchestrator repo (new) orchestrator skill + dashboard · be · be-review lens/agent-debate · perfection-review · a-f-p kolu (agent-driving: MCP-first, CLI fallback) zero kolu-repo imports — talks to kolu THE PRODUCT kolu repo apm dep → orchestrator keeps: surface · atlas · … ANY user's repo clone / apm dep same setup as ours one source of truth; kolu is just the first consumer
The split. agents/ stops being a kolu-internal path-dependency; the generic half becomes the orchestrator repo, kolu becomes its first consumer, and the kolu-only surface skill moves home to kolu's own .apm.

Implementation details

One extraction PR per repo, in order:

  1. New repo srid/orchestrator: move the generic skills + dashboard verbatim (git history via subtree split if cheap, else fresh with a pointer); add its own apm.yml package manifest; CI = the skills’ own unit tests (the lens-debate engine tests, dashboard renderer parse) — no kolu checkout anywhere in its CI.
  2. kolu PR: apm.yml path-dep → git-dep; surface skill relocates to root .apm/; regenerate; the two-tree rule in apm-workflow.md collapses to one source tree + the dependency.
  3. De-kolu-ification pass (inside PR 1): sweep the moved skills for repo-paths/recipes; parameterize via the existing .agency/ overlay pattern; the orchestrator SKILL’s kolu-specific venue examples (rasam, sincereintent) move to kolu’s overlay.
  4. Pin: a smoke script in the orchestrator repo that runs the dashboard renderer against a sample orchestrator-data.js and lints every SKILL.md for kolu-repo path leaks (packages/, just atlas:: …) — the boundary stays unspellable-ish by CI.

Risks, named: apm’s vendored-from-git-checkout behavior means kolu picks up skill changes only at pin bumps (today’s uncommitted-edit trap becomes a cross-repo version lag — accepted, that’s what versioning is); the kolu skill’s MCP-first rewrite lands in the kolu-cli track’s “skills adopt” station, which becomes a PR in the orchestrator repo, not kolu.