Cheap swap guard
Skill Neeeophytee/ai-cost-cutter-skills/skills/cheap-swap-guard
10 skills that cut your AI bill with proof instead of vibes. MIT, works in Claude Code, Codex, Cursor. Every skill's check is executed by CI.
npx -y skills add Neeeophytee/ai-cost-cutter-skills --skill cheap-swap-guardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 24 days oldThe repository was created 24 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 16 stars16 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Before swapping any workload to a cheaper model, declare the cases the premium model still dominates and prove they keep routing to premium. Use when the user wants to "just switch" to a cheaper model (text, image, or video), or asks whether a cheap model is good enough to replace an expensive one.
SKILL.md
3.9 KB, 916 tokens by cl100k_base, as published. Nobody here has run it
Swap cheap, but guard the cases the cheap model loses
Every "the cheap model is 95% as good" claim hides a distribution: on most inputs the gap is invisible, and on a few specific cases the premium model isn't a few percent better, it's a different class. The canonical example (image generation, as of 2026-06): a cheap model like Wan runs ~7-8x cheaper per image than GPT-Image-2 and a normal viewer barely notices, except on text inside the frame, charts, dense layouts, and typography, where GPT-Image-2 leads its leaderboard by the largest margin recorded. A blind swap saves money and quietly ships garbled slides. Your job is to make the swap conditional and write the conditions down.
Steps
- Name the pair: the cheap model the user wants and the premium model it replaces. This works for any modality: text, image, video, speech.
- List the dominated cases: the input types where the premium model is known to win by a class, not a margin. Get these from a current leaderboard's category breakdown or the user's own failure examples, not from the headline average. If the user claims there are none, make them say it explicitly; that claim is the riskiest line in the config.
- Build the route table: every dominated case routes to
premium; everything else routes tocheap. Then check the saving is real: if nothing routes to cheap after honest accounting, the swap was a fantasy and the user just learned that for free. - Run the proof below. It fails if any declared dominated case leaks to the cheap model, or if nothing routes cheap at all.
- At request time, tag each input by case before dispatch (for images: does the prompt ask for words in the frame?). The same pattern covers video: cheap for iterations, premium for the physics-heavy hero shot.
Prove it
cat > decision.json <<'JSON'
{
"modality": "image",
"cheap": "wan-2.5",
"premium": "gpt-image-2",
"dominated_cases": ["text_in_frame", "charts_or_layout"],
"route": [
{ "when": "text_in_frame", "use": "premium" },
{ "when": "charts_or_layout", "use": "premium" },
{ "when": "general_scene", "use": "cheap" }
]
}
JSON
node -e '
const c = JSON.parse(require("fs").readFileSync("decision.json", "utf8"));
function bad(m) { console.error("BAD: " + m); process.exit(1); }
if (!c.cheap || !c.premium) bad("need both a cheap and a premium model");
const ruleFor = {};
for (const r of c.route || []) if (r.when && r.use) ruleFor[r.when] = r.use;
if (!(c.dominated_cases || []).length) bad("declare the cases the premium model dominates (or explicitly claim there are none)");
for (const d of c.dominated_cases) if (ruleFor[d] !== "premium") bad("dominated case " + d + " is not routed to the premium model");
if (!(c.route || []).some(r => r.use === "cheap")) bad("nothing routes to the cheap model, so there is no saving");
console.log("swap OK: " + c.cheap + " default, " + c.dominated_cases.length + " dominated case(s) guarded to " + c.premium);
'
Guardrails
- Never let a single percentage summarize the gap. Averages hide exactly the cases this skill exists to guard.
- Verify open-weights claims per version before anyone plans to self-host the cheap model; a family being "open" in one release says nothing about the next (Wan 2.1/2.2 shipped weights; 2.5 is API-only).
- Where one wrong output is expensive (customer-facing, legal, medical), keep a human check on the cheap lane regardless of what the table says.
<sub>Backed by a machine-verified recipe, re-checked by CI: Swap to a cheap image model, but guard the cases it loses</sub>