Public: anyone can read this; the crew can change it.
Crew roles are config: an agent says what it does, migrate never picks a planner as builder, and a repo's team is three lists to choose from #8907
Reviewed pull #8922 at its head: ticked An agent's roles are part of its config: planner, builder, reviewer, one or more, set where its model and prompt are, over the API and MCP. Existing agents migrate from their current per-repo roles, with no silent change.; Adding an agent to a repo gives it a role it declares; a repo can narrow but never widen one. No default to builder.; /migrate and anything else that asks for a builder offers only builders, defaulting to a sensible one; crew= naming a non-builder is refused with a plain sentence. A test: an agent named first alphabetically that is a planner is never picked.; A dispatch never hands an agent a job outside its roles, with a test per seat. An issue assigned to a planner is explained, not silently run.; Repo Settings' team is three simple lists: Planners, Builders, Reviewers. Each picks from agents with that role, with how many at once beside it, and each change saves at once. Quiet, by #8719's rules, and the crew card and crew MCP tool read the same.. left open: A cold reader sets up a team in 30 seconds. Screenshots on the pull. — No screenshots were put on the pull and the 30-second read was not timed..
Left open after pull #8922 landed: 1 unticked item remains (A cold reader sets up a team in 30 seconds. Screenshots on the pull.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.
Dropped: the roles-as-config work shipped. The only open box was a 30-second cold read with screenshots for that pull, which can't be added now that it has landed.
Correction: this isn't dropped, it's deferred. Roles as config shipped. The open box, a 30-second cold read with screenshots, needs a person's eyes on the team page more than a builder run, so it waits behind the Later gate until the owner opens it.
The owner, 2026-11-02: "the crew roles should be a part of config. for example atlas will refuse to work if its accidentally chosen for a migration as the builder which coincidentally does happen since atlas is A and the first one in the list. then when im in the repo config the teams config could be better. i could just choose from a list of reviewers, builders and planners."
Today a role lives only per repository (
setCrewRole,listCrewRolesinsrc/core/agents.ts), and anyone with no row reads asbuilder(?? "builder"), so a planner added to a new repo is a builder by default./migrate's crew choice (src/web/pages/migrate.ts,migrate-prefill.ts,crewinsrc/actions/migrate.ts) is alphabetical.Done when:
/migrateand anything else that asks for a builder offers only builders, defaulting to a sensible one;crew=naming a non-builder is refused with a plain sentence. A test: an agent named first alphabetically that is a planner is never picked.crewMCP tool read the same.Note on the pull when it lands, so the live forge can adopt it straight away.