Skip to the page
It's Decomplicated
Claude Setup

Set Claude up for decomp work

Which model to use, how much effort to set, and which tools to install. Each choice comes with its reason, for both Max plans.

The short answer

Six lines cover most days.

  • Lead with Opus 5.5. Claude Code starts on it.
  • Give bulk work to Sonnet 5.5. That is many small units, each with a pass or fail check.
  • Give the records to Haiku 5.5. Those are ledgers, notes and summaries.
  • Save Fable 5.2 for the project plan and the few units nothing else can crack.
  • Start effort at medium. Use high to study the game file, build the runtime, hunt bugs or work hard units.
  • Not sure? Use Opus 5.5 at medium. Move up when Claude had the facts and still got it wrong. Move down when the work is routine.

The runtime is the code that stands in for the console.

Max 20x (now called Ultra)

Plan the project in one Fable 5.2 session. Lead with Opus 5.5. Run bulk workers on Sonnet 5.5. Send a unit to Fable 5.2 after three to five failed tries.

Max 5x (now called Max)

Plan and lead with Opus 5.5. Use Sonnet 5.5 for setup, bulk units and checking. Run fewer workers at once. Send only the last few failing units to Fable 5.2.

The models

Claude Code can run four current models. Each can hold a million tokens, which is roughly 555,000 words. What a session holds is called its context.

ModelWhat Anthropic says it is forSpeedCostUse it for in decomp work
Claude Fable 5.2
/model fable
The hardest thinking and very long jobs. Anthropic calls it its most able model.MediumHighest. On Max plans it uses your weekly limit faster, and it is capped at half of that limit.Planning the whole project. The few functions and bugs that nothing else can crack.
Claude Opus 5.5
/model opus
Long coding jobs in a real project. This is the model Claude Code starts with.MediumAbout half the price of Fable.Studying the game file, writing the runtime, finding bugs, and leading other sessions.
Claude Sonnet 5.5
/model sonnet
A mix of speed and skill for everyday coding.FastAbout a quarter of the price of Fable.The bulk work: many small units, each with a strict check. Also setup scripts.
Claude Haiku 5.5
/model haiku
Many small, quick jobs.FastestLowest by far.Notes, ledgers and summaries. The plainest bulk units once your check is strict.

Anthropic's own advice

Anthropic's model guide says: "If you're unsure which model to use, start with Claude Opus 5.5 for most workloads."

Its Claude Code blog names two signals. Go up a model when Claude had the facts, "clearly tried and still got it wrong". Go down "when the work is routine".

The blog also says the fix is often in your task or your CLAUDE.md, not in the model.

How to switch

/model sonnet
claude --model sonnet

Type the first line inside a session. Use the second to start one.

/model saves your pick for new sessions too. Press s in the picker to switch for this session only.

Fable is never the default

Anthropic's docs say: "No Fable model is the account-type default on any plan or provider." Start that one session with claude --model fable. Then your saved default does not change.

Effort

Effort is the second dial. The model is who does the work. Effort is how much work it does.

Anthropic's blog says effort covers "the number of files read, tools used, and how many steps it takes". One blog example used "roughly 7x more tokens" at high effort than at low.

EffortWhat it doesWhen to use it here
lowQuick answers. Claude checks less of its own work.Almost never here. At low effort the models skip checks, and checks are the whole method.
mediumThe normal setting in Claude Code for every current model.Work with a clear goal and a strict check: setup and bulk units.
highClaude tests more edge cases and checks more before it answers.Studying the game file, runtime work, bug hunts, and hard units.
xhighDeeper thinking. Uses many more tokens.Only for a unit or bug that already failed at high.
maxThe most thinking. Anthropic warns it can overthink and gives small gains.Not a habit. One stubborn problem at a time, and only after xhigh failed.

How to set it

/effort high
claude --effort high

These work like the model commands. /effort status prints the level in use.

To save a level for one model, put this in a settings file:

