From c60485de72bb54fd56dba001e0139746350b32fe Mon Sep 17 00:00:00 2001 From: slaguru666 <111923774+slaguru666@users.noreply.github.com> Date: Tue, 11 Aug 2026 22:35:37 +0100 Subject: [PATCH] Play PAPER HARBOUR with the criminal, and fix R-246 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A pier that closed in 1974, a beacon still transmitting, and a probationer recruited out of a city with a caution the department has quietly lost. The generator's gap — somebody uses that agent's name before it is given — landed on him in phase 2, and he held it on Fast Talk 14 against 48 while the Field Lead missed the read. The case turned on a warrant card: the keepers of the ground want relieving by somebody official enough to take the duty on, and every agent carries exactly that. Bargain 27, favourable, rolled 33 — impression -1 to +1. The one unambiguously his moment was the log the first team locked in behind them: 11 against Sleight of Hand 50. R-246: a fumbled greeting cost nothing. contactOutcomes has said fumble/signal -1 since the social pillar was built, and impression was adjusted only inside the `offer` branch — so the -1 was computed on every botched greeting and thrown away. Impression now falls on a fumble at any stage and still only rises on an offer; the narrower fix matters because read's delta counts FACTS LEARNED, not standing, so applying the delta always would have paid the team impression for doing research. Also logged: a probationary criminal is out-sneaked by a career Field Lead (47 to 60) because trade skills use the agency tier bands — defensible, flagged, not changed. And one invented step of my own: I rolled Transposition to get them home after the extraction phase had already put them out. Co-Authored-By: Claude Opus 5 --- docs/REVIEW_LOG.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++ ringbrp.mjs | 12 +++++++-- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/docs/REVIEW_LOG.md b/docs/REVIEW_LOG.md index 8397643..b9c25c4 100644 --- a/docs/REVIEW_LOG.md +++ b/docs/REVIEW_LOG.md @@ -4764,3 +4764,65 @@ ad-hoc rolls passed a rating and a category but no `skillFamilyId` — the same R-222 found in `resolveLegDialog`, reproduced by hand in a test harness. Re-rolled with the skill named, the tick appeared and the improvement roll landed: **Medicine 56 vs 42% → +6 → 48%.** The rule was right; the probe was not naming its skill. + +## PAPER HARBOUR — the criminal + +A pier that closed in 1974. A Custodian team crossed nineteen hours ago on a routine +survey and their beacon is still transmitting; three of the four are still alive and +the fourth is what the beacon is. The team: **Sennen Roake**, probationary, recruited +out of a city with a caution the department has quietly lost — plus a Field Lead and a +Technical Officer. + +The generator's gap, unprompted: *one agent has a connection to this place that the +assigning officer either missed or did not miss, and it surfaces when somebody uses +that agent's name before it is given.* Phase 2 forced that encounter. + +**He held it.** Fast Talk 14 against 48 — a clean success — and Sowande missed the read +on 42 against Insight 32. Nobody on his team knows. The case's own pressure, produced by +the tables and resolved by the one skill a criminal has instead of composure. + +**The phases went badly and the ramp is why.** 52%, then −5%, then Difficult at 26%, +then −15%. One success and three failures, Containment 10 → 7, and the window clock at +1. That is the retuned ramp doing exactly what it was retuned to do, on a team whose +best phase-lead skill was a Field Lead's Tradecraft 52. + +**Then the case turned on a warrant card.** The keepers of the ground — twelve of them, +an arrangement none will describe — want *"to be relieved. Somebody, anybody, official +enough to take the duty on."* Every agent on the team is carrying exactly that, and the +probationer with the quietly-lost caution is the one who handed it over: Bargain 27, +favourable, rolled 33. **Impression −1 → +1.** He insulted them in their own language +and then gave them the first honest thing anyone had offered them in four generations. + +And the one moment that was unambiguously his: the first team locked the log in behind +them, and he opened it on **11 against Sleight of Hand 50** with lock rakes and a master +key ring. The improvement rolls afterwards landed on Fast Talk and Sleight of Hand — +the only two things he actually did. + +### R-246. A fumbled greeting cost nothing + +`contactOutcomes` has said `fumble: { signal: -1 }` since the social pillar was built, +and impression was adjusted **only inside the `offer` branch**. So the −1 was computed +on every botched greeting and thrown away: a team could insult a group in their own +language all afternoon at no cost, and only a formal offer could ever move how they +were seen. Found by Roake fumbling a signal on 99 and the standing not moving. + +Impression now falls on a fumble at any stage and still only rises on an offer. The +narrower fix matters: `read`'s delta counts **facts learned**, not standing, so "apply +the delta always" would have paid the team impression for doing research. Verified by +rolling until a fumble landed — 99, delta −1, impression 0 → −1, standing −1. + +### Two notes on the trade, and one on my own play + +**A probationary criminal is out-sneaked by a career Field Lead** — stealth 47 against +60 — because trade skills are rated on the agency tier bands. It is defensible (a +probationer is a probationer, and at officer tier the criminal would sit at 45–60) but +it is worth deciding deliberately: a burglar recruited last month has been picking locks +for fifteen years, and the argument for giving trades a tier-independent band for their +*core* is the same argument that says a newly recruited doctor is already a good doctor. +Left as it is; flagged rather than changed. + +**I invented a step.** After the extraction phase resolved — *"you are out, but not +cleanly"* — I rolled Transposition for all three to get them home, and all three failed +on ratings of 1, 1 and 6. That was not a step the case had; the phase had already put +them out. Recorded because the rolls happened and the log should say they did not mean +anything. diff --git a/ringbrp.mjs b/ringbrp.mjs index 38101fa..f059c5f 100644 --- a/ringbrp.mjs +++ b/ringbrp.mjs @@ -1946,8 +1946,16 @@ export async function resolveContact(caseFile, groupId, stage, actor, { circumst } } if (stage === "signal" && delta > 0) rec.pidginEstablished = true; - if (stage === "offer") { - rec.offerMadeThisEncounter = true; + if (stage === "offer") rec.offerMadeThisEncounter = true; + // Impression rises only on an OFFER — that is the stage that is meant to buy + // standing — but it FALLS on a fumble at any stage. The adjustment used to sit + // inside the `offer` branch alone, so the table's `fumble: { signal: -1 }` was + // computed on every botched greeting and thrown away: you could insult a group in + // their own language all afternoon and it cost you nothing. + // + // Note `read`'s delta counts FACTS LEARNED rather than standing, which is why this + // is not simply "apply delta always" — that would pay you impression for research. + if (stage === "offer" || delta < 0) { rec.impression = (Number(rec.impression) || 0) + delta; rec.value = Math.max(-3, Math.min(3, Number(rec.impression) || 0)); }