CLEAN GROUND v0.10: EXPOSURE reframed on the first disabling blow

The old EXPOSURE paragraph read the fight at round five and quoted bucket
figures no guard held. Round five is where the outcome becomes legible; round
two is where it is decided. Reframed on the first disabling blow and cited to
tools/first-blood-baseline.json, so every figure in the paragraph is one the
build re-measures:

  cut   50.3% first blood at mean round 1.8, 25.5% vs 65.5% wipes, swing 40
  line  54.1% at round 1.3, 7.8% vs 23.2%, swing 15.4

An earlier draft carried 43 for the cut swing from a single seed. Three seeds
give 40.0. The note stays in the document.

Also adds a Casting coupling warning: the declared cast in the `cast:` marker
is load-bearing on check-rollable and check-firstblood, and re-casting
invalidates the recorded swing. Verified rather than assumed — swapping
braithwaite for agyeman in the marker fails both guards and the build, and
check-firstblood names the fix:

  "The recorded swing describes the old cast; re-record with --update,
   do not revert the cast."

npm run check: 13 guards, exit 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
slaguru666
2026-09-13 09:50:07 +01:00
co-authored by Claude Opus 5
parent 60995b28c2
commit a0d15ad7a9
+33 -6
View File
@@ -9,7 +9,7 @@
| | |
|---|---|
| **Version** | **v0.9**, 13 September 2026 |
| **Version** | **v0.10**, 13 September 2026 |
| **Can it be run?** | **Yes, from this document alone.** A GM with this file and the compendium can run it end to end. |
| **Is it convention-ready?** | **No.** It has never been played by human beings, and there is no print pack. |
| **Playtesting** | Three desk passes, all fixes applied: `CLEAN_GROUND_PLAYTEST_1.md` (GM chair, seed 4271), `_2.md` (Act Four stress, seed 9314), `_3.md` (player chair, contrarian, seed 5580). Twenty-three fixes plus one post-pass. |
@@ -724,11 +724,26 @@ losing. Both of the first two are live in this scenario.
something. This row is not, and a GM who reads "2.31" as "a bruising fight" is reading
the one outcome the table is least likely to deliver.
**It is decided by round five.** If the party puts even one of the three down in the
first five rounds the wipe rate falls from **58.5% to 19.7%**; if they put down two it is
**zero wipes in the 84 fights that got there**. They usually cannot — 68% of fights reach
round five with none of the three down. A dead one stops attacking and a half-dead one
does not, so the fight either tips early or grinds them flat.
**It is decided by the first disabling blow, and that lands in round two.** Both sides
go down at half their maximum hit points — the same rule in both directions — so every
disable removes an attacker, thins the return fire, and makes the next disable likelier.
Nothing pulls the fight back toward the middle once it has tipped. **Round five is where
that becomes legible; round two is where it happens.**
| Measured | Party strikes first | Then wipes | If it does not |
|---|---|---|---|
| **Three of the column vs the cut** | 50.3% (mean round 1.8) | **25.5%** | **65.5%** — a swing of **40** |
| Six of the column vs the full six | 54.1% (mean round 1.3) | 7.8% | 23.2% — a swing of 15.4 |
First blood is very nearly a coin toss, and in the cut it is worth **forty points of wipe
rate**. Against the full six it is worth a third of that, because one fighter is a sixth
of that line and a quarter of the cut. **This is a property of the cut, not of the
column.**
*Recorded in `tools/first-blood-baseline.json` and re-checked on every build by
`check-firstblood`; read it with `node tools/first-blood.mjs`. Earlier drafts of this
paragraph carried a swing of 43 from a single seed, which was high by more than its own
seed-to-seed noise — the figures above are three seeds and are the ones of record.*
At four players, **any** violence against the column is a party-ending decision. **Say
the shape aloud, not the average:** "nearly half of all parties die" is the honest
@@ -845,6 +860,18 @@ not a second definition of the sheet.
Not the "(before)" sheets. This is the job, and it wants people who have been inducted.
> ⚠ **THE DECLARED CAST IS LOAD-BEARING ON THE BUILD.** The `<!-- cast: -->` comment above
> is read by two guards. **`check-rollable`** holds every skill the acts name to these six,
> and **`check-firstblood`** holds a recorded measurement of this scenario's own encounter
> against them. **EXPOSURE's whole table is measured against these six as well.**
>
> So changing who is cast is not a cosmetic edit. It invalidates the exposure figures and it
> will fail the build. **The fix is to re-record, not to revert** — `node tools/first-blood.mjs
> --update`, and re-run EXPOSURE's own published command — and then to re-read the prose
> around both, because the sentences quote ratios that move with the numbers. That coupling
> is deliberate: it converts a table that would otherwise go quietly stale into one that
> announces it.
| | Agent | Lane | The one thing they are for |
|---|---|---|---|
| 1 | **Dominic Ashcroft** `pc_ashcroft` | Coherence | He has been thin before and knows what it costs |