Case study Part 1 of 4 · the testbed
Melvor Idle, the testbed
Most of this site's operations evidence comes from one agent: Claude playing the browser game Melvor Idle for days, with Jev making the judgment calls and plain code doing everything computable. This four-part case study drops the generic "jobs and supplies" language and shows the real thing: the game, the wiring, the cascade, and every push-down that taught it something.
The testbed
What an idle game is, the skills and chains, the character, and how the agent is wired.
Part 2Why a game?
Why Melvor is a good place to learn the cascade, and how it compares with the email project.
Part 3The cascade, built
Per-tick flow, color-coded pseudo-code, the questions Jev answers and the measured rates.
Part 4Push-downs
Fifty-one resolved escalations: who caught each one, and which tier the fix landed in.
What an idle game is
An idle game plays itself once you point it at something. In Melvor Idle you choose one action, such as cutting a tree, smelting a bar or fighting a monster. The game repeats it on a timer, every few seconds, until you stop it or something runs out. Each repeat gives experience points (XP) in a skill and usually an item that lands in your bank. Levels unlock better actions. The level curve is exponential, so later levels take hours or days of one action.
Three properties matter for an agent:
- One active action at a time. Woodcutting and fighting can't run together. Every choice of what to run is a real trade-off.
- Actions keep going without you. A batch of 1,000 arrows or a two-hour mining run needs no attention once started. Some systems, such as Farming plots and the Township, grow in the background whatever else you're doing.
- The state is fully readable. The game runs in the browser tab as plain JavaScript objects: every item, recipe, drop table, monster stat and timer. Code can compute almost anything a player would estimate.
Skills
| Kind | Examples | What they do |
|---|---|---|
| Gathering | Woodcutting, Mining, Fishing, Thieving | Turn time into raw materials: logs, ore, coal, raw fish |
| Artisan | Smithing, Fletching, Crafting, Cooking, Herblore | Turn materials into better materials, gear, ammunition, food and potions |
| Combat | Ranged, Attack, Strength, Defence, Hitpoints, Magic, Prayer, Slayer | Fight monsters for XP and drops; ranged combat burns one arrow per shot |
| Passive | Farming, Township | Plots and a town that grow on their own clocks, beside whatever is running |
| Course | Agility | Obstacles you pay to build; once built, their bonuses apply everywhere |
Combat in one paragraph
You pick a monster in an area, and both sides attack on timers. Your accuracy against its evasion decides how often you hit; your max hit and its hit points decide how many hits a kill takes. You eat food to heal. A ranger uses an arrow on every attack unless an ammo-preservation bonus saves it, so ammunition is a running cost. Dying loses a worn item. Kills drop loot (leather, raw meat, bones, gems, seeds, rare equipment) into a loot container that throws away new drops once it's full.
Production chains: why it's a supply-chain game
The agent's character is a self-sufficient ranger: it makes nearly everything it uses and buys only lasting upgrades and raw materials it can't gather (feathers, bowstrings). That turns one goal, "get better at Ranged", into a web of chains that all have to stay fed:
Ammunition
One Adamantite Bar needs six Coal, and a 1,000-arrow restock took about 67 bars and 400 Coal. A refill touches four skills before a single arrow is fired.
Weapons, armor and food
Each chain has computable economics (XP per material, materials per hour, arrows per kill, food per arrow) and a few real judgment calls on top: which chain to feed now, what a material is worth keeping, how much risk a fight is worth.
Milestones: the character's plan
Claude owns the character's direction and writes it down as milestones in chapters: concrete, code-checkable goals such as "Ranged 55", "1,000 Adamant Arrows (quiver + bank)" or "wear the Yew Longbow". Code checks which are done; the decision model works on the first unfinished one; when a chapter closes, the watcher wakes Claude to write the next.
| Chapter | Theme | Examples |
|---|---|---|
| 1 | First steps | Fill a quiver, first hunt, a full leather set, an Oak bow |
| 2 | Iron ranger | 300 Iron Arrows, Ranged 20, Willow Shortbow |
| 3 | Hard-leather ranger | Cooked food stock, Hard Leather armor, Ranged 30, Steel Arrows |
| 4 | Steel ranger | Hard Leather Body, Silver Emerald Ring, Maple Longbow, Ranged 40 |
| 5 | Mithril ranger | Emerald necklace for ammo preservation, 1,000 Mithril Arrows, Ranged 50 |
| 6 | Adamant ranger | Mining 70, Smithing 58, 1,000 Adamant Arrows, Ranged 55 |
| 7 | Yew ranger | Agility 10 and 20 with a second course obstacle, Woodcutting 60, Fletching 70, Yew Longbow, Ranged 60 (in progress), then Pipe Balance and Agility 30 |
Beside the chapters sit standing goals that keep supplies healthy: arrows of the current tier (raised to 2,000 for the long Ranged grind), 150 cooked food, and seed stocks for the allotment and herb plots. By October 14, 2026, 37 of the 40 milestones were done: combat level 56, with Ranged 59, Fletching 70, Smithing 60 and Farming 13, all from a fresh start five days earlier. The town, farm plots and Agility course run beside the milestones as code policies.
How the agent is wired
Claude plays the real web game in a Chrome tab and clicks through its UI like a person. It never edits the save or calls game functions to skip work. Five parts do the rest:
Game tab + jevkit
A script installed in the page. It reads state, lists legal actions, plans multi-step chains, locates buttons on screen, verifies outcomes, and runs a 1-second guard.
decisions
Bridge + brain
A small local server. The brain turns state into questions, applies code policies, combines Jev's scores with explicit weights and logs every tick.
per tick
Decision model
Scores targets and one-off actions, rates item usefulness, says how soon to look again, and flags novelty and doubt.
Watcher
Polls the bridge every 2 seconds and prints one line per new condition: idle, escalate, stale, hidden tab, milestone, low HP, old save.
wake it
Claude (Claude Code)
Runs a self-paced loop. On each wake it ticks, clicks the planned steps, checks them, and turns each escalation into a fix in code or context.
questions
The owner
Asks questions, approves policies with real trade-offs, keeps the window visible, and owns money and account decisions.
Jev cost about $0.0009 per tick in the first session's measurement. Each tick is now two calls: the decision and a separate doubt check. Claude's wakes, not Jev calls, are the scarce resource. That shapes a lot of the design in part 3.
Next: Why a game? What makes Melvor a good place to learn the cascade, and where it falls short of real stakes.