Brief for Claude Design
The Last Warren · Unstuck Games · updated 2 Oct 2026, 22:10 ET, after your Burrow handoff. Three parts:
- What changed since your last brief. Read this first.
- The whole game, at red-team depth: every rule, the maths, the search AI, the tuned numbers, and what the machines found.
- The standing brief: what's fixed and what's yours, every state, the asset manifest, and what to design next.
1 · What changed since your Burrow handoff
Ported as you wrote it.
board.js runs unchanged. ui.js builds your board state from the live game every animation frame and calls LWBoard.draw, and the terrain layer is rebuilt when the map or the cell size changes. Everything in your paint order works off real state:
- terrain, belief heat (Scout only), tracks, the route (hover preview or committed transit);
- warrens by kind and depth, the siege ring (draws in, then pulses; solid when besieged);
- the four gazes, the watched threads and pips;
- hunters (in reach, on your trail, mustering), the decoy (and
seen), the rearguard (and fighting, for 0.9s after a fight event);
- the troop states, and the light: warm when located, dark when dead, dawn during the retreat.
- Your tokens and type:
style.css is your sheet section by section, with the moments stepper removed. JetBrains Mono and Big Shoulders Stencil Display.
- Your panel, verbs strip, foot and "show the working", with the game's real copy.
Adapted, and why.
- The page is fluid, not fixed at 1440. The board takes the width it's given, at 8–40px a cell (your fractions hold). The panel is 356px beside it, and below 1100px it stacks under the board.
- Reduced motion, which you flagged as unhandled: time freezes at 0, so there's no breathing, pulse or gaze sweep, but the ring is drawn complete and every state cue stays.
- The log is the game's, not the mock's. Your voice was adopted where it fit: "Decoy out. −4. It breaks west." "They take it." "Besieged. Not growing." "Dawn in 3. They turn for the edges." It's chronological and numbered, shows the last 9 lines, and the latest is at full opacity.
- "Show the working" holds seed, rules, player (You play / Bot: …) and New run. "Replay this night" was cut; Jay didn't pick it.
- "Holding · exposed" (in the open) is blood. Your mock had all holding as moss, but out of the trees you're seen and heard, so it's danger. "Holding · hidden" in forest stays moss.
- Your SVG token files are filed, not wired in. The canvas draws the same symbols procedurally. They're kept in
design/burrow-handoff/assets/ for the dialogs and any sprite path later.
New since your mock: gameplay that changed what the screen shows.
- The dawn retreat: in the last 3 ticks the hunters step away and the log says so. Your
light.dawn wash is driven by exactly those ticks.
- Odds everywhere. The odds line now reads "In the open you'd beat 3 sweepers (57%), not 4 (12%)." out of a warren, and prefixes attack odds when a hunter is in reach: "Attacking the hound you'd win (58%). …"
- Intent and verdicts. A click says what you meant before it happens: "Making for the trees to hide. 3 ticks." "Running for the deep Scout warren. 9 ticks." "Into the water, where they can't follow." The hover chip ends in a verdict: probably safer than here · about as safe as here · risky · they'll get there first.
- ⚠ The chips are long now, for example "Defense (holds, slow to leave) · shallow · you 8t · them 8t · they'll get there first". That's a design problem for you: two lines, an icon for the verdict, or shorter kind words.
- The reserve: a
reserve row in the stats ("31 asleep"). At dawn the ones who don't wake go to ground; spends draw on them first. It's the family, made visible, and it has no visual on the board yet.
- Warrens remember you: "growing" now reads "+2 a tick · +3 in 4 · settled 16". Each warren keeps its own settled count, and leaving one costs it 3.
- Heirlooms are multi-select: one per night survived, up to three. The end screen toggles them on (moss wash) and then "Pass on 2 of 3". The dialogs are in your voice but not designed by you.
- Resume: a closed tab resumes exactly where it was. The log's first line says so: "Resumed Bramble I: night 2, tick 6, 22 strong."
2 · The whole game, red-team grade
Code: games/the-last-warren/ on ideas/the-last-warren. Tombstone: Tokyo Jungle (2012). Its organ is that where you settle decides what you become. The values below are the tuned rules (src/tuned.js).
Time and space.
- A 28×18 grid. A night is 54 ticks, with at most 8 nights.
- Entering a tile costs movement points: open 2, road 1, forest 3, lake 6 for the troop and impassable for hunters, mountain impassable.
- Points banked per tick: troop in transit 3, hunters 2, hounds 3.
- Maps are seeded: value-noise terrain from 5 dials (water, relief, cover, roads, warrens), set by 12 frames.
- Warrens are dealt evenly across 4 kinds and rolled for depth, with roads along a minimum spanning tree between them.
The tick, in order.
- Your action.
- Growth or movement.
- Contact.
- The hunters sense, update the belief, then move (or retreat, in the last 3 ticks).
- Contact again, and siege status.
- Reinforcements: one every 11 ticks. Killed hunters respawn after 12.
- Dawn at tick 54.
The troop.
- Growth in a warren: +1 a tick, rising to +2 once that warren is settled 10 ticks and +3 at 20. Nursery adds +1 more. A siege halts growth.
- Specialty: attunes at +0.25 a tick toward the warren's kind and decays ×0.88 a tick otherwise.
- Bonus by kind:
bonus_k = 0.30 × max(in a k-warren ? 1 : 0, carried_k)
- Strength:
size × (1 + C) in general;
- defending a warren:
× fortify(1.04, none in Scout) × (1 + D) × [walls 1.2];
- attacking:
× ambush(0.99) × [teeth 1.2].
- Noise:
√size × depth, where depth is deep 0.45, mid 0.7, shallow 1, multiplied by Combat ×1.44 or Nursery ×1.61. In the open: √size × terrain(open 1, road 1.4, forest 0.6, lake 1.2) × (1 − 0.3·S) × (holding ? 0.7 : 1).
Warren kinds trade off.
- Combat: +30% strength, but loud.
- Scout: shows you their belief map, but has thin walls (no fortify).
- Defense: +30% when they come in, but slow to leave (−2 movement points on your first step).
- Nursery: +1 extra person a tick, but loud.
Hunters.
- Strength:
7.73 × kind × (1 + 0.287 × (night − 1))
- Sweeper: ×1.0, sight 5, sweeps its own sector of the map.
- Tracker (night 2+): ×0.9, sight 4, follows your tracks.
- Listener (night 3+): ×0.8, sight 3, hearing ×1.9, unmuffled by forest.
- Hound (night 4+): ×1.3, speed 3.
- Numbers: 2 at dusk on night 1, +1 a night, plus the reinforcements.
The search AI: a shared Bayesian belief over all 504 cells.
- The dusk prior: warrens only, weighted by your habits (×4 your share of ticks per warren) and by the family (×2 the line's share per kind).
- Hearing, for each hunter each tick: a real roll against
σ((r − d)/0.75), with r = 1.27 × noise × hear. Decoys add their own chance to be heard, and the hunter can't tell which it heard. Then the belief updates: b_i ×= heard ? p_i : 1 − 0.9 p_i.
- Sight: Bresenham line of sight. Mountains block it; forest costs 2 sight per cell and 2 more if you're standing in it.
- Seen: the belief collapses to your cell.
- A decoy seen: it collapses to the decoy, the false lead.
- Every empty open cell they can see: ×0.08. Warrens are never cleared by sight.
- A warren mouth a hunter pokes into: ×0.05.
- Motion model: 17% of each cell's mass diffuses to its neighbours, and 4% of open-ground mass pools back into warrens.
- Targets: belief divided by distance, divided by crowding. Sweepers keep to their sectors; trackers follow fresh tracks (14 ticks).
- Located means the belief at your cell is above 0.5.
Contact, the muster and siege: the rule that holds the game up.
- In a warren they must be within 1 to contact you. In transit they must land on your square. Holding in the open, any contact is a fight.
- Once you're located they muster at 3 blocks, and only go in when
Σ group strength ≥ 1.01 × your defending strength.
- Siege is being located with a hunter within 3. It halts growth, and the "watched" count runs.
- The fight:
mine × U(.75, 1.25) ≥ theirs × U(.75, 1.25). If you win, they all die and you lose 0.30 × theirs / per-person. If you lose, the run ends. Either way the fight is loud.
- Attack: one hunter within 2 blocks.
Spending people (from the reserve first, then the troop; the troop never drops below 2).
- Decoy −4, any time, one alive at a time: runs loud for the warren the hunters will take longest to reach, for 10 ticks.
- Rearguard −5, any time, one at a time: fights the first hunter to reach it. If it wins, the hunter dies; if it falls, the hunter has lost 4 movement points. The fight is loud either way, so it's a false lead.
- Scout −3, while stopped: shows their belief for 10 ticks.
- Dig −8, only while holding, 3 or more squares from a warren: a shallow warren of your strongest attunement, or a Nursery if you have none.
Dawn and the line.
- 33% of the troop wakes for the next night; the rest go to ground as the reserve.
- The draft: dice deal 3 of 8 boons and you keep 1. The boons are brood, hush, teeth, walls, legs, dig deeper, dig and scatter.
- The line: each run is a generation. When a run falls you pass on one heirloom per night survived, up to 3: an attunement (Combat-, Scout- or Defense-born) or a boon you held. A generation that dies on night 1 ends the line.
The machines.
- Hashed, stateless dice: every roll is
hash(seed, purpose, night, tick, id), so a twin replay changes only what it chose to change.
- 11 invariants, all passing.
- A worker-pool sweep runner, at about 1,300 games a second.
- Dumb policies: always-stay, move-every-N, move-at-X, grow-to-X, attack-always and random, plus hybrids and a scout hybrid.
- A lookahead expert, 14 ticks ahead on salted dice, with and without the new verbs.
- A strict tuner judging against 17 written targets.
- About a million games across tuning and evidence.
What the machines say now (held out, 800 seeds; 200 for the experts; mean nights survived).
What they found, and what's still weak.
- Siege-halts-growth is the dam. Turn it off and staying wins outright, at about 7 nights.
- Attack earns its place, at about 0.9 nights to good play.
- New hunter kinds are the strongest escalation.
- Spending the family is now the skill that matters most (expert 2.94 → 4.29).
- Transit speed is a cliff: at 2, running dies.
- Weak points to attack:
- the hunters know your exact size;
- the skill ceiling is our own code;
- "one tick earlier" is a wide window for good play, and a knife edge only for the greedy;
- dig and hiding are barely used by the expert, about 1% of its time;
- three heirlooms can add about half a night;
- whether Warrens feel like different selves is still a human question.
- The full write-up:
RED-TEAM-BRIEFING.md (§1–12) and reports/.
3 · The standing brief
What it is. A tower defense game where you are the thing trying not to be found. You stay to grow, run or hold to hide, attack what's in reach, and spend your family to buy time. Then the line goes on. The feeling to design for: "I could stay three more ticks and get much stronger, but I'm gambling that they won't reach me." And then: "Fuck, I should have moved one tick earlier."
Colour meanings that must survive any restyle (your Burrow values).
Fixed: please don't change.
- The rules and every number.
- The 28×18 grid, and the game being tick-by-tick.
- What the player can see: complete information, apart from belief heat, which is Scout-only.
- The ending is a sentence, never a score.
- "Show the working" stays one click away.
Yours, and what to design next, in rough order of need.
- The two dialogs.
- Dawn draft: 3 boons, pick 1, plus the reserve sentence.
- The warren fell: the sentence, then the twin line ("Running one tick earlier would have seen dawn."), then the heirloom multi-pick (up to 3), or "…That was the last warren." with "Found a new line".
- The hover chip at its new length: the verdict word, and the kind trade-off.
- The reserve on the board: the family asleep in the burrows. Today it's only a stats row.
- The chronicle: a family tree, a ledger, or a burrow map, with "earlier lines" beneath.
- Icons: the 8 boons, the heirloom marks (Combat-, Scout- and Defense-born), and possibly the four spends.
- Mobile: it stacks at the moment but isn't designed. The verbs strip ought to fit a thumb.
Every state the board shows.
Interaction.
- Space stays a tick (hold it to repeat). A attacks the weakest in reach. D R S G spend.
- Click a warren to run, any square to hold, or a ringed hunter to attack. Hover anywhere for the race.
- Transit plays itself out at 220ms a tick.
- A run takes about 3 minutes, and most of its ticks are tense.
Files. The art seam is board.js (yours) plus ui.js → boardState() (the mapping from game to board) and style.css. The rules are in src/; leave them be. Your handoff is filed at design/burrow-handoff/.