{"modelSettings": {"claude-opus-5-5": {"effortLevel": "high"}}}

The settings keys do not take max.

What the docs warn about

  • Every current model starts at medium in Claude Code.
  • The same name is not the same amount. The docs say each model has its own scale.
  • low skips checks. At low, Sonnet 5.5 "can skip verifying a change". Haiku 5.5 is "more likely to skip a search, stop early, or skip a check".
  • max can overthink. The docs say it "may show diminishing returns and is prone to overthinking". That means more cost for little gain.
  • Above high, Fable 5.2 gains are uneven. Anthropic says: "Most of the gain in capability is already present at high".

The one keyword

ultrathink is the only thinking keyword. Put it in a prompt for deeper thinking on that one turn. "Think hard" is not a keyword. Claude Code treats it as plain text.

Which model and effort for each job

Guides on this site name a job, never a model. This table turns each job into a model and an effort.

JobWhat it isMax 20x (now called Ultra)Max 5x (now called Max)
Plan the project
scope
Pick the approach. Study what already exists. Write the plan and the Scope Contract.Fable 5.2
effort high
One session. This choice shapes months of work.
Opus 5.5
effort high
Use Fable 5.2 for this one session if you have weekly room.
Set up the project
setup
Install tools. Write the build script and the check script. Lay out the folders.Opus 5.5
effort medium
Sonnet 5.5
effort medium
Study the game file
analyze
Map the code. Find library code. Name functions. Work out data layouts.Opus 5.5
effort high
Opus 5.5
effort medium
Raise to high for function edges and data layouts. A mistake there spreads.
Bulk units
bulk
Many small, similar units. Each has its own pass or fail check. Runs in parallel.Sonnet 5.5
effort medium
Haiku 5.5 for the plainest units.
Sonnet 5.5
effort medium
Fewer workers at once. Haiku 5.5 for the plainest units.
Hard units
hard
The units that bulk workers could not finish in three to five tries.Fable 5.2
effort high
Go to xhigh only after a failed try at high.
Opus 5.5
effort high
Send only the last few that still fail to Fable 5.2.
Build the runtime
runtime
Write the stand-in for the console: graphics, sound, input, files.Opus 5.5
effort high
Opus 5.5
effort medium
Raise to high for timing and graphics bugs.
Find a bug
debug
Find why it crashes or draws wrong. Use logs and traces. Prove the cause before any fix.Opus 5.5
effort high
After two failed tries with full evidence, move to Fable 5.2.
Opus 5.5
effort high
One bug at a time.
Check the work
verify
A fresh session re-runs the check and reads the changes. It hunts for cheating.Opus 5.5
effort medium
Always a new session, never the one that did the work.
Sonnet 5.5
effort high
Always a new session, never the one that did the work.
Keep the records
docs
Update the ledgers, notes and summaries.Haiku 5.5
effort medium
Haiku 5.5
effort medium

Use the same pairing for the same job every time.

A strict check makes a cheaper model good enough

Maurice Heumann ran up to 16 agents on one PC game. Before he had a pass or fail check, cheap models "produced extremely bad results". With a byte check on every function, they had "enough feedback to produce incredible results".

He ended with 14 agents on a cheap model and 2 on Opus 5.5. So bulk units go to Sonnet 5.5.

Most wins come in the first few tries

Macabeus tested 60 functions from two decomp projects. Sonnet 4.6 matched 74% within 12 tries. He found that "nearly half of the matches happened on the first attempt".

After three failed tries, the chance of a match fell to about one in four. So a bulk worker stops after three to five tries.

A stronger model costs more for each finished function

Fable 5 matched 5 of those functions that Sonnet failed every time. It was also "3.5-4.6x more expensive than Sonnet in this case". Macabeus advised keeping it "as a last resort for the genuinely difficult work".

Mistakes in study and planning spread

A function cut at the wrong place cannot be matched honestly. So the study job stays on Opus 5.5.

