Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Offer to hand heavy work to Codex (GPT-5) as a subagent so it runs on the ChatGPT plan quota instead of burning Claude context and tokens. Use at the START of any task that is large, repetitive, or asset-producing — bulk refactors across many files, generating boilerplate or fixtures, exhaustive repo-wide audits, writing many similar tests, and anything needing mockups or images. Also use whenever the user says "save tokens", "use codex", "delegate this", or "who should do this".
.claude/skills/sateezg-delegate-to-codex-when-it-saves-the-user-tokens/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 422% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -83% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-21 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 34% | 0% |
The Codex CLI on this machine runs on the user's ChatGPT plan quota — a separate budget from this Claude session. Work pushed to Codex costs no Claude output tokens and, more importantly, keeps large intermediate output (file dumps, generated boilerplate, long search results) out of this context window.
Your job is to notice when that trade is worth making, offer it, and then orchestrate.
Delegate to Codex when the task is high-volume and low-judgment:
| Signal | Example | | :-- | :-- | | Mechanical edits across many files | rename a symbol in 40 files, migrate an import style, add a header to every module | | Bulk generation | scaffold 20 CRUD endpoints, write fixtures, generate a large seed dataset | | Exhaustive sweeps | "find every place we call the old API", audit all routes for auth | | Assets | any image, icon set, mockup, or diagram — always Codex, it has gpt-image-2 | | Long, self-contained subtasks | port a module to TypeScript, write the test suite for one file | | A genuinely independent opinion | you already have an answer and want it challenged |
Keep it yourself when the task is low-volume and high-judgment: architecture calls, ambiguous requirements, anything needing the conversation history, small edits (under ~3 files), or anything the user is iterating on interactively. Round-tripping a two-line fix through Codex is slower and costs more overall.
When the rubric says delegate, say so in one or two sentences before starting, and be concrete about the split. Don't ask a vague "should I use Codex?" — the user can't judge that. Tell them what each side does and what it saves:
> This touches ~35 files with the same mechanical change. I can hand the edits to > Codex — it runs on your ChatGPT quota and keeps 35 file dumps out of this > context — then review its diff here. Want me to?
If the user has already said "use Codex" or "save tokens", skip the question and just do it. If the task is small, don't offer at all — the offer itself is noise.
You stay the orchestrator. The pattern is always: you scope, Codex executes, you verify.
rule, the acceptance criteria. This is the judgment part and it's cheap.
the goal, the exact files or glob, the rule to apply, what must not change, and the output you expect back.
codex-implementer subagent — for edits to files (runs workspace-write)codex-reviewer subagent — for review of a diff or modulecodex-debugger subagent — for root-causing a failurecodex-artist subagent — for images, icons, mockupscodex-run "<task>" in Bash — for a single quick question, no subagent neededNever forward Codex's claim of success without checking. This is the part that makes delegation safe, and it's why you don't delegate judgment.
from a bad one, do it yourself.
workspace-write only when file changes are the point, and tell the userbefore Codex writes to their repo. Default everything else to read-only.
to files, so its changes are reviewable as a clean diff.
work; each one spends their quota.
misunderstand a brief. Treat its output as a draft from a capable stranger.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-09 | fail→fail | 11,090 | 13,728 | +24% | 1 | 1 | 0% | 1,227 | 1,920 | +56% | 0 | 0 | — |
case-10 | fail→fail | 4,010 | 13,940 | +248% | 1 | 1 | 0% | 653 | 1,506 | +131% | 0 | 0 | — |
case-11 | fail→fail | 5,633 | 15,780 | +180% | 1 | 1 | 0% | 999 | 1,217 | +22% | 0 | 0 | — |
case-01 | fail→pass | 7,649 | 8,965 | +17% | 1 | 1 | 0% | 343 | 1,791 | +422% | 0 | 0 | — |
case-02 | fail→pass | 47,403 | 16,730 | -65% | 1 | 1 | 0% | 8,236 | 1,429 | -83% | 0 | 0 | — |
case-03 | fail→pass | 5,994 | 4,029 | -33% | 1 | 1 | 0% | 930 | 1,665 | +79% | 0 | 0 | — |
case-04 | fail→fail | 17,531 | 4,704 | -73% | 1 | 1 | 0% | 893 | 1,601 | +79% | 0 | 0 | — |
case-21 | fail→pass | 15,680 | 25,115 | +60% | 1 | 1 | 0% | 2,385 | 2,357 | -1% | 0 | 0 | — |
case-05 | pass→pass | 21,197 | 17,405 | -18% | 1 | 1 | 0% | 2,496 | 2,770 | +11% | 0 | 0 | — |
case-06 | pass→fail | 13,222 | 7,825 | -41% | 1 | 1 | 0% | 1,126 | 1,459 | +30% | 0 | 0 | — |
case-07 | fail→fail | 9,617 | 3,520 | -63% | 1 | 1 | 0% | 216 | 1,599 | +640% | 0 | 0 | — |
case-08 | fail→fail | 9,695 | 9,417 | -3% | 1 | 1 | 0% | 659 | 1,727 | +162% | 0 | 0 | — |
case-12 | fail→pass | 13,255 | 8,939 | -33% | 1 | 1 | 0% | 1,200 | 1,604 | +34% | 0 | 0 | — |
case-13 | fail→pass | 67,224 | 10,672 | -84% | 1 | 1 | 0% | 2,611 | 1,626 | -38% | 0 | 0 | — |
case-14 | fail→pass | 13,160 | 9,512 | -28% | 1 | 1 | 0% | 1,340 | 1,740 | +30% | 0 | 0 | — |
case-15 | fail→fail | 42,415 | 17,620 | -58% | 1 | 1 | 0% | 7,385 | 1,475 | -80% | 0 | 0 | — |
case-22 | fail→fail | 5,535 | 6,981 | +26% | 1 | 1 | 0% | 314 | 1,391 | +343% | 0 | 0 | — |
case-16 | fail→pass | 10,186 | 8,965 | -12% | 1 | 1 | 0% | 1,669 | 2,557 | +53% | 0 | 0 | — |
case-17 | fail→pass | 18,853 | 10,411 | -45% | 1 | 1 | 0% | 2,695 | 1,870 | -31% | 0 | 0 | — |
case-18 | fail→fail | 45,190 | 12,252 | -73% | 1 | 1 | 0% | 8,216 | 1,288 | -84% | 0 | 0 | — |
case-19 | pass→pass | 9,544 | 2,913 | -69% | 1 | 1 | 0% | 1,632 | 1,425 | -13% | 0 | 0 | — |
case-20 | pass→fail | 24,562 | 17,886 | -27% | 1 | 1 | 0% | 1,595 | 1,319 | -17% | 0 | 0 | — |
case-23 | pass→pass | 11,521 | 9,964 | -14% | 1 | 1 | 0% | 1,826 | 1,739 | -5% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 16 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +30 percentage points is the difference between those two pass rates over the 16 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.