Skip to main content
A team is the declarative source of truth for who works on a run. It compiles to a frozen config plus a subagent registry, so the Engineering Manager can only dispatch to roles that were declared. By default voss team check reads .voss/team.voss.

Grammar

What a role carries

Each role compiles to a spec with its own:
  • model tier — strong / cheap (mapped to concrete providers)
  • modeplan (read-only) or edit (scoped writes)
  • scope — glob set, compile-time contained inside the ceiling
  • toolscapability groups: fs, git, test, shell, net, code, memory, review, mcp
  • budget — token allowance drawn from the ceiling

The default roster

The shipped roster includes architect, backend, frontend, tester, reviewer, skeptic, and docs.

Validation

voss team check runs the compile_team validator. It fails the build — not the run — when something is wrong.
Compile-time failures include: The legacy explorer / worker / reviewer subagent path remains backward-compatible.
Scope and budget containment are checked at compile time so an invalid team can never start a run. See the Engineering Manager loop for how the roster is enforced during dispatch.