Skip to content

fleet_spawn cannot start a collaborative session — the conductor can only make single workers #281

Description

@saucam

Gap recorded in conductor-design.md §5.1 (landed in #275).

The gap

fleet_spawn creates one disposable worker. It already takes provider + model, so the conductor can deliberately put a task on Opus, Fable, or Codex — that part works.

What it cannot do is start a collaboration: a goal with role→backend bindings, a shared blackboard, and panels (collaboration.ts, shipped through #271#274). That is the natural target when the conductor decides a task should be fanned out rather than handed to a single worker, and there is no verb for it.

Today the owner has to create a collaborative session by hand, which breaks the premise that the conductor is the front door to getting work done.

Scope

  • A fleet_collaborate (name bikesheddable) verb: goal, role→backend bindings, workdir
  • Send-class by definition — it must be in FLEET_SEND_TOOL_NAMES so isFleetSendTool hard-gates it, and deliberately kept OUT of allowedTools. R3 is an invariant, not a mode default
  • The approval prompt carries the goal's cost roll-up, the way fleet_panel already does — a collaboration is the most expensive thing the conductor can start, so the owner should see the projected spend before approving
  • Delegated identity for each role's child, same chain as fleet_spawn; a collaboration child is still a leaf unless explicitly promoted to orchestrator
  • Completion returns a digest, never the collaboration's artifacts — the never-OOC guarantee applies here more than anywhere, since a collaboration produces N children's output
  • fleet_list / fleet_tasks should surface a conductor-started collaboration as one unit, not N unrelated sessions

Note on the orchestrator backend

A conductor-started collaboration puts an orchestrator role on some backend. Under #245's v1 the orchestrator is pinned to claude because the fleet surface is an in-process Claude-SDK object. So either this lands after #245, or it lands with the orchestrator pinned and the pin removed by #245.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions