> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackra.figentra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Roster

> The agents that work in this repository: tier, model, whether they block, and what each owns.

Every role is defined in this repository under `.agents/agents/`. The `sdlc` plugin is retired here ([ADR 0121](/adr/0121-sdlc-tooling-roles-and-linear) D3): eight of its roles are being ported (D9), and four fold into the lead session and existing roles. New roles are named `<domain>-<role>`.

## Tiers and models

An agent declares a **tier**, never a model. `.agents/models.yaml` maps each tier to a model, so a model change is one edit. Everything is Claude. Delegation to other model families was tried and retired; the reasoning is in [ADR 0017](/adr/0017-agent-roster-and-models).

| Tier default | Model | Used for |
| - | - | - |
| Frontier | Opus | Guardians, the orchestrator, spec authoring, officers |
| Standard | Sonnet | Executors and reviewers |
| Economy | Haiku | Mechanical stewards |

The per-agent model in the table below is the starting assignment. No role is assigned to `fable`: there is no evidence yet for where it fits, so revisit it after a trial. If a cheaper tier produces a wrong result, escalate one tier for that task rather than editing the agent.

## Who blocks

Two rules apply to every role.

1. **Where enforcement and prose disagree, the enforcement is the fact.** Each blocking role has something that fails mechanically when its concern breaks: `pnpm verify`, `pnpm validate`, the Turborepo boundaries, the oxlint layer rules. If a charter and the check disagree, the charter is the bug.
2. **Never report a stage complete on the strength of a gate that could not have observed it.** Say what was and was not run.

A human approves every release and every deploy. No agent promotes to production.

## Roster

Source: **port** means the role is being ported from the retired `sdlc` plugin into `.agents/agents/` (ADR 0121 D9). **folded** means its duties move to the lead session or the named roles. **new** means this repository defines it. Priority in brackets is when it is created.

### Lead

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `delivery-orchestrator` | lead | Opus | Enforces gate order; writes no code | Classify work, route it, build the task graph, report status | folded (ADR 0121 D9) |

### Guardians and gate owners

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `architecture-guardian` | guardian | Opus | Yes | Tiers, layers, placement, the not-built-yet list; writes the missing ADR | port (ADR 0121 D9) |
| `security-tenancy-reviewer` | guardian | Opus | Yes | Auth, secrets, isolation, webhooks, SSRF, redaction of secrets and PII from logs, events and errors | new (P0) |
| `release-operations` | guardian | Sonnet | Yes. A human approves every release and deploy | CI, pins, the release flow, changesets | port (ADR 0121 D9) |
| `test-engineer` | guardian | Sonnet | Yes, on a red suite or an untested failure path | Verification levels, the e2e matrix | port (ADR 0121 D9) |

### Stewards

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `package-steward` | steward | Sonnet | A new package or subpath only | Archetype, layers, exports, barrels, provenance | port (ADR 0121 D9) |
| `dependency-steward` | steward | Haiku | An open critical advisory only | Catalogs, licences, toolchain pins, Renovate, `.mcp.json`, skills | port (ADR 0121 D9) |
| `docs-governance` | steward | Sonnet | No | The canon: docs, ADRs, `AGENTS.md`, rules, this roster; reports where docs and code disagree | folded (ADR 0121 D9) |
| `code-standards-steward` | steward | Haiku | No | Naming, one declaration per file, imports, the file contract and docblocks, typed errors, house helpers over hand-written ones | new (P0) |
| `i18n-steward` | steward | Haiku | No | Logical CSS, ICU keys, locale data supplied by apps | new (P1) |

### Reviewers

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `code-reviewer` | reviewer | Sonnet | No | Correctness, simplicity, reuse, altitude | port (ADR 0121 D9) |
| `accessibility-reviewer` | reviewer | Sonnet | Critical and serious findings only | WCAG 2.2 AA, web and native, LTR and RTL, contrast | port (ADR 0121 D9) |
| `api-contract-reviewer` | reviewer | Sonnet | No; escalates to the guardian | `api()` shape, prefixed ids, pagination, idempotency, generated-client drift | new (P1) |
| `design-brand-reviewer` | reviewer | Sonnet | No | Reuse-first UI checklist, tokens only, brand rules; gives PASS or BLOCK advice | new (P1) |
| `performance-engineer` | reviewer | Sonnet | No | Budgets (bundle, API p95, mobile TTI) and budget tests | new (P2) |
| `sql-reviewer` | reviewer | Sonnet | Yes, once a database exists | Query plans, indexes, migration cost, RLS | new (P2, deferred until the first service with a database) |

