DOCS · REFERENCE · COMMANDS · BUILD

start-review-team/synthex:start-review-team

Build

Start a standing review pool — warm reviewers that take reviews without per-review spawn latency.

Invocation

Run from inside Claude Code in any project where Synthex is installed:

/synthex:start-review-team

Some commands accept parameters; see the source-of-truth file linked below for the full parameter list and workflow.

Lifecycle phase

Build. Parallel-executed, peer-reviewed task delivery.

Source

The command's parameters, workflow, and sub-agent invocations are defined in markdown at bluminal/lumenai/blob/main/plugins/synthex/commands/start-review-team.md.

Last modified:

What it does, end-to-end

start-review-team/synthex:start-review-team starts a standing review pool: a Pool Lead plus one reviewer teammate per agent in the roster, kept idle until a review arrives. Once it's running, review-code/synthex:review-code and performance-audit/synthex:performance-audit route to it automatically when its roster covers the reviewers they need and standing_pools.enabled is true. See Standing review pools for the full model.

Each run:

  1. Checks the host. Needs Claude Code with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 and the SendMessage and ListAgents tools. Without them it prints a notice and stops.
  2. Warns about leftover team directories under ~/.claude/teams/ from earlier sessions. It doesn't abort or delete them.
  3. Refuses a duplicate name. If a pool with that name already exists, it stops and points you at list-teams/synthex:list-teams and stop-review-team/synthex:stop-review-team.
  4. Fills in defaults from standing_pools.* for anything you didn't pass.
  5. Validates the pool name and checks that every reviewer is a real Synthex agent — all before writing anything.
  6. Runs the multi-model preflight when multi-model is on, and asks you to confirm if any external CLI is set to sandbox-yolo mode.
  7. Spawns the pool and checks that each reviewer came up as the right agent.
  8. Records the pool in ~/.claude/teams/standing/index.json under a cross-session lock, so two sessions starting pools at once can't corrupt the index.
  9. Prints a confirmation with the roster, multi-model setting, TTL, routing mode, storage paths, and the commands to check on or stop the pool.

Parameters

ParameterDescriptionDefaultRequired
namePool namestanding_pools.default_name (review-pool)No
reviewersComma-separated reviewer agent namesstanding_pools.default_reviewers (code-reviewer,security-reviewer)No
multi_modelRun multi-model review in this poolstanding_pools.default_multi_model (false)No
ttl_minutesIdle minutes before the pool can be reapedstanding_pools.ttl_minutes (60)No
config_pathProject config path.synthex/config.yamlNo

Pool names are 1–48 lowercase letters, digits, and hyphens, starting with a letter or digit. Input is lowercased first. index, standing, and names starting with . are reserved.

Examples

# Default pool: review-pool with code-reviewer + security-reviewer
/synthex:start-review-team

# A pool that also serves /synthex:performance-audit
/synthex:start-review-team --name full-pool \
  --reviewers code-reviewer,security-reviewer,performance-engineer

# A multi-model pool (needs external CLIs configured)
/synthex:start-review-team --name mm-pool --multi_model

Common scenarios

"Will my pool actually get used?"

Only if routing is on and the roster fits. Check standing_pools.enabled: true in .synthex/config.yaml (or run configure-teams/synthex:configure-teams). With the default matching_mode: covers, the pool needs every reviewer the command asks for —

performance-audit/synthex:performance-audit always asks for performance-engineer, so the default roster won't serve it.

"It asked me to confirm the cost"

You get a cost warning before the confirmation when the pool has four or more reviewers, or two or more reviewers with a TTL over 240 minutes. Answer no and the pool is removed.

"Index is locked"

Another session is writing the pool index. Wait and retry. If a previous command crashed while holding the lock, the error message gives the rmdir command to clear it.

What it does not do

  • Restrict the roster. Any Synthex agent can join a pool, but only review commands route to pools. A pool with a planning roster runs, and nothing sends it work.
  • Turn on routing. Starting a pool doesn't touch config. Without standing_pools.enabled: true, commands ignore it.
  • Outlive your session. The pool stops serving reviews when the Claude Code session that started it closes; the next routed review cleans it up.

See also

  • Standing review pools — lifecycle, routing, config
  • list-teams/synthex:list-teams — see running pools
  • stop-review-team/synthex:stop-review-team — stop a pool
  • configure-teams/synthex:configure-teams — turn on routing