Workflow tool: meta.phases[].model reads as a model override but is display-only - agents silently inherit an expensive session model

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 21, 2026

Summary

In a Workflow-tool script, the meta.phases entries accept a model field. The tool docs describe it as: "Add model to a phase entry when that phase uses a specific model override." This reads as if it sets the model for that phase's agents. It does not - it is display metadata only. The effective surface is opts.model on each individual agent() call, which defaults to inheriting the main-loop session model.

What happened

A ~35-agent research workflow was authored in a session running claude-fable-5 (premium tier). The script annotated every phase with model: 'opus' in meta.phases, and the authoring model stated "Opus throughout" - but omitted opts.model on the agent() calls. Every spawned agent silently ran on Fable. The user (subscription billing) reports roughly 10% of a weekly usage allowance consumed before the mismatch was caught - and it was caught only because the user happened to ask which model the agents were on. Nothing in the run surface (launch result, progress UI) warned that a premium session model was being inherited by a large fan-out.

Why this is a footgun

  1. Two surfaces accept the same field name (model) with opposite effects: one is decorative, one is effective. The decorative one appears first in the documented script skeleton.
  2. Inherit-by-default is the documented and usually correct behavior, but from a premium-tier session it silently multiplies the most expensive model across an entire fan-out.
  3. There is no launch-time echo of the resolved model per phase/agent, so the mistake is invisible until spend has occurred.

Suggested fixes (any of)

  • Make meta.phases[].model actually set the default model for agent() calls in that phase, or reject/warn on the field if it remains display-only.
  • Echo the resolved model distribution in the Workflow launch result (e.g. "35 agents: 35x claude-fable-5") so a mismatch is visible before meaningful spend.
  • An optional warning or confirmation when a workflow of more than N agents will inherit a top-tier session model with no explicit overrides.

Environment

  • Claude Code CLI on macOS (Darwin 25.5.0), session model claude-fable-5
  • Workflow tool, background run; script authored inline by the session model

🤖 Generated with Claude Code

View original on GitHub ↗