INTEGRITY_DELTA_MAP.md

systems/INTEGRITY_DELTA_MAP.md

Integrity Delta Map — qualitative token to integer (DIRECTOR-DERIVED)

ILLUSTRATIVE under the Phase-5M tuning firewall. The CLASS RANGES on this page are canon
(T1_Integrity_Paths_Worldstates_Master [ACTIVE v2.1] §5.1). The integer point-picks are
ILLUSTRATIVE tuning, not canon — they exist so the Q3.4 fork/integrity dispatcher has a
deterministic number to run today, and any of them may be re-tuned without a canon change so
long as it stays inside its class's own canonical band. Authorized by Josh's 2026-07-23c ruling
("the delta map is DIRECTOR-DERIVED from T1_Integrity_Paths' band ranges, ILLUSTRATIVE under the
tuning firewall"), recorded in docs/spine/DECISIONS_PENDING_JOSH.md (the ✅ 2026-07-23c block).
Machine copy: build/integrity_delta_map.json. Regenerate with scratchpad/gen_delta_map.py
(reads build/spine_rows/*/fork_options.csv).

1. Purpose and consumer

The spine's fork options tag each branch with a bounded qualitative magnitude token in the

delta_class_bounded column (for example +Substantial, −Accumulative, ~0). The runtime

fork/integrity dispatcher (Q3.4) needs an integer delta per option. This map is the one place the

qualitative token becomes an integer, so no two consumers pick differently. The map covers the

token vocabulary ACTUALLY in use — every distinct delta_class_bounded value observed across the

63 fork files that carry the column, plus the direction-only polarity tokens carried by the 11

path-bucket-locked terminal-fork files.

2. The canon: the §5.1 magnitude classes and their ranges

The class ranges are canon and are quoted verbatim from `T1_Integrity_Paths_Worldstates_Master

[ACTIVE v2.1]` §5.1. §5.5.3 confirms the assimilation mechanic "introduces no new band," and §5.5

"invents no new magnitude band and no numerical canon" — the four classes below are the closed set.

to chapter-anchor beats. They may shift integrity by ten to twenty-five points." Range 10 to 25.

The canonical anchor list is the §5.4 Foundational-beat catalog.

per-chapter primary boss encounters, trade master encounters, and named-NPC relationship beats.

They may shift integrity by three to ten points." Range 3 to 10.

to per-encounter dialogue selections, combat approaches, and environmental interactions. They may

shift integrity by half a point to three points each." Range 0.5 to 3. This band canonically

tolerates half-point increments; the map still picks a single integer per token for the

dispatcher.

to engage an antagonist operative with lethal force shifts integrity differently for a Truly Good

path protagonist (small negative...) than for an Evil path protagonist (small positive...)."

Signature is the one class §5 gives NO numeric range — its magnitude is "small" and its sign is

path-dependent, so it is unranged by design and no fork currently emits it as a bounded token

(see §5). It is documented here for completeness only.

3. The derivation rule (stated once)

Every observed token parses as SIGN, then CLASS, then an optional MODIFIER. The rule:

~, ~0, or neutral is zero.

by construction lands inside the canonical band: Foundational midpoint 17.5 rounds to 18;

Substantial midpoint 6.5 rounds to 7; Accumulative midpoint 1.75 rounds to 2.

floor-side interior point, round-half-up of (low + midpoint) / 2: Foundational 14, Substantial 5,

Accumulative 1. Still inside the canonical band.

intermediate-bands-are-texture presentation note and does NOT change the integer; a trailing

-generative or -corrosive is a redundant valence tag (the sign already carries it) and does

NOT change the integer.

Every pick is clamped to its class's own canonical [low, high]; the map never emits a number

outside a §5 band. Which point inside the band is chosen is the tuning that the firewall covers.

4. Canonical base and reduced values

5. The full observed-token table

Every distinct delta_class_bounded value in use, with the class it resolves to, the sign, the

derived integer, the canonical range that bounds it, the observed count, and any note. All 22

tokens resolve cleanly to a §5 class; none required an invented class.

Observed tokenClassSignValueCanonical rangeCountNote
~0neutral00[0, 0]69zero/neutral
+SubstantialSubstantial++7[3, 10]68base
−SubstantialSubstantial−7[3, 10]59base
+AccumulativeAccumulative++2[0.5, 3]24base
−AccumulativeAccumulative−2[0.5, 3]8base
-Substantial (ASCII hyphen)Substantial−7[3, 10]6base; hyphen normalized to minus
+Substantial (partial)Substantial++5[3, 10]3reduced modifier
+Substantial-partialSubstantial++5[3, 10]3reduced modifier
−Substantial (terminal-band texture)Substantial−7[3, 10]2terminal-band texture, magnitude unchanged
+Substantial-generativeSubstantial++7[3, 10]2redundant valence tag
+FoundationalFoundational++18[10, 25]2base
ws.integrity_score ~0 (path-invariant; the manner rides the Ch-65-locked band)neutral00[0, 0]2normalized from a leaked ws_writes string
−Substantial (terminal texture)Substantial−7[3, 10]1terminal-band texture, magnitude unchanged
−Substantial-corrosiveSubstantial−7[3, 10]1redundant valence tag
+Substantial (tempered — the kept edge softens it)Substantial++5[3, 10]1reduced modifier
+Substantial(guarded)Substantial++5[3, 10]1reduced modifier
−Substantial-partialSubstantial−5[3, 10]1reduced modifier
+Accumulative (full)Accumulative++2[0.5, 3]1base (full is the midpoint)
+Accumulative (light)Accumulative++1[0.5, 3]1reduced modifier
−FoundationalFoundational−18[10, 25]1base
-Accumulative (ASCII hyphen)Accumulative−2[0.5, 3]1base; hyphen normalized to minus
−Foundational (terminal-band texture)Foundational−18[10, 25]1terminal-band texture, magnitude unchanged

5.1 The direction-only polarity tokens (path-bucket-locked forks)

Eleven fork files carry path_bucket_locked and variant columns instead of delta_class_bounded,

with the polarity in the direction column: generative (15), corrosive (15), neutral (17).

These are the post-Ch-65 terminal forks whose magnitude is not assigned per fork — it rides the

§3.4 path lock-in band. The dispatcher applies the sign only (generative +1, corrosive −1,

neutral 0) and adds no independent integer, because the locked band already reflects the path. They

are keyed in the machine copy as direction:generative, direction:corrosive, direction:neutral

with a null value.

6. Tokens that did not fit a §5 class

None. All 22 distinct delta_class_bounded tokens and all three direction polarity tokens resolve

to a §5.1 class or to the neutral zero. No [DECISION NEEDED - JOSH] flag was raised and no class

was invented. If a future fork introduces a token that does not reduce to Foundational, Substantial,

Accumulative, or neutral, the generator leaves it out of the map and lists it under

_meta.decision_needed in the JSON for Josh, rather than inventing a band.

7. Provenance

block, "the delta map is DIRECTOR-DERIVED... ILLUSTRATIVE under the tuning firewall").

Generated by harness/site/structure_site.py — the URL path is the repo path. review root