The plan shapes months of work. Anthropic's docs say Fable suits "tasks larger than a single sitting". So Max 20x gives the plan one Fable 5.2 session.

The checker must be a fresh session

The docs say a fresh reviewer helps "because it hasn't seen your reasoning". But it must run the check. Heumann's first month had a reviewer agent and no machine check. He threw that code away.

What these numbers cannot tell you

The tests used older models: Sonnet 4.6 and Fable 5. We found no public test of Sonnet 5.5 or Fable 5.2 on decomp work. Treat the pattern as a guide, not the numbers.

Some units will need a person. In one finished N64 project, about 4.8% of matching commits needed an expert.

Your plan

Anthropic renamed both plans. Max 5x is now Max. Max 20x is now Ultra.

What you getMax 20xMax 5x
Price each month$200$100
Weekly limit10 times the Pro plan5 times the Pro plan
Five-hour limitNone on verified accountsYes, 5 times the Pro plan
Opus, Sonnet and HaikuIncludedIncluded
FableIncluded, up to half the weekly limitIncluded, up to half the weekly limit

Fable draws from the same weekly limit and uses it up faster. At half the weekly limit, Fable stops. Then you switch model or pay with usage credits. The limits are shared with the Claude apps.

No one publishes the real numbers

Anthropic gives no token or message counts. Its pricing page says there is "no fixed message count". The old name said 20x, but the pricing page says 10 times Pro each week. No page we read explains that.

What people report about running out

  • Chris Lewis, on an N64 game: "An unattended Opus task could burn through the Claude 20x Max plan in a matter of days". He moved cleanup and docs to a cheaper model.
  • Matthew Stanley, on a PS1 recompiler: "I regularly hit usage limits on Claude's $100/month plan".

Habits for each plan

Max 20x

  • Start with one lead and three or four bulk workers.
  • Use Fable 5.2 for the plan and the hard queue.
  • Overnight, run bulk units on Sonnet 5.5 with a strict check.
  • Do not leave Opus 5.5 or Fable 5.2 running alone all night.

Max 5x

  • Start with one lead and one or two bulk workers.
  • Use Fable 5.2 only for the last few failing units.
  • Overnight, run one bulk worker on a short list of units.
  • You also have a five-hour limit. Plan your day in blocks.

These worker counts are starting points, not published numbers. Lewis ran agents in three, then four, copies of his repo. Max 5x has half the weekly room. Each platform guide gives its own counts.

Watch your usage

  • /usage shows your plan usage bars. /rate-limit-options shows your choices at a limit.
  • At a limit you can wait, upgrade, or turn on usage credits. Credits cost real money at API rates.
  • If the Fable row in /model says "Requires usage credits", Fable costs extra. A claude -p run then bills it without asking.
  • If ANTHROPIC_API_KEY is set, Claude Code bills that key and not your plan.

What to install first

Install these six things on your Windows 11 PC before you open a platform guide.

InstallWhy you need itWhat to know
Claude CodeThe agent you direct.Run claude --version. Fable 5.2 needs v2.1.321 or later. This page was checked on v2.1.325.
GitIt saves every step and makes worktrees.Claude Code on Windows uses Git Bash for hook commands and for its Monitor tool.
PythonMany decomp tools are Python scripts.splat, m2c and asm-differ are three of them. For the version, see your system's guide.
WSLMany N64 projects are built for Linux first.You have it already. One GameCube project built on dtk-template says native Windows tools are best. See your system's guide.
A C and C++ build chainRecompilers and runtimes are C or C++ projects.Most recompilers we read about build with CMake. The compiler differs by tool. See your system's guide.
GhidraIt lists the functions in a game file and decompiles them.One PS1 author found that Claude without Ghidra "required constant redirection".

Should Claude Code run in Windows or in WSL? Run it where the project's tools run. Your system's guide says which.

Our research did not test these install steps. Follow each tool's own page. The tools for each system are on Tools and in the platform guides.

The project files to make on day one

State lives in files, not in the chat. A new session should be able to pick up from these files alone.

