Undercut for Augment Code

Augment already discovers AGENTS.md on its own. Give it one that stops overpaying.

Undercut is a free, MIT-licensed policy file loaded through Augment Code's own documented context mechanisms — hierarchical AGENTS.md discovery, or an explicit Workspace Rule in .augment/rules/ — cheap tier first, escalate only on evidence, never on a vibe. Same mechanism whether you're in the VS Code/JetBrains extension or the Auggie CLI. See below for exactly how.

Install for Augment Code See the benchmarks
Works anywhere a routing policy can be read
Claude Code Codex Cursor Copilot OpenCode Augment Code

How this maps onto Augment Code

Two overlapping context systems, both documented, both confirmed.

Per Augment's own Rules & Guidelines docs, Augment supports hierarchical discovery of AGENTS.md and CLAUDE.md: "when you work on a file, Augment looks for AGENTS.md and CLAUDE.md in the file's directory" and walks up the directory tree, checking each parent directory for these files. That's always-on context, loaded with no special frontmatter and no flag to remember — the same mechanism whether you're in the VS Code/JetBrains extension or the Auggie CLI.

Separately, Augment ships a dedicated Rules system: named files under .augment/rules/ (workspace-scoped) or ~/.augment/rules/ (user-scoped, "always treated as Always type"), plus the legacy .augment-guidelines file at the repo root, which the docs say "will continue to work exactly as before" if you already use it. Each workspace rule carries YAML frontmatter declaring its type — Always (included in every prompt), Manual (attached with an @-mention), or Auto (attached automatically when its description field matches the task). Unlike AGENTS.md/CLAUDE.md, the docs are explicit that "files in .augment/rules/ are only loaded from the workspace root, not from subdirectories" — no walking up the tree. User Guidelines cap out at 24,576 characters; Workspace Guidelines plus Rules combined cap at 49,512, with the docs giving an explicit eviction order under that limit: manual rules first, then always+auto rules, then .augment-guidelines last.

The Auggie CLI's own CLI rules docs fold both systems into one explicit precedence order: a --rules flag first, then CLAUDE.md, then AGENTS.md, then the workspace .augment-guidelines file, then the workspace .augment/rules/ folder, then user rules under ~/.augment/rules/ last. The same docs note one CLI-specific gap: "manual rules are not supported in the CLI" — a rule typed manual is silently skipped there, since there's no @-mention interface in a terminal.

Undercut's tier names — cheap, standard, frontier, apex — stay generic on purpose. Augment runs on its own hosted models by default but supports bringing your own API keys for several providers, so models.md gives a rule of thumb rather than one fixed mapping. Nothing here sits between Augment and its backend; it's a markdown file Augment's own context loader reads — no proxy, no network hop, nothing to route around if you remove it.

Install for Augment Code

Free. MIT. Nothing installs, nothing proxies your traffic.

Option 1 — AGENTS.md (recommended, lowest friction)

Append the policy to your repo's AGENTS.md (creating it if you don't have one). No frontmatter to match, no directory to create — Augment's hierarchical discovery picks it up for both the IDE extension and the Auggie CLI as soon as you're working anywhere under this directory.

$ curl -fsSL https://raw.githubusercontent.com/undercutsh/firstpass/main/skills/firstpass/SKILL.md >> AGENTS.md

Option 2 — explicit Workspace Rule, always-on

If you'd rather have it guaranteed always_apply instead of relying on hierarchical discovery from wherever you happen to be working, drop it into .augment/rules/ with Augment's own frontmatter key. The skill's own SKILL.md frontmatter uses name/description rather than Augment's type key, so this strips the original frontmatter block and replaces it before appending the body.

$ mkdir -p .augment/rules && { printf '%s\n' '---' 'type: always_apply' '---' ''; curl -fsSL https://raw.githubusercontent.com/undercutsh/firstpass/main/skills/firstpass/SKILL.md | tail -n +5; } > .augment/rules/undercut.md

No npx skills add path yet. skills.sh doesn't list Augment Code as a supported install target as of this writing — the manual options above, straight into Augment's own documented mechanisms, are the confirmed way in for now.

Validate it yourself

  1. 1Read the published results — testing/README.md and the raw JSON in testing/results/
  2. 2Reproduce for free, no API key, no spend: node src/main.js --mock
  3. 3Start a task in Augment (extension or auggie) and check whether it references the routing policy before starting mechanical work

Zero lock-in. It's a markdown file Augment's own context loader reads — delete it, and you're back to status quo.

How it works

The Undercut Rubric · v1

Six flags assign a tier. Three triggers are the only way up.

This 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.

unit of work
6-flag rubric
0 flags
cheap~90% of units land here ✓
1–2
standard
3+/own
frontier
↑ escalate +1 tier only on: fail ×2 · two runs disagree · tagged "uncertain" residue only — never redoes the batch
See the rubric

Step 1 — Base tier, six-flag rubric

Unverifiable — can output be checked mechanically? (tests, schema, diff, grep)
Ambiguous — one right answer, or several defensible ones?
Blast — reversible? touches money, auth, user data, production, deletes?
Cross-cutting — one file/source, or reasoning across many?
Novel — pattern-following, or genuinely new design?
Format-strict — must output match an exact schema?

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.

The override — single biggest lever

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.

Step 2 — Escalate exactly one tier, on evidence only

  • Verification fails twice at the current tier
  • Two cheap-tier runs disagree on ambiguous-flagged work
  • The worker tags an item "uncertain"

Residue-only handoff

The next tier up gets only the failed or uncertain items, plus verification notes. It resolves the residue — it never redoes the batch.

Hysteresis — guardrails

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

Flags steer. Verification and escalation decide.

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.

See the data

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.

Haiku dispatcher
90% flag agreement
100% tier-match
Sonnet dispatcher
93% flag agreement
100% tier-match

The rules are about the work, not the model.

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

What this doesn't do.

Not a proxy, not a gateway, doesn't enforce anything at the network layer, and doesn't auto-flag in production — Augment scores the flags itself (measured robust to getting them wrong, see above). It also doesn't pick a model for you: Augment runs its own hosted models by default, and resolving each tier to a concrete choice is still governed by Augment's own model settings, not by this policy. The Rules & Guidelines mechanics, character limits, and eviction order described above come straight from Augment's own current docs (the setup-augment/guidelines page and the CLI's separate rules page), but we haven't independently run this skill inside a live Augment session end-to-end — treat the "Validate it yourself" steps above as the way to confirm that for your own setup. Doesn't promise a dollar figure for your workload, and doesn't prove your number until you run it — every figure here is a reproducible observation from our tasks and graders, not a guarantee about yours; verification is not proof, it's a reproducible data point you can run yourself. Full list of general limits, with the finance/procurement note and the paid-tier disclosure, is on the main page.

Undercut the top tier. Not the quality bar.

Nothing about this page expires. What does keep happening is the token bill, one session at a time, on whatever Augment is currently doing with mechanical work.

View on GitHub