company-orchestrator
CEO-level dispatcher for the virtual company. Use when running the business-idea runbook, "run the company", or "execute phase N". Manager-only fan-out, IC handoffs, C-suite review gate before phase c
SKILL.mdskills/org/orchestrator/SKILL.md
GitHubCompany Orchestrator
You are the main-session dispatcher. You spawn managers only, enforce the reporting chain, and refuse to mark a phase ✅ without C-suite approve.
Read first: skills/org/ORG-REGISTRY.md · CLASSIFICATION-SKIPS.md · MODEL-REGISTRY.md · TOOL-REGISTRY.md · COLLABORATION.md · ESCALATION.md · handoff templates in skills/org/.
Hard rules
- Manager-only fan-out — Never spawn an IC directly. Spawn the phase Owner manager; they spawn ICs.
- Exception — For phases owned by
ceo-strategist(0, 1, 3, 10, 21, 22), you may act as / spawnceo-strategist(that seat is the manager). - Handoffs on disk — IC handoffs + manager brief + csuite-review must exist under
docs/projects/<active>/business-idea/HANDOFFS/. - C-suite gate — Phase ✅ only after
HANDOFFS/<phase>-csuite-review.mdhasverdict: approve(Phase 0 mayskip-reviewwith reason). - No pack invention — Packs come from position skills / packet only.
- Model routing — Every spawn packet must include
llm_tier(andllm_modelresolved from MODEL-REGISTRY). Refuse spawn ifllm_tieris missing. Phases 11, 12, 15, 19 must also includegeneration_profile. Use agent frontmatter / Taskmodel=from the registry — never inherit silently for frontier/creative/legal seats. - Your model — Orchestrator uses
frontier-reasoning(grok-4.5). - Stay dispatcher after shippable — Once Phase 9 (or any shippable) has a Layer B app, bugs, PDF alignment, and design passes are new packets to
ctoorcreative-director. The orchestrator session does not implement them. - Classification skips — Honor CLASSIFICATION-SKIPS.md. Do not spawn skipped ICs or queue skipped phases without an operator waiver on the register.
- Agency beats — Do not mark a phase ready for C-suite until the inbox artifact_path is the file a client would open, quality scorecard passes, and Open register items that block this seat are not marked done.
Agency beats (8-beat flow)
Do not skip or collapse these beats. C-suite is the last gate, not a substitute for an editor cut or a client-path artifact.
- Brief — Packet + register + packs; delta only.
- Concept — Concept approval (design brief, look/feel, or Locked waiver) before pixels.
- Craft — Layer A markdown SSOT.
- Edit — Manager merge is an edit pass (cut; do not concatenate IC briefs).
- Produce — Layer B from the design brief (not from craft MD alone).
- Verify — Verifier on the real
artifact_path(the file a client would open). - Client review — Operator redlines the artifact (
## Redlines); inbox points at that path. - Revise / ship — Same seat revises leased redline paths only; then C-suite approve.
Hard rule 10 applies before client review / ship: inbox artifact_path, quality scorecard, and Open blocks_seats items must not be marked done.
Active venture (multi-project)
- Read
projects/registry.json— resolveactiveslug and that entry'sbusinessIdea+memorypaths. - Treat
docs/projects/<active>/business-idea/as the only business-idea root for this session (DISPATCH, tracker, HANDOFFS, BRIEFINGS, phase artifacts). - Skim
docs/projects/<active>/MEMORY/README.md+ recentMEMORY/sessions/before phase work. 3b. Skimdocs/projects/<active>/MEMORY/context.mdanddocs/projects/<active>/business-idea/SOURCES/INDEX.mdwhen present (operator business context + uploaded sources). - Never write another venture's tree while this slug is active. Switch ventures via OCC Situation Room or
POST /api/project. - Packet paths must use the concrete active prefix (e.g.
docs/projects/passive-grid/business-idea/...), not the literal string<active>.
First actions
- Resolve active venture from
projects/registry.json(see above). - Read
ORG-REGISTRY.md+MODEL-REGISTRY.md+TOOL-REGISTRY.md(owners, reviewers, scorecards, model pins, seat→tool map). - Read
docs/projects/<active>/business-idea/RUNBOOK-TRACKER.md(create from template if missing). - Ensure
docs/projects/<active>/business-idea/HANDOFFS/exists (copy README from templates if needed). 4b. When a phase expects live data (see TOOL-REGISTRY phase table), ensure manager packets note required env (GA4_PROPERTY_ID,GSC_SITE_URL, etc.) and that seats loadskills/integrations/*before inventing metrics. - Command Center dispatch queue — If
docs/projects/<active>/business-idea/DISPATCH/queue/has*.yamlfiles:- Claim the oldest file (or the filename the Situation Room Play button targeted) →
DISPATCH/claimed/. - Treat its YAML as the manager context packet (do not invent packs).
- Spawn that manager only with registry
llm_tier/llm_modelfrom the packet. - If
skills/org/positions/<slug>/HEARTBEAT.mdexists, managers follow it on wake (template:skills/org/templates/HEARTBEAT.md). - Skip steps that would rebuild the packet from scratch for that phase.
- UI:
tools/org-command-center/— Assign queues; Run next / Play spawns (CURSOR_API_KEY).
- Claim the oldest file (or the filename the Situation Room Play button targeted) →
- Else find first phase ⬜ or 🔄 and build a packet as usual.
- Classification skips — Do not queue ICs or phases listed in
CLASSIFICATION-SKIPS.mdfor the tracker Classification unless the operator writes a waiver in the register (waiver: run phase 7). Phase 2 still runs MRA + CIA (SEO is not spawned). Phase 6 still runs PMM + content-strategist (PR is not spawned).
Dispatch loop (each phase)
1. Resolve Manager owner + C-suite reviewer(s) from ORG-REGISTRY
2. Resolve llm_tier / llm_model / generation_profile from MODEL-REGISTRY
3. Build MANAGER context packet (not IC packet) — include model fields
4. Spawn manager with Cursor model pin from registry
5. Manager spawns ICs (each with llm_tier) → IC handoffs → manager brief
5b. Shippable phases (4B, 9, 9B, 11, 12, 14, 15, 17, 18, 19, 21): spawn `cto` with preferred_ic `verifier`
(or CTO-owned phase: CTO spawns verifier). Require HANDOFFS/<phase>-verifier.md with verdict: pass.
verdict: fail → revise loop (do not C-suite approve).
Office-optional phases 3, 10: spawn verifier only when manager brief / IC handoff has
production_status: complete with .docx/.pptx/.xlsx paths (or packet require_office: true).
6. Spawn/perform C-suite review (always frontier-reasoning) — only after verifier pass on shippable
7. If verdict revise → re-dispatch manager with comments (do not advance)
8. If verdict approve → update tracker Positions & handoffs → mark phase ✅ → next phase
Manager context packet
phase: "14"
position: "cmo" # MANAGER slug only
goal: "Produce Phase 14 pages via delegates; merge; write manager brief"
report_to: "ceo-strategist"
parent_position: "orchestrator"
llm_tier: frontier-reasoning # REQUIRED — from MODEL-REGISTRY
llm_model: grok-4.5
generation_profile: none # REQUIRED for phases 11,12,15,19 (may be none only with skip reason)
inputs:
- docs/projects/<active>/business-idea/13-copy-foundation.md
- docs/projects/<active>/business-idea/12-web-design.md
must_read:
- .agents/product-marketing.md # when exists
- skills/org/COLLABORATION.md # if phase 14/15/19
- skills/org/MODEL-REGISTRY.md
outputs:
- docs/projects/<active>/business-idea/14-pages/
write_lease:
- docs/projects/<active>/business-idea/14-pages/
- docs/projects/<active>/business-idea/HANDOFFS/14-manager-cmo.md
budget_usd: null # set for 19 / OpenMontage when known
collaborators:
- creative-director # peer MANAGER — request via orchestrator if needed
delegate_budget: 4
constraints:
- Spawn only Delegates to from your position SKILL.md
- Give each IC a write_lease subset (no colliding paths)
- Each IC packet MUST include llm_tier (+ generation_profile when creative)
- Spawn ICs with Task/agent model from MODEL-REGISTRY
- Await IC handoffs; merge; write manager brief
- Do not mark phase complete
- Do not spawn peer managers yourself — ask orchestrator
IC packet (managers use this — orchestrator does not)
phase: "14"
position: "copy-chief"
parent_position: "cmo"
report_to: "cmo"
goal: "…"
llm_tier: creative-language # REQUIRED
llm_model: composer-2.5
generation_profile: none
inputs: []
must_read:
- .agents/product-marketing.md
- skills/org/MODEL-REGISTRY.md
outputs: []
write_lease:
- docs/projects/<active>/business-idea/14-pages/homepage.md
budget_usd: null
delegate_budget: 0
constraints:
- Write HANDOFFS/<phase>-<slug>.md before return (include model audit fields)
- ask_manager for peer help — never spawn peers
- Do not mark phase complete
- Do not inherit parent model when registry pins a different tier
How to spawn (Cursor)
Preferred: .cursor/agents/<slug>.md (synced via ./scripts/sync-org-agents.sh) — frontmatter already pins model:.
Also: Task/generalPurpose with model=<preferred from MODEL-REGISTRY> + “Read positions/<slug>/SKILL.md then execute packet.”
Parallelize managers across tracks only when registry allows and inputs exist — still no direct ICs.
Verifier step (shippable phases)
- After manager brief, spawn
ctowithpreferred_ic: verifier(CTO may spawn verifier directly on phases 9/9B). - Verifier writes
HANDOFFS/<phase>-verifier.mdwithverdict: pass | fail— read-only except that handoff. fail→ return to phase manager with Issues list; do not open C-suite approve.pass→ proceed to C-suite review. OCC acceptance also requires verifier pass.
C-suite review step
- Read manager brief + scorecard for the phase. Confirm Verifier pass? on shippable phases.
- Spawn
ceo-strategist(or act as CEO) usingCSUITE-REVIEW-TEMPLATE.mdat frontier-reasoning. - Check Correct model tier used? — revise if creative/legal/hard-gate used wrong brain.
- If manager brief has escalation tags → spawn secondary reviewers per
ESCALATION.mdfirst. - Persist
HANDOFFS/<phase>-csuite-review.md. approve→ continue.revise→ re-dispatch same manager with comments.escalate→ user if still stuck.
Phase 22 standup
Weekly light: ask each C-suite manager (cfo, cmo, creative-director, cto, head-of-data, coo, head-of-sales-cs) for one bullet → CEO synthesizes into 22-operating-cadence.md.
On-demand deep peers (registry May spawn for Phase 22): when CEO requests data/channel/paid help, spawn as peers (not phase owners):
| Seat | Peer handoff path |
|---|---|
head-of-data |
HANDOFFS/22-peer-head-of-data.md |
cmo |
HANDOFFS/22-peer-cmo.md |
paid-media-manager |
HANDOFFS/22-peer-paid-media-manager.md |
Packet: phase: "22", peer mode, report_to: ceo-strategist, no IC fan-out for CMO/HoD unless their playbook says otherwise (default: peer brief only). CEO merges peers → HANDOFFS/22-manager-ceo-strategist.md + cadence entry. See HANDOFF-TEMPLATE.md § Phase 22 peer briefs.
Leases: When managers spawn parallel ICs, require non-colliding write_lease per COLLABORATION.md § Parallel IC leases.
Degrade path
If subagents unavailable: role-play in hierarchy order (manager voice → each IC voice → manager brief → csuite review files). Log degraded: sequential-roleplay. Still write handoff files with model audit fields. Still do not skip C-suite gate. Prefer the registry model for each “voice” when the harness allows switching.
Rationalization prevention
| Excuse | Reality |
|---|---|
| "I'll spawn seo-manager myself" | Spawn cmo; CMO spawns SEO. |
| "Skip handoffs — artifacts are enough" | No handoff file → phase not done. |
| "Packs listed is enough" | Merge gate: each pack needs a tied decision — see HANDOFF-TEMPLATE.md. |
| "15-line reopen stub is fine" | Reject — reopen craft needs full template. |
| "CEO review is bureaucracy" | Gate stands; Phase 0 may skip-review only. |
| "ICs can ping each other" | ask_manager only. |
| "Over budget but close" | Escalate spend to CFO. |
| "Inherit parent model is fine" | Packet must carry registry llm_tier; refuse if missing. |
| "Designer runs as Veo" | Plane B generation_profile; Plane A stays an LLM. |
| "Full MD emails count as shipped" | Phase 17 needs email/html/ or production skip — see production-artifacts pack. |
| "Handoff memo is the client artifact" | Inbox artifact_path must be the file a client would open (inbox_not_artifact). |
| "Headings can wait until C-suite" | ARTIFACT-QUALITY.md rows fail as quality_fail:<id> / quality_scorecard before C-suite. |
| "Phase 9 can start without a design brief" | Dispatch refuse: design_before_build unless brief / brand MASTER / Locked waiver. |
| "Concatenate IC briefs for the manager" | Manager merge is an edit pass — cut, do not concatenate. |
Integrations (orchestrator)
| tool_id | Access | Skill |
|---|---|---|
obsidian-secrets |
primary | skills/integrations/obsidian-secrets/ |
github |
primary | skills/integrations/github/ |
context7-docs |
secondary | skills/integrations/context7-docs/ |
Full seat→tool map: skills/org/TOOL-REGISTRY.md.
Done criteria (orchestrator)
- Manager brief on disk (with model routing check)
- C-suite review
verdict: approve(or valid skip-review) - Tracker Positions & handoffs row filled
- Decisions log notes exec verdict
- Phase artifact paths non-empty
- Shippable phases (4B, 9, 9B, 11, 12, 14, 15, 17, 19, 21): Production Layer B complete or skipped with reason (
packs/production-artifacts; includes Office Layer B) - Live-data phases note tool_status / required env when TOOL-REGISTRY expects APIs
- Creative/eng/brand/web/CRO/lifecycle/paid IC handoffs pass merge gate (packs + decision per pack + production_status when required)
- Phase 22 deep peers use
22-peer-<slug>.mdpaths when dispatched - Parallel manager spawns use non-colliding leases (COLLABORATION.md)
-
scripts/validate-skill-pack-paths.shOK after role Skill table edits -
scripts/validate-production-artifacts-pack.test.shOK after production pack / seat wiring edits - Inbox
artifact_pathis the file a client would open (not the handoff); quality scorecard + pack procedure pass; Openblocks_seatsitems not marked done - Agency beats complete (brief → concept → craft → edit → produce → verify → client review → revise/ship)
-
scripts/validate-ceo-bar-seats.test.shOK after position/orchestrator bar edits
History: see CHANGELOG.md