FileWhat it holdsWho changes it
CLAUDE.mdShort standing rules and the check command.You, when Claude makes the same mistake twice.
SCOPE.mdThe goal, the game version, the milestone and what is out of scope. See the Scope Contract.Only you.
PROGRESS.mdWhat is done, what is next, and dead ends.Claude, at the end of each session.
A function ledgerOne row for each function, with its size and a status.Claude, after a check passes.
notes/parking-lot.mdSide ideas and bugs that are not part of the task.Claude adds lines. You decide what happens.

Where CLAUDE.md is read from

Claude Code loads CLAUDE.md when a session starts. It looks in three places you will use:

  • ./CLAUDE.md in the project folder. Write this one first.
  • ~/.claude/CLAUDE.md for rules you want in every project.
  • ./CLAUDE.local.md for private notes in this project.

Claude Code joins all the files it finds. After /compact, it reads the project file from disk again.

Why short beats long

The docs say to "target under 200 lines". Longer files "consume more context and reduce adherence". Adherence means how well Claude follows the rules.

Write only what Claude cannot find by reading the repo. The docs call the check command "the single most useful line".

CLAUDE.md is advice, not a lock. The docs call it "context, not enforced configuration". If Claude keeps missing a line, move it into a hook or a deny rule.

CLAUDE.md starter
# Rules for this project

@SCOPE.md

`SCOPE.md` holds the goal, the game version and the milestone.
Only the owner changes it. If a task needs a change to it, stop and ask.

## The check
- Build: `<build command>`
- Check: `<check command>`
- A task is done only when the check passes. Paste the check output as proof.
- A clean build alone is not proof.

## Every task
- Work on one task card. Edit only the paths its FENCE line names.
- Start each report with DONE, PARTIAL or BLOCKED.
- If you are blocked, stop. Say what blocked you and what you tried. Do not work around it.
- Put side ideas and other bugs in `notes/parking-lot.md`. Do not act on them.
- Ask before you add a tool, a refactor or a feature the task card does not name.

## Files that are proof
- Do not edit: `<original assembly>`, `<expected hashes>`, `<check script>`, `<generated code>`.
- Why: these files prove the work is right. A change to them makes every result worthless.
- To change generated code, change the generator and run it again.
- Game files stay outside the repo. Do not copy them in.

## State lives in files
- `PROGRESS.md`: what is done, what is next, and dead ends.
- `<function ledger>`: one row per function, with a status column.
- Update both before you end a session.

# Compact instructions
Keep the task card, the last check output and the list of changed files.

Before you use it: swap each part in angle brackets for your own command or path. The @SCOPE.md line pulls that file into every session.

Skills, subagents, hooks and MCP servers

Claude Code has four add-ons. Add each one when you need it, not on day one.

Anthropic's rule of thumb

A rule Claude got wrong twice goes in CLAUDE.md. A procedure you repeat becomes a skill. A thing that must happen every time becomes a hook. A noisy side task goes to a subagent.

Skills

A skill is a folder with a SKILL.md file of steps. Claude loads the steps only when it uses the skill. Use one for a procedure you repeat, like the loop for one function.

Read any skill from someone else before you add it. The ones we reviewed are on Tools: skills.

Subagents

A subagent is a helper with its own context. It does a side task and sends back a summary. Use one to read a big listing, or to check work with fresh eyes.

It does not see your chat. The docs say you get "a fresh pair of eyes out of it, but not a smarter answer".

Hooks

A hook is a command Claude Code runs by itself at a set moment. A PreToolUse hook can block a tool call. Use hooks to guard the proof. One N64 project blocks edits to its hash file and assembly this way.

Hooks are not airtight. That project's author saw Claude write a script to change a guarded file.

MCP servers

An MCP server plugs an outside tool into Claude. Ghidra and the debugger in an emulator are two. Several strong projects used plain scripts and no MCP. Anthropic's docs say to prefer command-line tools when they exist.

Where each one lives

