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) - mode —
plan(read-only) oredit(scoped writes) - scope — glob set, compile-time contained inside the ceiling
- tools — capability groups:
fs,git,test,shell,net,code,memory,review,mcp - budget — token allowance drawn from the ceiling
The default roster
The shipped roster includesarchitect, 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.
| Failure | Why it fails |
|---|---|
| Role scope widens past the ceiling | Scope must be contained in the global ceiling |
| Role budget exceeds the ceiling | Budget is a hard boundary, not a hint |
Unknown capability group in tools | Tools are filtered through the capability registry |
| Unknown model tier | Emits an actionable diagnostic |
| Dispatch to an undeclared role | The EM cage rejects it at runtime |
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.