Commit Graph
4 Commits
Author SHA1 Message Date
slaguru666andClaude Opus 5 22a5067153 R-225: the extraction spends the way home, not hit points
Every case carries a "window closes" clock whose stated cost is THE WAY HOME and
whose steps are "the margin narrows / the return is Difficult / the return is
aimed at -30%". Nothing ever read it, so the phase whose job is getting out had
no consequence of its own and the GM had to invent one.

Extraction now advances that clock: failure and fumble narrow the window, a
critical opens it back up, and returnCrossing() applies the penalty alongside the
classification modifier and the Coherence band. 0/-10/-20/-30, Difficult from two
steps.

Also: legs now store their `kind`. The extraction check matched on the terrain
prose and worked only because the string begins "Extraction —".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 22:33:49 +01:00
slaguru666andClaude Opus 5 89ce557355 Death at zero, and a case brief that answers the useful questions
R-223: nothing happened at 0 hit points. An agent was marked down and lay there
forever; the only mention of death in the system was flavour text on a destroyed
head. Zero now starts a clock whose length is the agent's own Major Wound
threshold, ticked from the same hook that charges blood loss. First Aid or
Medicine stabilises and stops the count; healing above zero clears it; heal()
refuses the dead. On death, Coherence decides what the record says — from a
proper death in service down to not being recorded as dead at all.

Case generator: four phases instead of five (the arc drew two interchangeable
middles that read as padding). The brief now leads with Where / When /
Classification / Phases, states the opposition in full, and has a "How you get
back" section. place and duration were generated and never printed. The same
facts are on the case file itself. 300 seeds checked for object leaks; one found
and fixed (group taboo/desire are objects with .text).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 22:13:21 +01:00
slaguru666andClaude Opus 5 1b44fccb79 Retune the case ramp, and let leading a phase earn experience
The ramp made every phase after the first Difficult (halving the lead's skill) and
stacked a cumulative -5% on top. Separated in phaseRampFor() in rules.mjs:
difficulty belongs to the phase (only Containment is Difficult, and it does not
also ramp), the modifier is attrition (-5 a phase, capped at -15).

  lead 55%   was 55 -> 22 -> 17 -> 12 -> 7      now 55 -> 50 -> 45 -> 27 -> 40

Over 20,000 simulated cases with destitution modelled, phases passed roughly
double and destitution incidence roughly halves.

R-222: resolveLegDialog passed no skillFamilyId, so the choke point could not
resolve the skill item and leading a phase never earned a tick — Tradecraft, the
skill the job most uses, could never improve.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 21:12:04 +01:00
slaguru666andClaude Opus 5 d0144f744e The Custodians v0.6.1 — full system
A Foundry VTT game system: Basic Roleplaying d100 in a drab British agency that
deals with crossings, where reality keeps a record of what belongs where and can be
made to get it wrong.

Contents:
- rules.mjs as the single authority for every rule formula, with 40 rules and 132
  spot-checked values. Nothing may restate a formula it defines.
- 25 postings, each with a key characteristic, trained skills, talents and its own
  kit; a 175-item catalogue across four eras; 231 generated icons.
- Reaction Lanes initiative, re-rolled every round including the first.
- Coherence, and the Quiet Arts, which only ever arrive from a crossing gone wrong.
- Graded defences: only a critical stops a critical.
- Borrowed Authority — access as a record rather than a hacking roll.
- A case generator, and a rules journal generated from rules.mjs so the book cannot
  drift from the code.

Built compendia are committed so a remote Foundry needs only the files.
node_modules is not; `npm install` restores it for rebuilding content.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 18:09:07 +01:00