Undercut for Bolt
Undercut is a free, MIT-licensed SKILL.md you add to Bolt's own Skills library — cheap tier first, escalate only on evidence, never on a vibe. Bolt doesn't expose a per-task model dial itself (you pick Standard or Max agent, not an individual model), so the rubric works one level up: it decides how much of each job is genuinely worth routing to your stronger agent tier, the same overpay-by-default pattern we measured elsewhere in the agent ecosystem (see the Claude Code page).
How this maps onto Bolt
Per Bolt's own Skills documentation, a skill is a .md/.mdx file (or a .zip bundling one) with required name and description frontmatter — the exact convention this repo's SKILL.md already ships in. Bolt "applies skills automatically when your prompt matches the skill's description," it discloses which skill fired directly in the chat, and there's no limit on how many skills a project can have turned on at once. Project skills live "in your project's code" and stay enabled for that project; workspace skills sit in a shared library across projects. That's a real, first-class discovery mechanism — not a workaround.
The cleanest way in is the one Bolt built for exactly this: its Skills panel has an "Import from GitHub" option that takes a public repo URL, auto-locates any skill folders in it, and lists them in a dropdown — point it at undercutsh/firstpass and skills/firstpass/ shows up ready to import.
Bolt itself doesn't expose which underlying LLM handles a given prompt — you choose the Standard or Max agent, not a model. So Undercut's tier names here describe agent-tier assignment rather than a model slug swap: cheap/standard maps to letting Standard handle the mechanically verifiable slice of a build, and frontier/apex is the case for reaching for Max — on evidence a check actually failed, not by default.
Install for Bolt
Inside a Bolt project, open Skills, choose Import from GitHub, and paste the repo URL below. Bolt finds the skill folder automatically and lists it in a dropdown — pick firstpass, click Create, then turn the skill on for the project.
Download SKILL.md and use Bolt's Skills panel Import from file option (accepts .md, .mdx, or .zip, up to 256 KB for a single file), or paste its contents into Write manually if you'd rather not connect a repo.
What's still unverified: Bolt says project skills are stored "in your project's code," but its docs don't publish an exact directory path the way OpenCode documents .opencode/skills/ — skills are managed through Bolt's Skills UI, not by writing files into the workspace yourself, so the generic npx skills add undercutsh/firstpass CLI referenced on the main site has no confirmed target here. Use Option 1 or Option 2 above, both directly confirmed against Bolt's own Skills docs.
testing/README.md and the raw JSON in testing/results/node src/main.js --mockZero lock-in. It's a skill Bolt reads on match — turn it off in the Skills panel and you're back to status quo.
How it works
The Undercut Rubric · v1This is a named, versioned spec — not internal logic we could quietly change. When the rubric changes (a new flag, a different cap), the version number moves and the changelog says why.
Every unit of work gets scored against six flags, then assigned the cheapest tier that can plausibly handle it. It only moves up a tier when something objective proves it needs to — a failed check, a measured disagreement, an explicit uncertainty flag. It never moves up on a guess, and it never moves back down mid-task.
0 flags → cheap · 1–2 → standard · 3+ or any ownership/judgment call → frontier. Apex only when you can write one sentence stating why the marginal intelligence pays for the cost.
Cheap-to-verify ⇒ cheap-to-generate. If output can be checked mechanically, it starts at the lowest tier regardless of how hard it looks — verification catches failure. Only unverifiable work needs to start high.
The next tier up gets only the failed or uncertain items, plus verification notes. It resolves the residue — it never redoes the batch.
Never de-escalate mid-task. Max one retry per tier. Anything still unresolved goes to a single batched apex tie-break call. One hard file in a 700-file job doesn't drag the other 699 up a tier.
unit of work
|
6-flag rubric
|
+---+----+
| 0 flags|--> cheap
| 1-2 |--> standard
| 3+/own |--> frontier
+---+----+
| fail x2 / disagree / uncertain
v
escalate +1 tier
(residue only)
|
still unresolved?
v
single batched
apex tie-break
Why it holds up
Even when the rubric flags are scored imperfectly, the escalator still routes work to the right tier almost every time — because a wrong flag only ever costs one extra cheap attempt, never a wrong answer or a big bill.
A stock dispatcher model reproduces the rubric flags imperfectly — Haiku hits 90% agreement, Sonnet 93%. The weakest flag (format-strict) is only 60%. None of that matters: under the shipped policy, both dispatchers still route 100% of units to the correct tier. A wrong flag changes the ladder cap, never the base tier — worst case, one extra cheap attempt.
Every rule is a property of the unit of work — verifiable, ambiguous, blast-radius — never a specific model's known weakness. Vendor cards go stale as models change; work properties don't. It's also hard-won — a format-strict rule that worked on Anthropic backfired on Gemini, which is exactly why the rubric no longer encodes per-vendor behavior.
Honest limits
Not a proxy, not a gateway, doesn't auto-flag in production (Bolt scores the flags itself — measured robust to getting them wrong, see above), and doesn't promise a dollar figure for your workload. It also doesn't prove your number until you run it — every figure here is an observation from our tasks and our graders, not a guarantee about yours. It cannot pick a specific underlying model for you the way it can on a direct-API integration — Bolt only exposes an agent tier (Standard/Max), not a model slug, so read every "cheap/standard/frontier" reference on this page as agent-tier guidance, not a model swap. Full list, with the finance/procurement note and the paid-tier disclosure, is on the main page.
Nothing about this page expires. What does keep happening is the token bill, one session at a time, on whatever Bolt is currently doing with mechanical work.