Context
A high-effort orchestrated run on williamthorsen/node-monorepo-tools#355 (work-types SSOT refactor; ~29 files, ~2,200 line insertion) hit max_turns ceilings on round-1 review for two of the four reviewers (orchestrated-reviewer and aspect-test-reviewer) and again on the initial holistic-review dispatch. The savings-analyzer flagged this as the largest avoidable cost in the run: ~322k tokens (~140k from round-1 wasted work + ~182k from forced round-2 re-dispatch of the full reviewer panel).
Empirical data from that run:
orchestrated-reviewer failed at 42 tool calls (ceiling: 30).
aspect-test-reviewer failed at 35 tool calls (ceiling: 20).
- Completed agents on the same run used 6–42 tool calls.
PR #523 has since landed incremental-write resilience — partial reviewer findings now survive a max_turns interruption — but a complete review remains strictly better than a partial one with (pending) criticality. The underlying cause (ceilings tight enough that one extra investigation step pushes a reviewer over) is unchanged.
Current defaults (per packages/agents/content/skills/orchestrate/SKILL.md):
| subagent_type |
max_turns |
| orchestrated-reviewer |
30 |
| aspect-code-reviewer |
20 |
| aspect-silent-failure-reviewer |
20 |
| aspect-test-reviewer |
20 |
| code-simplification-reviewer |
15 |
| orchestrated-reviewer (final) |
30 |
Solution
Apply a global bump to all reviewer ceilings. A uniform raise — rather than effort-tiered or branch-size-adaptive defaults — keeps the change minimal, propagates a healthy safety margin to every run regardless of size, and avoids introducing a new resolution dimension. Agents stop when their work is done; max_turns is insurance, not a budget the agent fills, so raised ceilings impose near-zero cost on runs that don't need them.
Sizing targets ~30-50% margin over observed worst-case (or doubles the original where no failure data exists):
| subagent_type |
current |
new |
rationale |
| orchestrated-reviewer |
30 |
60 |
43% margin over observed 42-turn failure |
| orchestrated-reviewer (final) |
30 |
60 |
parity with orchestrated-reviewer |
| aspect-code-reviewer |
20 |
45 |
parity with aspect-test-reviewer |
| aspect-silent-failure-reviewer |
20 |
45 |
parity with aspect-test-reviewer |
| aspect-test-reviewer |
20 |
45 |
29% margin over observed 35-turn failure |
| code-simplification-reviewer |
15 |
30 |
doubled (no observed failure; proportional) |
Architect, planner, and coder ceilings are out of scope — no failures observed, and coder's existing 150 is already generous.
Affected files
packages/agents/content/skills/orchestrate/SKILL.md — the "Turn budgets" table.
packages/agents/content/skills/orchestrate/modules/review-cycle.md — the six inline max_turns values for reviewer Task calls.
Out of scope
- Effort-tiered defaults — adds a resolution-cascade dimension for marginal benefit; the global bump's "extra" headroom on small runs is not actually consumed.
- Branch-size–adaptive defaults — most invasive option; defers to "if a real need surfaces" rather than designing speculatively.
--max-turns=<key:N,…> CLI override — useful future escape hatch but no observed demand; defer to a follow-up if a one-off override case appears.
- Architect/planner/coder ceilings — no observed failures and no evidence of risk.
Acceptance criteria
Source
Savings-analyzer artifact from the #355 run:
~/ai-artifacts/projects/node-monorepo-tools/tickets/355/20260503-153302Z/22_analyst_savings-analysis.md
Context
A high-effort orchestrated run on
williamthorsen/node-monorepo-tools#355(work-types SSOT refactor; ~29 files, ~2,200 line insertion) hitmax_turnsceilings on round-1 review for two of the four reviewers (orchestrated-reviewerandaspect-test-reviewer) and again on the initial holistic-review dispatch. The savings-analyzer flagged this as the largest avoidable cost in the run: ~322k tokens (~140k from round-1 wasted work + ~182k from forced round-2 re-dispatch of the full reviewer panel).Empirical data from that run:
orchestrated-reviewerfailed at 42 tool calls (ceiling: 30).aspect-test-reviewerfailed at 35 tool calls (ceiling: 20).PR #523 has since landed incremental-write resilience — partial reviewer findings now survive a
max_turnsinterruption — but a complete review remains strictly better than a partial one with(pending)criticality. The underlying cause (ceilings tight enough that one extra investigation step pushes a reviewer over) is unchanged.Current defaults (per
packages/agents/content/skills/orchestrate/SKILL.md):Solution
Apply a global bump to all reviewer ceilings. A uniform raise — rather than effort-tiered or branch-size-adaptive defaults — keeps the change minimal, propagates a healthy safety margin to every run regardless of size, and avoids introducing a new resolution dimension. Agents stop when their work is done;
max_turnsis insurance, not a budget the agent fills, so raised ceilings impose near-zero cost on runs that don't need them.Sizing targets ~30-50% margin over observed worst-case (or doubles the original where no failure data exists):
Architect, planner, and coder ceilings are out of scope — no failures observed, and coder's existing 150 is already generous.
Affected files
packages/agents/content/skills/orchestrate/SKILL.md— the "Turn budgets" table.packages/agents/content/skills/orchestrate/modules/review-cycle.md— the six inlinemax_turnsvalues for reviewer Task calls.Out of scope
--max-turns=<key:N,…>CLI override — useful future escape hatch but no observed demand; defer to a follow-up if a one-off override case appears.Acceptance criteria
orchestrate/SKILL.mdreflects the new values for all six reviewer rows.max_turnsvalues inorchestrate/modules/review-cycle.mdreflect the new values at every reviewer Task call site.Source
Savings-analyzer artifact from the #355 run:
~/ai-artifacts/projects/node-monorepo-tools/tickets/355/20260503-153302Z/22_analyst_savings-analysis.md