Workflow Scale Budget
Size a Workflow script's agent count before running it, or tally a finished run's agents and tokens.
by laurigates · MIT
The skill
Size a Workflow script's agent count before running it, or tally a finished run's agents and tokens. Use when authoring or proposing a Workflow fan-out, or asking what a run used.
A Workflow's Cost Is Its Agent Count
When to Use This Skill
| Use this skill when... | Use something else when... |
|---|---|
Writing or proposing a Workflow script, or estimating its cost |
Writing the script's API calls — load the built-in workflow-authoring skill |
The hooks-plugin/hooks/workflow-scale-guard.sh hook asked before a run |
Recovering a run already killed mid-flight — use workflow-orchestration-plugin:workflow-interrupted-run-recovery |
| Choosing between per-item and grouped fan-out | Ordering dependent waves — use workflow-orchestration-plugin:workflow-wave-dispatch |
| A Workflow run has finished and you want its realised agent count or tokens | The tally WARNs agents_without_result (the run ended, whether killed, failed or completed, with agents unfinished) — use workflow-orchestration-plugin:workflow-interrupted-run-recovery |
The hook enforces the bound (PreToolUse on Workflow, ask when the estimated
agent count exceeds CLAUDE_HOOKS_WORKFLOW_MAX_AGENTS, default 10). The two
shipped mechanisms do not cover this: workflowSizeGuideline is advisory
system-prompt text that ends "not a hard limit", and skipWorkflowUsageWarning
is a one-time acceptance — once set, auto mode never prompts before a
workflow again, at any scale.
Execution
- Count agents, not tokens. Every fresh agent builds its own prompt cache at 1.25x input price and a short-lived one never reads it back. 2026-09-15: 55.2M cache writes cost $345 while 252.5M cache reads cost $126 — trimming prompts optimises the cheaper half.
- Find the per-item multiplier. One reviewer per changed file is fine.
pipeline(units, edit, review, repair, re-review)is 4x an unknown N; that shape across five runs produced 496 subagents against a guideline of 10, and $528 in an afternoon. - Group by theme, not by item, when the work is per-file. The same 43-file documentation sweep ran twice on 2026-09-16: one editor plus one reviewer per file (138 agents, 13.8M subagent tokens, 49 killed by the usage limit before reviewing anything), then seven editors each owning a themed group of 5–11 files (7 agents, 1.93M tokens, zero failures). Same findings, same refs, same gates — an eighth of the cost. Replace the reviewer half with one deterministic gate (pre-commit, a scripted link check, reading the diff) rather than N agents.
- Design for re-driving, not resuming. When the usage limit lands mid-run
the session id changes, and
resumeFromRunIdlooks for the journal under the new session directory and reports nothing to resume (observed 2026-09-16 on two runs whose journals sat intact under the old id). Have agents write output to disk as they go, keep each phase independently runnable, and record what completed so a replacement run can skip it. The 66 edits that survived that limit did so because they were already on disk. - State the expected agent count when proposing the workflow, and cap the
fan-out where the list is produced (
.slice(0, N)— the guard reads an explicit cap as the bound). - A run large enough to trip the gate is the user's call. Never raise
CLAUDE_HOOKS_WORKFLOW_MAX_AGENTSto clear your own prompt. - An issue sweep whose agents file follow-ups does not converge on its own. Implementers and reviewers are told to split out-of-scope defects into new issues, so each round fills the queue it is draining. 2026-10-04, mcu-tinkering-lab: round 1 (41 agents, 10.2M subagent tokens) closed 21 issues and filed 18; round 2 (32 agents, 7.3M tokens) closed 16 and filed 15, four of them edge cases in a single checker script. Plan the number of rounds up front, triage the new issues between rounds, and carry the low-value ones as backlog. "Clear the plate" is not a stopping condition for a loop that refills the plate.
- After a run finishes:
bash "${CLAUDE_SKILL_DIR}/scripts/workflow-run-tally.sh" <run-id>tallies its realised agents and tokens from the transcripts. A session id tallies every run in that session, then prints oneWORKFLOW SESSION TALLYblock with the agents and tokens summed across the runs and the worst run status. A WARN withagents_without_resultmeans the run ended with agents unfinished: seeworkflow-orchestration-plugin:workflow-interrupted-run-recovery. Summing the raw usage lines overstates cache tokens, because one API message is written as several lines, so the script keeps only the last line per message id.
Agentic Optimizations
| Context | Command |
|---|---|
| Tally one finished run | bash "${CLAUDE_SKILL_DIR}/scripts/workflow-run-tally.sh" <wf_run_id> |
| Tally every run in a session | bash "${CLAUDE_SKILL_DIR}/scripts/workflow-run-tally.sh" <session_id> |
Transcripts outside ~/.claude/projects |
bash "${CLAUDE_SKILL_DIR}/scripts/workflow-run-tally.sh" <id> --projects-dir <dir> |
Use this skill
Connect your agent to the Skill Store MCP server and ask for it by ref: laurigates/workflow-scale-budget-34763424142.
Details
- Publisher
- laurigates
- Category
- AI & Agents › Orchestration & multi-agent
- License
- MIT
- Updated
- 2026-10-19
References
More from laurigates
- Docs Refresh Refresh plugin catalog docs (README, PLUGIN-MAP, d2 diagram) so per-plugin skill/agent counts mat…
- Plugin Authoring Add, modify, or delete a skill or plugin in this repo — frontmatter shape, the seven metadata fil…
- Accessibility Implementation WCAG 2.1/2.2 compliance, ARIA patterns, keyboard nav, focus management, a11y testing.
- Design Tokens Design tokens and CSS custom properties: theme systems, dark mode, component libraries.