Today the role library has no dedicated orchestrator — roles/planner.md claimed "the planner role IS the existing orchestrator class", and profiles/software-delivery.yaml (landed in #660) used lead: planner as a workaround.
The product owner wants a dedicated orchestrator for cleaner context separation:
orchestrator = always-on coordinator/dispatcher (runs the supervisor loop, assigns work, interfaces with the user, holds only lean coordination state).
planner = carries the heavy goal-decomposition context, dispatched to by the orchestrator.
Separate seats -> separate, focused context windows. This also aligns the library with the live runtime (the fleet's floor is already "orchestrator + enhancer") and the North Star floor (AC-NS-1 / ASM-3: "1 orchestrator + >=1 enhancer").
What changed
Newroles/orchestrator.md — dedicated class: orchestrator, persistent_persona: true. Mandate: run the supervisor tick, dispatch ready dependency-satisfied work, route PRs to the merge-gate, interface with the operator/user, hold only coordination state. Boundaries: does not decompose goals (planner's lane), write code, review, or merge itself; keeps its context lean.
Reconciledroles/planner.md — removed the "planner IS the orchestrator class" alias; reframed planner as the goal-decomposition seat that reports to / is dispatched by the orchestrator.
Updatedprofiles/software-delivery.yaml — lead: orchestrator, floor: [orchestrator, enhancer], added the orchestrator lead seat (no reports_to), planner now reports_to: orchestrator, and re-pointed the coordination seats (board, review, documentation, merge-gate, operator, session-review, enhancer) from planner to orchestrator. Planning/execution chain preserved (decomposition->planner, code->decomposition x2, security-review/site-tester->review, rebase->merge-gate). Header comment updated.
Updatedroles/LIBRARY.md — added orchestrator to the engineering group index.
Updatedfleet-profiles.spec.ts — the drift-guard test now asserts orchestrator resolves and that software-delivery's lead/floor/topology reflect the dedicated orchestrator.
## Why
Today the role library has no dedicated `orchestrator` — `roles/planner.md` claimed "the planner role IS the existing orchestrator class", and `profiles/software-delivery.yaml` (landed in #660) used `lead: planner` as a workaround.
The product owner wants a dedicated orchestrator for **cleaner context separation**:
- **orchestrator** = always-on coordinator/dispatcher (runs the supervisor loop, assigns work, interfaces with the user, holds only lean coordination state).
- **planner** = carries the heavy goal-decomposition context, dispatched to by the orchestrator.
Separate seats -> separate, focused context windows. This also aligns the library with the live runtime (the fleet's floor is already "orchestrator + enhancer") and the North Star floor (AC-NS-1 / ASM-3: "1 orchestrator + >=1 enhancer").
## What changed
- **New** `roles/orchestrator.md` — dedicated `class: orchestrator`, `persistent_persona: true`. Mandate: run the supervisor tick, dispatch ready dependency-satisfied work, route PRs to the merge-gate, interface with the operator/user, hold only coordination state. Boundaries: does not decompose goals (planner's lane), write code, review, or merge itself; keeps its context lean.
- **Reconciled** `roles/planner.md` — removed the "planner IS the orchestrator class" alias; reframed planner as the goal-decomposition seat that reports to / is dispatched by the orchestrator.
- **Updated** `profiles/software-delivery.yaml` — `lead: orchestrator`, `floor: [orchestrator, enhancer]`, added the `orchestrator` lead seat (no reports_to), `planner` now `reports_to: orchestrator`, and re-pointed the coordination seats (board, review, documentation, merge-gate, operator, session-review, enhancer) from `planner` to `orchestrator`. Planning/execution chain preserved (decomposition->planner, code->decomposition x2, security-review/site-tester->review, rebase->merge-gate). Header comment updated.
- **Updated** `roles/LIBRARY.md` — added `orchestrator` to the engineering group index.
- **Updated** `fleet-profiles.spec.ts` — the drift-guard test now asserts `orchestrator` resolves and that software-delivery's lead/floor/topology reflect the dedicated orchestrator.
## Gates (all green)
- turbo build (deps + mosaic): pass
- vitest: 585/585 pass (profile drift-guard green: orchestrator resolves, software-delivery valid)
- typecheck: pass
- lint: pass
- prettier --check: pass
- smoke (`fleet profile show software-delivery`): lead=orchestrator, floor=orchestrator, enhancer
Do NOT merge — reviewable only.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
Today the role library has no dedicated
orchestrator—roles/planner.mdclaimed "the planner role IS the existing orchestrator class", andprofiles/software-delivery.yaml(landed in #660) usedlead: planneras a workaround.The product owner wants a dedicated orchestrator for cleaner context separation:
Separate seats -> separate, focused context windows. This also aligns the library with the live runtime (the fleet's floor is already "orchestrator + enhancer") and the North Star floor (AC-NS-1 / ASM-3: "1 orchestrator + >=1 enhancer").
What changed
roles/orchestrator.md— dedicatedclass: orchestrator,persistent_persona: true. Mandate: run the supervisor tick, dispatch ready dependency-satisfied work, route PRs to the merge-gate, interface with the operator/user, hold only coordination state. Boundaries: does not decompose goals (planner's lane), write code, review, or merge itself; keeps its context lean.roles/planner.md— removed the "planner IS the orchestrator class" alias; reframed planner as the goal-decomposition seat that reports to / is dispatched by the orchestrator.profiles/software-delivery.yaml—lead: orchestrator,floor: [orchestrator, enhancer], added theorchestratorlead seat (no reports_to),plannernowreports_to: orchestrator, and re-pointed the coordination seats (board, review, documentation, merge-gate, operator, session-review, enhancer) fromplannertoorchestrator. Planning/execution chain preserved (decomposition->planner, code->decomposition x2, security-review/site-tester->review, rebase->merge-gate). Header comment updated.roles/LIBRARY.md— addedorchestratorto the engineering group index.fleet-profiles.spec.ts— the drift-guard test now assertsorchestratorresolves and that software-delivery's lead/floor/topology reflect the dedicated orchestrator.Gates (all green)
fleet profile show software-delivery): lead=orchestrator, floor=orchestrator, enhancerDo NOT merge — reviewable only.
🤖 Generated with Claude Code
c316312344to1edaf9b492