Concept Prototype Report: The Muster v2
Date: 2026-09-15
Prototype Path: Paper (solver-assisted ledger)
Verdict: ~~PROCEED WITH CONDITIONS~~ → SUPERSEDED 2026-09-15
An independent playtest (PLAYTEST-independent.md) closed this report's open
condition and changed the verdict to PIVOT (narrow). The muster mechanic is
validated; the surrounding economy has a dead zone. Read that file first.
Predecessor:../muster-mechanic-concept/— verdict PIVOT
Hypothesis
If military readiness has no computable safe threshold (raid strength scales, gear decays, forging takes 3 turns) and the economic alternative has a real failure state (ploughs feed a population that can starve), then the iron allocation stays a live decision across a whole season — and the player can articulate, unprompted, what their allocation cost them in both directions.
Approach
Three seasons of eight turns, 12 settlers. **Hidden values were rolled and committed before the first allocation decision** (seed 20260915, printed to the session log before play began): raid turns 8, 5, 4 and strength multipliers 1.00, 0.85, 1.00.
A Python ledger enforced the rules so arithmetic could not drift in my favour. Every purchase was checked against iron on hand and the spear cap.
The adversarial pass ran before the rules were written up, not after — the step v1 skipped. See adversarial-pass.py.
Result
Final state: 6 of 12 settlers survived. No run-ending failure, but half the settlement died.
Season 1 — held exactly
Expected strength 6.8. I armed to 7, ordering spears on turns 1–4 so the last arrived on turn 8. The raid landed on turn 8. **Strength 7 against 7 defenders: zero losses.** Seventeen ploughs fed all twelve.
The margin was one turn. Had the raid come on turn 7, I would have had 6 defenders and lost a settler.
Season 2 — saved by the dice, not by planning
Here I made a real mistake, and it is the most useful data in the run. **I armed to 7 again, having read the season-1 expectation of 6.8 and not re-read it.** The actual expectation was 8.3 — it scales with season number and population, and I anchored on the old figure.
I survived only because the hidden multiplier was 0.85, bringing actual strength down to 7. A neutral roll would have cost me a settler; a bad one, three.
I did not notice the error until writing this report.
Season 3 — the lesson lands
Expected strength 9.8, cap 10. I repaired three spears and forged three more, committing 9 iron on turn 1. The raid landed on turn 4. Four spears were ready; six were still in the forge.
Strength 10 against 4 defenders. Six settlers dead.
The six spears arrived on turns 5 and 6 — one and two turns after the funeral. The iron had been spent. The decision had been made. It was simply too late.
Metrics
| Metric | Value |
|---|---|
| Path used | Paper, solver-assisted ledger |
| Prototype duration | ~1 session |
| Playtesters | 1 — the rules author. See Evidential Quality. |
| Hidden values committed before play | Yes (seed 20260915, logged pre-play) |
| Adversarial pass run before play | Yes |
| Final population | 6 / 12 |
| Run-ending failures | 0 |
| Hypothesis verdict | SUPPORTED, with one caveat |
Recommendation: PROCEED WITH CONDITIONS
The allocation stayed live for all 24 turns. There was never a point where the right answer was obvious, and the three seasons produced three different outcomes from three different causes: correct planning, a lucky roll, and a lead-time failure.
Evidence the hypothesis holds:
- Lead time is doing the work the solver predicted. Season 3 is the mechanic's thesis in one event: iron committed, spears in flight, raid arrives first. That regret is specific and traceable to a turn, which is exactly the signal criterion (c) asks for.
- Regret ran in both directions. In season 1 I nearly under-ploughed chasing spears. In season 3 I under-armed. Both hurt, differently. v1 could only ever produce regret in one direction, because ploughs had no failure state.
- The scaling expectation is the thing a player must read. My season-2 error proves it matters: I stopped reading it and nearly died. A number you can ignore safely is not a decision; this one is not ignorable.
The caveat — and it is significant. The solver established that this only holds in a narrow difficulty band. Soften raid scaling and adaptive play's advantage collapses below two points. This ruleset sits inside the band (k=1.5, c=0.4), but a tuning pass that makes the game friendlier will silently destroy the mechanic. **That constraint must travel into the GDD as a tuning knob with a stated safe range, not as a comment.**
Evidential Quality — read before citing this
I wrote these rules and I played them. That is the same structural flaw that invalidated v1, and no finding here escapes it. What differs:
| v1 | v2 | |
|---|---|---|
| Adversarial pass before play | No | Yes |
| Hidden values committed pre-play | No | Yes |
| Instrument control (can it detect failure?) | No | Yes — both extremes die 100% |
| Arithmetic enforced by ledger | No | Yes |
| Independent tester | No | No |
The first four close the gaps that made v1's verdict worthless. The fifth is still open, and it is the one the PIVOT-NOTE named as required evidence.
This verdict is therefore PROCEED WITH CONDITIONS, not PROCEED. The condition is an independent playthrough. A tester who has not read the solver output should reach a comparable outcome before the muster's GDD gets Formulas and Tuning Knobs written against these numbers.
Two ledger bugs found during play
Both were caught because the ledger's output contradicted the game state, not because I suspected them:
play.pywrote a fresh game tostate.pklat module level, so importing it reset the run. The first season-1 raid reported "0 defenders" against 7 ready spears and "0 ploughs" against 17, producing a fake catastrophe. Fixed by stripping the module-level side effect intoengine.py.- The spear-cap assertion fired on plough-only purchases, because in-flight spears exceeded a cap that shrank when six settlers died. Ploughs do not consume the cap; in-flight gear above a shrunken cap is stranded, not illegal.
Neither changed a design conclusion, but the first looked exactly like a catastrophic ruleset failure. A ledger that contradicts the board is the only reason it was caught.
Carry Forward to the GDD
- Forge lead time of 3 turns is load-bearing. Without it a fixed ratio beats reading the threat (solver-verified). It is not a flavour rule.
- Raid scaling
2 + 1.5·season + 0.4·populationwith ~22% noise sits in the working band. Record the band, not just the value. - Repair at 1 iron vs. forge at 2 made repair obviously correct every time. That is a real decision only if repair is ever not right — consider repair capacity limits or a quality penalty.
- The expected-strength readout is the UI's most important number. My season-2 error came from not re-reading it. It must be impossible to miss that it changed.
- The 2-settler reserve never bound. Population stayed above the point where it mattered. It remains untested and should be exercised deliberately in a low-population run.
Prototype location:
prototypes/muster-v2-concept/
Throwaway. Never refactor into production.