### Officers

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `privacy-officer` | officer | Opus | Yes, on new PII without a PII-table row | PII tables, retention, residency, consent | new (P2) |
| `incident-commander` | officer | Opus | No; runs the incident | Pipeline, release and leaked-secret incidents, post-mortems | new (P2) |

### Executors

| Agent | Tier | Model | Blocks? | Owns | Source |
| - | - | - | - | - | - |
| `spec-author` | executor | Opus | No | `requirements.md` and `design.md` | folded (ADR 0121 D9) |
| `spec-planner` | executor | Sonnet | No | `tasks.md` and the wave graph | folded (ADR 0121 D9) |
| `spec-executor` | executor | Sonnet | No | Exactly one task; at most five run in parallel | port (ADR 0121 D9) |
| `service-builder` | executor | Sonnet | No | One service change plus its tests, from a brief | new (P1) |
| `frontend-builder` | executor | Sonnet | No | Console and docs screens on the generated client | new (P1) |
| `mobile-builder` | executor | Sonnet | No | Expo screens with HeroUI Native and Uniwind | new (P1) |
| `auditor` | executor, read-only | Haiku | No | Evidence reports for a reviewer or a human | new (P2, optional) |

## Routing

| The work | Goes to |
| - | - |
| Anything unclear, or touching more than one row below | `delivery-orchestrator` first |
| Adds a member, crosses a tier, or reverses a recorded decision | `architecture-guardian` before anyone builds |
| Changes an `api()` contract, an id prefix or the generated client | `api-contract-reviewer` |
| Touches auth, secrets, tenancy, payments, files or webhooks | `security-tenancy-reviewer` (gate) |
| Backend behaviour in a service | `service-builder` |
| A web or mobile screen | `frontend-builder` or `mobile-builder`, then `design-brand-reviewer` and `accessibility-reviewer` |
| Tests, isolation tests, contract tests | `test-engineer` |
| A new package or a new `exports` subpath | `package-steward` |
| Versions, advisories, licences, pins | `dependency-steward` |
| ADR, docs, rule or roster drift | `docs-governance` |
| CI, release, environment | `release-operations` |
| Any non-trivial change | `code-reviewer` (informs, does not block) |

## One charter shape

Every agent file under `.agents/agents/` has the same shape, so a reviewer knows where to look: frontmatter with `name`, `description` (what it does and when to call it), `tier` and the tool grant, then **Must read** (the rules, pages and skills it loads first), a numbered checklist, and a closing verdict. A gate agent states what it blocks on. A reviewer that never edits carries a read-only tool grant. The verdict is `PASS`, `TASKS` (findings, each with a named owner) or `BLOCKED`.

`code-reviewer` asks four questions in a fixed order because each builds on the last: is it correct, is it simple, is it reused, is it at the right altitude. It reports findings as `blocking`, `should-fix` or `consider`, each with a file reference and a concrete failure, never a preference. It does not report anything `pnpm verify` already covers. Finding one of those in review means the gate is broken, and that finding replaces the original.

## Folded away, not created

These existed in older roster designs and are covered by an existing role instead.

* Backend architecture review is part of `architecture-guardian`.
* ADR stewardship and changeset stewardship are part of `docs-governance` and `release-operations`.
* Separate e2e, brief-author, sweeper and merge-train roles are part of `test-engineer`, `delivery-orchestrator` and `release-operations`.
* Separate stewards for docblocks, errors, redaction and test helpers are part of `code-standards-steward`, `security-tenancy-reviewer` and `test-engineer`.
* A spec reviewer is `/speckit.analyze` plus the lead's adjudication ([ADR 0121](/adr/0121-sdlc-tooling-roles-and-linear) D20).
* A design agency (director, senior designer, design engineer) was judged too heavy and unproven. One non-blocking `design-brand-reviewer` plus the design skills replaces it.
* Business intake and AI-agent builders are not ported. The AI builder returns with the AI engine decision.

Related: [Working with agents](/agents/index), [Spec lifecycle](/agents/spec-lifecycle), [ADR 0017](/adr/0017-agent-roster-and-models).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.