2 Commits
Author SHA1 Message Date
slaguru666andClaude Opus 5 5aaae186e0 A fumbled relief attempt puts a point on
Trying to steady somebody and making it worse is the most familiar thing on that
list, and until now it was the only outcome that cost nothing.

Done as a NEGATIVE relief rather than a second code path: panicReliefFor returns
-1 on a fumble, and easePanic already subtracts what it is given, so subtracting
a negative raises the track. One number, one direction, no branch that could
drift from the other. The clamp still holds — fumbling at 5 stays at 5.

The chat card had to be told, because otherwise it prints the word "Psychology"
over a number that has just gone UP and the table reads that as a bug rather than
as the rule. It now leads with a red FUMBLED tag.

Guarded three ways: a spot-check in check-rules for the -1 itself, and two
behaviour tests — one that the sign survives easePanic's subtraction and
actually raises the track, one that it cannot push past the top. A test on the
constant alone would have passed even if easePanic had healed on a fumble.

Verified live: 2 → fumble → 3 → success → 2 → special → 0, and a fumble at 5
staying at 5, with the cards reading correctly.

Version 1.1.2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 23:25:46 +01:00
slaguru666andClaude Opus 5 20306d83d9 Play a scene with panic; tighten one reference row
Ran LAST ADMISSION's east corridor with the six civilians and real dice. The
track works end to end and, more importantly, the penalty REACHES things:
Ferriby at panic 3 swung at Old Marrow with Brawl 25% printed and 15% effective,
while Sharrock at panic 1 rolled his full 58%. That is the whole point of the
track and it is the part that is usually decoration.

The arc played well. Lights out took four of them to 1. The body took Braithwaite
and Ferriby to 2. Enderby counting took three of them again. Braithwaite fumbled
his Psychology roll trying to talk Colin down, then it said his name — 5, broke,
fled, came back at 3. Renshaw steadied herself on POW×5 and dropped to 1.

One thing I got wrong and one thing worth knowing:

  - I flagged a 99 grading as a fumble as a bug. It is not. A 58% skill fumbles
    on 98-00, and both the primer and the rules page say so in those words. The
    "96-99 never succeed / 00 always fumbles" pair are floor rules, not the whole
    fumble range. Only the quick-reference row was ambiguous — it now says
    "never succeeds ... and is a fumble if it is inside your fumble range".

  - The civilians cannot use two of the three new skills. Occult, Religion and
    Psychology sit at 5% on the "(before)" sheets, so in the prologue the only
    relief that works is POW×5 at 50-85%. That is correct — a site foreman is
    not an occultist — but it means the skills are an AGENT'S tools, and the
    prologue is deliberately the game without them. The agents have them where
    they should: Bhattacharya Occult 63, Lindqvist 58, Renshaw Psychology 40,
    Braithwaite Religion 35.

