Agent Triforge
Install
Guides pages and contents

Models and effort

Each role's CLI, model and effort come from ops/roster.toml. A field you leave unset inherits the shipped default (the role table in scripts/lib/roster.sh and the CLI registry in scripts/lib/registry.sh), so deleting the file is safe. at-setup's role step edits it for you (at-setup roles jumps straight there), and a hand edit is checked when the roster loads.

ops/roster.toml: the lead, the five roles with their shipped CLI, model, effort and fallbacks, the required core trio and the optional members.
Role CLI Model Effort Fallbacks
builder Claude Claude Code's own default (the roster's model is empty) max Codex → Antigravity
reviewer Codex gpt-6-astra xhigh Antigravity → Claude
tester Codex gpt-6-astra xhigh Claude
analyst Antigravity Gemini 3.8 Flash (High) high Claude
documenter Antigravity Gemini 3.8 Flash (High) high Claude

How each CLI takes its model and effort:

  • Antigravity always gets an explicit --model, because its own default is a (Medium) variant. The shipped pin is the newest Gemini at its highest thinking level that every tier can run (D-022, amended by D-060). The suffix is agy's effort control, so a role's effort maps into it: low to (Low), medium to (Medium), high, xhigh and max to (High).
  • To run Gemini 4 Argon, set a role's model to "Gemini 4 Argon (High)" (or (Medium), (Low)). It is newer than the pin, and the vendor's models page does not offer it on Free or Google AI Plus, so it stays a one-line opt-in; it answered READY live on agy 1.5.1 on 2026-11-05.
  • Gemini 3.1 Pro ("Gemini 3.1 Pro (High)" or (Low); no Medium tier) is Enterprise only on that page. Elsewhere agy models does not list it and agy refuses it as an unknown model, as it did on the account that ran Argon.
  • The July 2026 plan's never-Flash rule (AE2) is superseded by D-022, the September 2026 decision; if you work from that plan, D-022 wins.
  • Codex runs gpt-6-astra at xhigh (D-021). A role can pick another Codex model, such as gpt-6.1-sol, which answered on Codex 0.160.0 and was refused on 0.155.1.
  • Cursor runs a suffixed Grok id, grok-4.7-xhigh, never the Auto router. Its effort is the id's suffix (low, medium, high, xhigh).
  • The claude builder lane runs Claude Code's own default model at max effort. Claude personas and sub-agents follow the ladder below.
  • The optional members' pins are OpenCode openrouter/z-ai/glm-5.3, Kimi kimi-code/k3, Devin swe-1-6-slow and Grok Build grok-4.7 (its effort rides in --effort).
  • A role that sets only effort keeps its default CLI and model. Roster model overrides reach each CLI through its registry model_env.

The lead takes its model and effort from the [lead] table (cli, model, effort). Left out, a Codex lead runs gpt-6-astra at xhigh, and a Claude Code lead runs your session's model and effort setting. coordinate.sh and the launch line at-setup prints add them as flags.

Claude personas and sub-agents step down one ladder for narrow runtime tasks: Fable 5.1 at max for the lead and the never-downgrade tier (the latest Opus at max where Fable isn't available), then Opus 5.5 at xhigh (Claude Code ≥ 2.1.280), Opus 5.5 at high, and Sonnet 5.5 at high. security-sentinel, plan-checker and findings-synthesizer are never downgraded. Each persona's starting tier is in personas/manifest.toml. The ladder has one definition, TRIFORGE_MODEL_LADDER in scripts/lib/registry.sh; triforge_ladder prints it, and validate-versions.sh fails when another file restates it.

Assignment heuristic

Roles come from ops/roster.toml (resolve_role <role>). The defaults below are the shipped posture and restrict no one: any member can be the builder, and every build merges only after cross-review.

Question Role (default; roster-assignable)
Produces code? builder role: default Claude, assignable to any member; built under a lease and cross-reviewed before merge
Evaluates existing code? reviewer role (Codex + Antigravity) + review personas in parallel
Runs/executes something? tester role (default Codex CLI)
Produces documentation? documenter role (default Antigravity CLI)
Touches shared interfaces? builder implements under a lease → pinned non-author reviewer cross-reviews → tester validates
Ambiguous? the lead takes it as builder, flags for parallel review