diff --git a/ROADMAP.md b/ROADMAP.md index 84318ab..8010fe6 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -72,6 +72,18 @@ afterthoughts. A/B/C are load-bearing; D rounds it out. These are the *wiring*; everything in the module table below is the *features* that hang off it. +**Design constraint (2026-07-15): defer the depth, never the payoff.** The propensity → contraband +→ detection → record *spine* is entirely ours and is self-complete without any third-party mod — it +is what the suite is *about*, and deferring PR's prisoner-behaviour sims (recidivism, riot, +solitary-toll, institutionalization, mood-contagion) leaves no hole in it, because none of those sit +*on* that spine. The one place the deferral could ring hollow solo is the RESPONSE side: Discipline +and Parole. So each response action must carry its **own minimal self-complete effect** — parole +gives an immediate faction-goodwill / relationship nudge; discipline revokes privileges with a +modest mood/record consequence — rather than borrowing PR's deeper toll. That is *not* a rebuild of +PR (no returning raiders, no 3-tier solitary): it is our own decision having an immediate payoff, +which PR then *enriches* when present. The test of a healthy deferral: with PR absent the loop still +*closes* (the decision has an effect); with PR present the effect gets *deeper*, never doubled. + ## Suite modules | Mod | Scope | Status | @@ -227,14 +239,18 @@ and classification (segregate rivals). The richest, latest module — build afte 2. **Regime** — schedule (vanilla Restrict) + one or two modest needs. Cheap, high-value, and it feeds the disposition engine (neglect → crime). 3. **Visitation** — greenfield, thematically strong for the ward, doubles as a contraband route. -4. **Parole / discharge / manumission** — the *release decision*, ideology-driven (the return - outcome is Prisoner Realism's Recidivism, not ours). Gives Ward and good behaviour a payoff. +4. **Parole / discharge / manumission** — the *release decision*, ideology-driven, PLUS its + substrate-native payoffs: **prisonization** (the regime reshapes propensity over the sentence) and + **reintegrated-reoffending** (a parolee who joins the colony carries their record and may reoffend). + PR's departed-raider return layers on top when present. Gives Ward and good behaviour a real payoff. 5. **Classification** (a router that reads the record + propensity and assigns a tier), then **punishment-orders**, then **corruption**. 6. **Gangs** as contraband economies — last; needs the rest in place. -Cut on 2026-07-15 (Prisoner Realism owns them, and it is good): reintegration/recidivism, the -isolation toll, mood-contagion gangs. We coexist with all three; we rebuild none. +Deferred to Prisoner Realism on 2026-07-15 (it owns them, and it is good), as MECHANICS we do not +rebuild: the isolation toll, mood-contagion gangs, and the departed-prisoner return. We still own the +substrate-native, differently-axised versions of institutionalization (prisonization) and recidivism +(reintegrated-reoffending) — the namesake themes — because only our propensity/record engine can. Already in flight (Contraband/Foul Play): hooch, improvised weapons, fire-starter, escape tools, intake search, secure areas. See [Contraband ROADMAP](https://git.onetick.ninja/flan/rimworld-contraband). @@ -292,13 +308,13 @@ What this changes vs. a naive "defer to whoever got there first": - **Recreation is ours to enable.** Prisoner Recreation (38k) and Prisoner Realism (11k) ship no custom need — they just flip on the *vanilla Joy need* for prisoners. We do the same in our needs system: idempotent, coexists, zero dependency, no citing. -- **Release-outcome / recidivism → DEFER ENTIRELY to Prisoner Realism.** (Revised after the - 2026-07-15 deep scan below.) PR's Recidivism is a genuinely good, complete sim — a released or - escaped prisoner returns much later as a grateful ally or a vengeful raider, scaled by how they - were treated. Rebuilding even a "modest" version would duplicate good work. Our Parole module's - *crucial loop* is the **release decision itself** (ideology-driven), and that is self-complete: a - released pawn simply leaves (vanilla). The *return outcome* is not our loop to close — it lights - up for free when PR is present and is simply absent otherwise. No dependency, nothing rebuilt. +- **Recidivism → split by population, don't defer wholesale.** (Revised twice: first "build modest", + then "defer entirely", now corrected — see the namesake correction in the deep scan below.) PR's + Recidivism handles the pawns who **leave** (released/escaped → return ally-or-raider by treatment); + that is good and we do not rebuild it. We own the **mirror**: the paroled pawn who **stays**, joins + the colony, and can reoffend inside it (their `CriminalRecord` + residual propensity → wiring gap D). + Different population, no overlap. The release *decision* stays self-complete (ideology-driven); + the *reintegrated-reoffending* is ours; the *departed-return* is PR's. - **Solitary / isolation toll → DEFER to Prisoner Realism.** PR's Solitary is a full 3-tier deterioration hediff with a Ringleader counterplay. Our Classification module does NOT reimplement the toll; it is a **router** — it reads the shared record + propensity and *assigns* @@ -326,8 +342,8 @@ and cut our overlaps. Its 20 features and our verdicts: | PrisonBreak rework | MTB scaled by mood/relation/captor/strength | Defer. Our arming rides vanilla/PR breaks. | | No-mining / melee breakout | strips sapper-dig; escapees bash doors | Defer. Our wall-cut is a *tool* route, additive. | | Keys / Lockpick | skilled prisoner picks a DOOR, fast, no item | Defer. We own file-through-a-WALL for non-break pawns. | -| Recidivism | released/escaped return ally-or-raider by treatment | **Defer entirely.** Was on our list; dropped. | -| Institutionalized | expectation decay + reintegration struggle | Defer. Kills our "reintegration" build. | +| Recidivism | released/escaped return ally-or-raider by treatment | Defer PR's mechanic; own the MIRROR — the reintegrated who STAY and reoffend (see below). | +| Institutionalized | expectation/mood decay + reintegration struggle | Defer the mood axis; own the PROPENSITY axis — prisonization (see below). | | Solitary | 3-tier isolation deterioration | Defer the toll; Classification only *routes* to it. | | Ringleader | mood contagion from dominant prisoner | Defer. Re-scopes our Gangs to contraband-networks. | | Riot | securely-caged-but-miserable → lash out | Defer. | @@ -335,10 +351,34 @@ and cut our overlaps. Its 20 features and our verdicts: | Recreation | flips on vanilla Joy for prisoners | We enable the same idempotently (no citing). | | Surrender, ForceFeed, RecruitOffer, Despair, Turrets, Cleaning, Carry, BedOwner, Surgery, Commons, AssistedBreak | assorted prisoner-behavior sims | Defer all; coexist. | -Net effect: **one planned module deleted** (reintegration+recidivism), **two re-scoped** (Classification -→ pure router; Gangs → contraband economy, not mood). What remains is Institution's uncontested core: -hidden-contraband + search, propensity across *all* pawns, Ward, Foul Play, classification-as-router, -and the standout nobody touches — **policing free colonists** (the crime loop turned on your own colony). +Net effect: **two modules re-scoped** (Classification → pure router; Gangs → contraband economy, not +mood) and the reintegration module **re-founded on our substrate** (see next). What remains is +Institution's uncontested core: hidden-contraband + search, propensity across *all* pawns, Ward, Foul +Play, classification-as-router, and the standout nobody touches — **policing free colonists**. + +#### Namesake correction (2026-07-15): institutionalization & recidivism ARE ours — on a different axis + +"Defer entirely" was an over-correction: in a suite named **Institution**, these are the namesake, and +our substrate lets us build them on an axis PR structurally cannot, so it is complementary, not a +rebuild. The rule: **don't duplicate PR's mechanic; own the substrate-native version only we can.** + +- **Institutionalization → prisonization, and it is NOT a new system (2026-07-15).** The lean form: + `Propensity.Nurture` *already* raises criminal disposition for a badly-kept held pawn, dynamically. + The only thing incarceration adds is PERMANENCE — an effect that outlasts the sentence — and we + already have the field for it: `CriminalRecord.reform` (signed: harsh regime → negative/prisonized → + propensity up; rehabilitative → positive/reformed → propensity down). So prisonization = have the + EXISTING Nurture read that ONE existing field, which Discipline/Parole write. No parallel mechanic, + no new stat. And we do **not** patch PR's institutionalization (that would make us depend on a + one-week-old, fast-moving mod): when PR is present we *soft-read* its hediff as one more Nurture + input (`MayRequire`, reflective, no patch) — the same additive-not-override posture as the tunnel. +- **Recidivism → the reintegrated who STAY (not the departed who leave).** PR returns released/escaped + pawns as allies-or-raiders. We own the mirror population: a paroled pawn who *joins the colony* + carries their `CriminalRecord` + residual propensity and can **reoffend inside your own walls** — + wiring gap D, closing the colonist-crime cycle. PR handles who left; we handle who stayed. No overlap. + +These two are also the **self-complete payoffs** for Discipline and Parole (per the "defer the depth, +never the payoff" constraint above): the regime you run visibly reshapes people, and a badly-reformed +parolee bites you later — both work with PR absent, and PR's departed-raider return deepens it when present. ### Prior-art sweeps done (2026-07-14/15)