Version 1.1.1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:58:30 +01:00
146 changed files with 170 additions and 49 deletions
+3 -3
View File
@@ -180,9 +180,9 @@ The build runs all five guards before it writes anything:
<!-- guards:start -->
```
check-rules: OK — 92 rules, 20 files scanned, 3 aliases + 45 constant sets checked, 290 formulas verified
check-rules: OK — 92 rules, 20 files scanned, 3 aliases + 45 constant sets checked, 291 formulas verified
check-kits: OK — 25 roles, 10 trades, 218 catalogue items, every kit key resolves, every posting can use what it carries, every loadout distinct
check-lang: OK — en.json, 976 keys, no leaf/branch collisions
check-behaviour: OK — 55 behavioural tests
check-lang: OK — en.json, 977 keys, no leaf/branch collisions
check-behaviour: OK — 57 behavioural tests
```
<!-- guards:end -->
+2 -1
View File
@@ -974,5 +974,6 @@
"RINGBRP.Panic.Breaks": "BREAKS — freeze, flee, or fixate. Choose, take it, come back at 3.",
"RINGBRP.Panic.NoChange": "No change.",
"RINGBRP.Flavour.Panicking": "panicking ({mod}%)",
"RINGBRP.Chat.ToEverything": "to everything"
"RINGBRP.Chat.ToEverything": "to everything",
"RINGBRP.Panic.Backfired": "Fumbled —"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.028748 16ea07000 Delete type=3 #1
2026/08/17-23:24:47.247472 17253f000 Recovering log #3
2026/08/17-23:24:47.247505 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.247700 17253f000 Level-0 table #5: 4591 bytes OK
2026/08/17-23:24:47.248094 17253f000 Delete type=0 #3
2026/08/17-23:24:47.248137 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.473921 16e827000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.107122 16f213000 Delete type=3 #1
2026/08/17-23:24:47.267497 173d63000 Recovering log #3
2026/08/17-23:24:47.267518 173d63000 Level-0 table #5: started
2026/08/17-23:24:47.267658 173d63000 Level-0 table #5: 4129 bytes OK
2026/08/17-23:24:47.267918 173d63000 Delete type=0 #3
2026/08/17-23:24:47.267949 173d63000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.544854 16e827000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.030538 16e1fb000 Delete type=3 #1
2026/08/17-23:24:47.248920 173d63000 Recovering log #3
2026/08/17-23:24:47.249014 173d63000 Level-0 table #5: started
2026/08/17-23:24:47.249313 173d63000 Level-0 table #5: 31614 bytes OK
2026/08/17-23:24:47.249730 173d63000 Delete type=0 #3
2026/08/17-23:24:47.249796 173d63000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.475804 17004b000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.091041 16ea07000 Delete type=3 #1
2026/08/17-23:24:47.261246 17253f000 Recovering log #3
2026/08/17-23:24:47.261511 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.261915 17253f000 Level-0 table #5: 46857 bytes OK
2026/08/17-23:24:47.262265 17253f000 Delete type=0 #3
2026/08/17-23:24:47.262307 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.528809 16f033000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.072716 16f213000 Delete type=3 #1
2026/08/17-23:24:47.235329 173d63000 Recovering log #3
2026/08/17-23:24:47.236302 173d63000 Level-0 table #5: started
2026/08/17-23:24:47.238305 173d63000 Level-0 table #5: 234672 bytes OK
2026/08/17-23:24:47.238754 173d63000 Delete type=0 #3
2026/08/17-23:24:47.238827 173d63000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.510747 16f83f000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.101253 16ea07000 Delete type=3 #1
2026/08/17-23:24:47.244550 17253f000 Recovering log #3
2026/08/17-23:24:47.244581 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.244685 17253f000 Level-0 table #5: 3295 bytes OK
2026/08/17-23:24:47.244965 17253f000 Delete type=0 #3
2026/08/17-23:24:47.245003 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.539431 17004b000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.053348 16f213000 Delete type=3 #1
2026/08/17-23:24:47.222820 172d4b000 Recovering log #3
2026/08/17-23:24:47.225060 172d4b000 Level-0 table #5: started
2026/08/17-23:24:47.229466 172d4b000 Level-0 table #5: 561098 bytes OK
2026/08/17-23:24:47.229981 172d4b000 Delete type=0 #3
2026/08/17-23:24:47.230132 172d4b000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.496406 16e827000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.098549 16ea07000 Delete type=3 #1
2026/08/17-23:24:47.251999 173d63000 Recovering log #3
2026/08/17-23:24:47.252036 173d63000 Level-0 table #5: started
2026/08/17-23:24:47.252324 173d63000 Level-0 table #5: 21613 bytes OK
2026/08/17-23:24:47.252692 173d63000 Delete type=0 #3
2026/08/17-23:24:47.252736 173d63000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.536318 17004b000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.095111 16f213000 Delete type=3 #1
2026/08/17-23:24:47.263027 17253f000 Recovering log #3
2026/08/17-23:24:47.263228 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.263611 17253f000 Level-0 table #5: 44887 bytes OK
2026/08/17-23:24:47.263871 17253f000 Delete type=0 #3
2026/08/17-23:24:47.263914 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.533004 16e827000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.104875 16fa1f000 Delete type=3 #1
2026/08/17-23:24:47.253858 172d4b000 Recovering log #3
2026/08/17-23:24:47.253959 172d4b000 Level-0 table #5: started
2026/08/17-23:24:47.254345 172d4b000 Level-0 table #5: 36526 bytes OK
2026/08/17-23:24:47.254740 172d4b000 Delete type=0 #3
2026/08/17-23:24:47.254786 172d4b000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.542959 16f83f000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.022621 16ea07000 Delete type=3 #1
2026/08/17-23:24:47.241716 17253f000 Recovering log #3
2026/08/17-23:24:47.241766 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.241955 17253f000 Level-0 table #5: 7806 bytes OK
2026/08/17-23:24:47.242285 17253f000 Delete type=0 #3
2026/08/17-23:24:47.242328 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.467729 16f033000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000002
MANIFEST-000004
+5 -1
View File
@@ -1 +1,5 @@
2026/08/12-22:54:48.100047 16e1fb000 Delete type=3 #1
2026/08/17-23:24:47.264565 17253f000 Recovering log #3
2026/08/17-23:24:47.264605 17253f000 Level-0 table #5: started
2026/08/17-23:24:47.264863 17253f000 Level-0 table #5: 16902 bytes OK
2026/08/17-23:24:47.265193 17253f000 Delete type=0 #3
2026/08/17-23:24:47.265233 17253f000 Delete type=3 #2
+1
View File
@@ -0,0 +1 @@
2026/08/17-23:24:31.538092 16f033000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More