Add-onWhere it lives, or the command that adds it
Skill.claude/skills/<skill-name>/SKILL.md for this project. ~/.claude/skills/<skill-name>/SKILL.md for all projects. Run it with /skill-name.
SubagentA Markdown file in .claude/agents/ or ~/.claude/agents/. It needs a name and a description. Add model: haiku to keep it cheap.
HookThe hooks key in .claude/settings.json. A hook that exits with code 2 blocks the action. /hooks lists them.
MCP serverclaude mcp add [options] <name> -- <command> [args...]. Add --scope project to save it in .mcp.json. /mcp shows your servers.

Permissions

A permission mode sets what Claude may do without asking you. Deny rules set what it may never do.

ModeWhat runs without asking
default (shown as Manual)Only reads.
acceptEditsReads, file edits and common file commands in the project folder.
planReads. No source edits until you approve the plan.
autoEverything, with safety checks in the background.
dontAskReads and tools you approved before. All else is refused.
bypassPermissionsEverything. The docs say: "Isolated containers and VMs only".

A terminal session starts in auto mode, from v2.1.283 on. A second model reviews each action first. The docs say it "does not guarantee safety". Press Shift+Tab to change mode.

Use plan mode for big work. Start it with /plan or claude --permission-mode plan. Do not use bypassPermissions on your own PC. In Heumann's project, agents "periodically wiped the VM because of malformed commands".

Deny rules for files Claude must never edit

Put deny rules in .claude/settings.json in your project. The docs say they "hold in every permission mode". Claude Code enforces them, not the model.

{
  "permissions": {
    "deny": [
      "Edit(./asm/**/*)",
      "Edit(./expected/**/*)",
      "Edit(./generated/**/*)",
      "Edit(./tools/check.sh)",
      "Read(./**/build/**/*)"
    ]
  }
}

Change the paths to match your project. The Edit lines guard the assembly, the expected hashes, machine-made code and the check script. The Read line keeps build output out of the context.

We did not run this example, so test it. Ask Claude to edit a guarded file and see it refused. /permissions lists your rules.

A deny rule is not a wall

Claude can still reach a file through a shell command. The docs say a Bash rule "isn't a security boundary around the program". Add a PreToolUse hook, and have the fresh checker read the changes.

The sandbox is not on plain Windows

Claude Code has a Bash sandbox that limits what shell commands can reach. The docs say: "On native Windows, Claude Code runs commands unsandboxed". To use it, run Claude Code inside WSL 2 and type /sandbox.

Running sessions side by side

Bulk work goes faster with several workers. Each worker needs its own copy of the files and one small task.

Worktrees

A worktree is a second copy of your repo on its own branch. Two sessions in two worktrees cannot write over each other.

claude -w unit-a
claude --worktree unit-b

Each command makes a folder under .claude/worktrees/ and starts Claude there. A new worktree has no ignored files, so a build may miss your game files. List small files in .worktreeinclude to copy them in.

After a merge, run the full check again. One project's notes say: "A match proven in an isolated worktree is not a match on the merged branch."

Background and unattended runs

What you wantThe command, and what to know
A background sessionclaude --bg starts one. Put your prompt after it in quotes. claude agents shows them all. This view is a research preview.
A one-shot runclaude -p runs one prompt and exits. Put your prompt after it in quotes. It suits one unit for each run. It starts in Manual mode.
Tool limits--allowedTools names the tools a claude -p run may use. Add --permission-mode dontAsk so all else is refused.
A cap on turns--max-turns caps a run. It is in the docs but not in claude --help on v2.1.325. We did not run it.

Skip --bare on a Max plan. It needs ANTHROPIC_API_KEY, which bills the API. Start small, as the docs say: "Try it on three files first".

Subagents and workflows

One session can run 20 subagents at once by default. A dynamic workflow is a script Claude writes to run dozens of them. Say "use a workflow" to start one. Claude Code warns above 25 agents or a projected 1.5 million tokens.

