Automate cost-efficient code generation using tiered delegation: a Sonnet planner decomposes tasks into units, a cheap Haiku agent builds and self-verifies each unit, and a Sonnet fix runs only on failure -- achieving ~64% cost reduction over single-agent approaches.
Brief-writer subskill for thrifty's split planning mode. Expands ONE terse unit spec (from the architect/director) plus the shared contract into a full, self-contained BRIEF with right-sized approach and concrete acceptance criteria. Has authority WITHIN its unit only; never re-decides anything the contract already pins. Do not invoke directly — dispatched as a Sonnet subagent by the thrifty orchestrator.
Checker subskill for thrifty. Verifies one completed unit against its acceptance criteria, attempts a surgical fix for small localized defects, and returns a structured verdict that diagnoses the failure so the orchestrator can route it. Do not invoke directly — dispatched as a Sonnet subagent by the thrifty orchestrator.
Lean tiered-build orchestrator (JSONL-dispatch architecture). Use for "thrifty fast / lean / dispatch", or a multi-sprint build where cost matters. The architect (Sonnet) writes a contract + a sprints.jsonl and calls a dispatch SCRIPT that loops cheap bare model calls (claude -p --bare, subscription, no API key) to write each sprint to disk — NO subagents. The orchestrator never ingests sprint outputs, only a manifest, so its context stays tiny. Then it runs the gate and surgical-fixes.
Executor subskill for thrifty. ONE cached agent that builds an ordered list of units from their briefs in a single session — honoring the shared contract, running the gate, and self-fixing — then reports per-unit results. (Also handles the degenerate single-unit case.) Do not invoke directly — dispatched as a Haiku subagent by the thrifty orchestrator.
Planning discipline for thrifty, run by the architect (Sonnet) itself. Decomposes a task into units, writes CONTRACT.md (cross-unit decisions + dependency graph), one self-contained BRIEF per unit with concrete acceptance criteria, and initializes the LEDGER. Invoked by the thrifty orchestrator during the Plan step.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Tiered-delegation task execution for Claude Code. A planner model writes the spec into sprints, a cheap model executes and self-verifies against the gate — same gate quality as the strong model, ~64% cheaper (≈⅓ the cost) (benchmarked).
Offload each sprint of work to the weakest model that can do it correctly.
Most of the work in a task is pattern-following execution, not reasoning. thrifty concentrates planning in one model and pushes execution down to a cheap one, with the gate (tests / a checklist) as the trust contract — independently re-run, never self-reported. This generalizes "tests as the source of truth" to any task, code or not.
The configuration that won the cost/quality bake-off (spec → working code, 7 tasks across
JS / Python / Go / prose, gate-verified — see eval/RESULTS.md and
experiments/):
spec ──▶ Sonnet writes contract (pins cross-sprint + genuinely-ambiguous decisions)
+ sprints.jsonl (one self-contained unit of work each)
│
▼
Haiku one cached agent builds every sprint, runs the gate, and self-fixes
│
▼
Sonnet a SCOPED patch — only if a specific failure is left (in practice: never;
the Haiku agent self-fixed to green on all 7 tasks)
Result: ~64% cheaper than Opus building the same spec, at equal gate quality — on large, multi-unit builds (the win grows with size). On trivial builds the planning overhead makes thrifty cost more than a single capable agent, so there's a crossover below which you should just use one strong model directly (see Usage). Two things make it work: a single cached agent reuses the contract across turns (cheap, no cold-call bloat), and the contract pins every decision that crosses a sprint boundary so the executor never invents a system-level choice (leave one ambiguous and the executor writes contradictory tests). Opus is not in the execution loop.
thrifty ships as a Claude Code plugin (bundles all six skills):
/plugin marketplace add 2389-research/thrifty
/plugin install thrifty@thrifty
Then trigger it with "thrifty", "delegate this", or "tiered build".
The subagent-based skills (
thrifty,thrifty-plan/brief/execute/check) need no external runtime. The leanthrifty-dispatchflow shells out toskills/thrifty-dispatch/dispatch.py, so it additionally requires Python 3 onPATH.
To hack on it locally instead, symlink the skills into ~/.claude/skills/:
for d in skills/*/; do ln -s "$PWD/$d" ~/.claude/skills/; done
thrifty generalizes three existing systems to arbitrary tasks:
Where local_code_gen writes 600-line byte-pinned contracts for a tiny local
model (qwen3.6 / gemma), thrifty deliberately sits well above that floor. Haiku
is far stronger, so the contract pins only what is cross-sprint AND genuinely
ambiguous — the seams, not the interiors. Since the planner's (Sonnet) output is the
expensive part, terseness is the goal: pin the few decisions two capable sprints
would otherwise diverge on, and let Haiku infer the rest.
| Skill | Role | Model | Runs as |
|---|---|---|---|
thrifty | orchestrator (subagent flow) | — | this session |
thrifty-dispatch | orchestrator (lean dispatch flow — default) | — | this session |
thrifty-plan | director's planning discipline | Sonnet | this session |
thrifty-brief | expand a unit spec into a brief (split tier) | Sonnet | dispatched subagent |
thrifty-execute | execute one unit | Haiku | dispatched subagent |
thrifty-check | verify + fix one unit | Sonnet | dispatched subagent |
npx claudepluginhub 2389-research/thrifty --plugin thriftyMCP server for agent social media platform - enables AI agents to interact in team-based discussions
Iterative artifact refinement with investigation-first judge board - constructs problem-specific judges that read the code, understand the problem, and propose evidence-based improvements
Agentic binary reverse engineering for ELF binaries on ARM64, ARMv7, x86_64 - hypothesis-driven analysis with radare2, Ghidra, GDB, QEMU
A comprehensive MCP server that provides Claude with private journaling, semantic search, resources, and guided prompts for reflection and learning
Dispatch panels of specialized subagents to review projects — expert audits, first-impression personas, task-completion flows, and pedantic nitpicks
Turn your strongest Claude model into a team-lead orchestrator: it plans and reviews, delegates execution to the cheapest capable workers (Claude subagents or auto-detected Codex CLI workers), and blind-verifies meaningful changes before accepting them.
Turns Fable 5 into a token-frugal orchestrator: Fable keeps judgment, tiered Opus/Sonnet/Haiku agents do the labor.
Cost-optimised agent router: sends every sub-task to the cheapest execution strategy that can succeed, escalates only on verified failure.
This skill should be used when the model's ROLE_TYPE is orchestrator and needs to delegate tasks to specialist sub-agents. Provides scientific delegation framework ensuring world-building context (WHERE, WHAT, WHY) while preserving agent autonomy in implementation decisions (HOW). Use when planning task delegation, structuring sub-agent prompts, or coordinating multi-agent workflows.
Multi-agent orchestration framework for Claude Code. Routes tasks to specialized Haiku/Sonnet subagents while Opus orchestrates — inspired by speculative decoding. Includes 10 specialized heads, environment preflight checks, and ~50% API cost reduction.
Token-frugal multi-agent orchestration for Claude Code, built for a Claude Fable 5 chair: Fable plans and decides, Sonnet 5 carries the volume, Opus 5 takes the hard slices and escalations — each worker's effort sized by the chair — and a two-tier verification valve guards the close. When the Fable limit runs dry, an Opus fallback profile keeps the same discipline running. A Requirements Ledger and guard hooks enforce the discipline mechanically, and finished tmux teammates are reaped automatically.