The docs say to "run the workflow on a small slice first".

What it costs

The docs say: "Running several sessions or subagents at once multiplies token usage". Each subagent and background session spends from your plan limits.

Max 20x

Three or four worktrees to start. Try a workflow on five units before you give it fifty.

Max 5x

One or two worktrees to start. Keep workflows small, or skip them.

Keep the context small

The context is all the text Claude holds in a session. Every request sends the whole of it again.

A million tokens is not a reason to fill it. The docs say "you can still pay for context you don't need".

  • One task for each session.
  • /clear between tasks. It starts a new chat with empty context. The docs say: "It costs nothing".
  • /context shows what is filling the context.
  • /compact swaps the history for a summary. On a long session it "is itself a big request". Anthropic suggests a brand new session instead.
  • Give paths, not pastes. Lewis put it this way: "don't provide unasked-for context".
  • After two failed corrections, run /clear and write a better prompt.

Long runs drift. Heumann's team made compaction start at 42% full instead of 90%. In Claude Code, /autocompact 500k makes it start sooner.

A rule you only said in chat can vanish at compaction. Put lasting rules in CLAUDE.md.

When Claude says no or switches models

Two things can stop a session you did not plan for.

1. The rule about recreating a game

Game Developer reported on 2026-10-30 that a rule was added to Claude Code's prompt on 2026-10-27. The rule reads: "Do not build a recreation of a specific existing game, even if it is renamed or called original."

Addy Osmani of Anthropic said it was added "to steer it away from recreating someone else's specific game".

  • The report does not mention decompiling or recompiling.
  • No source we found says how the rule applies to decomp work.
  • So Claude may refuse a decomp task. We cannot tell you when.

This site offers no way around it

If Claude says no, treat it as a BLOCKED report. Write down what you asked and what Claude said. Do not reword the task to slip past the rule. That task may not be possible with Claude Code.

2. Claude may switch to an older model

Fable 5.2, Opus 5.5 and Sonnet 5.5 run with safety checks. The docs say these "most often flag cybersecurity and biology content". A flagged request runs again on an older model, and the session stays there.

  • From Fable 5.2 or Opus 5.5, a security flag moves you to Opus 4.8.
  • It can happen on the first request, since that carries your CLAUDE.md and git status.
  • The docs say this is expected, "not an account flag".

How to notice. Run /model to see which model is picked. Run /effort status to see the effort.

How to switch back. The docs say: "To return to your original model, run /model."

How to be asked first. Put "switchModelsOnFlag": false in your settings, or use /config. Claude then asks each time. A flagged subagent cannot ask, so it fails.

Not tested on decomp projects

Our research did not test whether a game decomp repo sets off these checks. The docs do say that harmless security work can set them off.

How this page was checked

Every Claude fact here was read on 2026-11-13. Nothing comes from memory.

From Anthropic's own pages: models, effort levels, plan limits, commands, settings and safety checks.

Confirmed by running Claude Code 2.1.325 on Windows 11, with read-only commands:

  • claude --version printed 2.1.325 (Claude Code).
  • claude --help lists --model, --effort, --permission-mode, -p, -w, --bg, --allowedTools and --bare.
  • claude mcp add --help lists --scope and --transport.

Could not be verified

  • How well Claude does at decomp work. No Anthropic page says.
  • Real usage numbers. Anthropic only compares each plan to Pro.
  • Why "Max 20x" became 10 times Pro.
  • The terms of the Fable 5.2 launch offer.
  • Speed in tokens per second.
  • --max-turns. It is in the docs but not in claude --help.
  • Anything typed inside a session. Slash commands, hooks, auto mode and subagent limits come from the docs only.
  • The deny rule example. It follows the docs but was not run. An Edit rule may not cover the Write tool.
  • Model switching on decomp repos.
  • The game rule. It rests on one news report.
  • Worker counts. They are starting points, not measured limits.
  • Freshness. Fable 5.2 came out four days before this check.

Sources