COMBAT_ENCOUNTER_SYSTEM.md

music/COMBAT_ENCOUNTER_SYSTEM.md

<!-- Combat / Boss / Encounter System — assembled from the 5-track design workflow (wkvtx1pxa,

2026-07-04): canon audit + boss-system design + encounter ecosystem + local-LLM runtime layer + milestone

pipeline. T99-operational tier (sits under T1_Combat_System_Spec). Invents zero world canon; every claim

traces to ACTIVE canon / a RULED proposal / a batch-1 PROPOSAL. Absolute numbers stay deferred to Phase 5M.

The local-LLM + milestone parts also have standalone drafts: docs/RUNTIME_GENERATIVE_LAYER.md +

docs/MILESTONE_BUILD_PIPELINE.md. -->

Humanity — Combat / Boss / Encounter System

Overview (workflow synthesis):

Delivered. C:\dev\humanity-forgotten\docs\COMBAT_ENCOUNTER_SYSTEM.md — the unified, canon-cited, buildable spec merging all five streams.

What it is: a single T99-operational-tier index-and-systems doc that sits under T1_Combat_System_Spec [ACTIVE v1.0], invents zero world canon, and traces every claim to ACTIVE canon / a RULED proposal / a batch-1 PROPOSAL. Five parts + two appendices:

Key synthesis contributions (labeled [EXTENSION], each anchored): resolved the audit's Part-3 gaps into bindable proposed shapes — the win-condition enum (3.3), character-engagement = a standalone 8th Composure node decoupled from astral (3.4, RULED D-COMBAT-TD R4), Patterns/Puzzles/Preparation axis definitions (3.5), the phase-trigger enum + tighten/multiply (3.6), the 7↔10↔5 mode-taxonomy reconciliation (3.7), sub-boss differentiation rules that bound the authoring load (3.11), and the knowledge-economy death reward (3.12). A closing traceability table maps all 12 gaps to their section.

Everything Josh-authored (chapters, verbs, names, cardinal numbers) is left to him; all absolute numbers stay deferred to Phase 5M; open contradictions carry their ledger IDs (D-3/D-4/D-5/D-9, anchor #2). The doc correctly sits in the operational tier alongside PIPELINE_ADAPTER/ROADMAP and does not enroll in the authored-canon lint gate.

---

PART A — Encounter Ecosystem

Humanity — Encounter / Boss Ecosystem Taxonomy

Full markdown saved at C:\Users\joshu\AppData\Local\Temp\claude\C--dev-humanity-forgotten\f75a84da-bb17-40db-a02b-876622ee3842\scratchpad\encounter_boss_taxonomy.md. Delivered inline below.

0. Two orthogonal axes

Every encounter sits on two axes at once, and conflating them is the common error:

Ruling 7's "everything woven" means a chapter draws its 2-4 sub-bosses from different source systems and different threads — never all from the House-of-Velheim op (CHAPTER_BUILD_TARGET.md §1). Classes §1–§9 are points on the *source* axis; §10 shows how they stack onto the *structural* axis.

1. Main chapter boss — 75

One per chapter Ch 2–77, minus the fairy-realm bookends. No rows for Prologue, Ch 1, Epilogue (L1 = traversal/cutscene); Ch 76-77 = one reveal fight. [JOSH-AUTHORED] count + the 5 Tier-A anchors Ch 8/23/38/55/65 (T1_Combat §7 L209-215); the other 70 are the Claude-created, adversarially-reviewed proposal in boss_roster_rows.json (Ruling 2), names still [DECISION NEEDED - JOSH]. Every row obeys Pillar-8 doctrine: blended/never pure-DPS, primary+secondary verb, three-axis Patterns/Puzzles/Preparation (never 100/0/0), moveset-evolving phase escalation, ≥2 counters/signature, Hades reward on win AND death. Structural template = Ch 17 Entu Priestess three-phase. Non-standard mains (Ch 69 argument, Ch 42 Debt Engine) are real playable fights, not cutscenes.

2. Per-chapter sub / mini-bosses — ~150–300 (mid ~225)

2-4 per chapter → one main boss (CHAPTER_BUILD_TARGET.md §1). [DERIVABLE] from 2-4×75; per-chapter count [JOSH-AUTHORED via cascade]. Anti-monoculture rule: sub-bosses surface across different threads and different source systems (exemplars Ch 3 / 42 / 43 each spread Naga-fauna + oppressor-combat + folklore-boss → main). This is where trade-gate, side-quest, thread, and fauna bosses physically appear inside a chapter, each carrying one of the 12 woven facets.

3. Thread bosses — 22 threads, as antagonist expressions (not a separate roster)

[DERIVABLE — no new count.] Thread bosses are a *lens* on §1–§2, not a ninth roster; "sub-bosses across different threads" is exactly how the 22 threads get playable expression. Thread 3 (Antagonist Family) alone anchors distinct forms at Ch 2,3,4,6,8,14,16,17,18,22,23…76 (T1_Threads_22 §Thread-3). The one place a thread IS the boss: Cassius Velheim (Ch 76) + Father/Elven King (Ch 75). Thread 1 resolves via *Witnessing*, not a fight; Thread 6 has no antagonist. Absorbed into the 75 + ~225 totals.

4. Trade-questline gate bosses — 10 trades × 12-tier = up to 120 gates

[MIXED.] "10 trades / 12-tier / every tier quest-gated" is hard canon (CVD §12.1, §14.2); the "120" phrase is NOT in CVD — it's CLAUDE.md's 12×10 arithmetic, flagged not invented. Not every gate is a boss: Outer-Order T1–T5 gates = playable TESTS (mini-bosses), T5/T6 threshold ceremonies = NARRATED, Inner-Order T6–T8 = full tests, T9/T10 = prestige space. Boss-class fraction is [JOSH-AUTHORED per trade via cascade]. Ten trades each have 1 ancient + 1 modern home base.

5. Side-quest bosses — 12 buckets, many bosses each

[DERIVABLE bucket count = 12 canon; per-bucket JOSH-AUTHORED.] SQ1 Folklore…SQ12 Secret Societies (CVD §11.1), each 1M+ words → many bosses across the arc. SQ9 Cryptids and SQ1 Folklore overlap the fauna/folklore classes rather than being disjoint. Appear as chapter sub-bosses and free-standing open-world encounters.

6. Legendary-weapon bosses — 72

36 Brute + 36 Trickery, each with a Legendary quest whose climax is a boss-class encounter granting the Legendary form (T1_Combat §5/§6). [DERIVABLE count = 72 canon; identity JOSH-AUTHORED at Phase 6.] 68 documented + 4 to-add slots (Ch 9-10, 47-48, 29 Sámi, 57 Australia). Completionist/Layer-3 content — questline capstones in the weapon's home region, not on the main ladder.

7. Ability / school bosses — 13

13 CVD Pillar-4 schools, each a teach→grant→showcase questline whose climax boss GRANTS the verb (school_roster_rows.json). [roster count = 13 canon; the 13-row proposal is Claude-created, Ruling 2.] The 185 abilities are canon; schools teach *verbs*, not counts. Maatherion (Ch 69) is where the school and the boss are the same object. Showcase engineered into the NEXT chapter (metroidvania retroactive-unlock). Guardrails: no school teaches Poison; no gate grants the 8 pure numeric buffs; the four threshold schools form a strict relay.

8. Fauna / creature encounters — tameable + hostile, folklore substrate

[JOSH-AUTHORED cardinal numbers — verbatim canon (CVD §17.12):] 33 legendary species = 21 mortal (7 Ground/7 Flight/7 Water) + 12 elven; 22 familiar slots = 21 base + 1 path-variable (childhood familiar, reunited Ch 58 Antarctica); binding-stone mechanic. Non-legendary hostile/tameable fauna = open-ended per region (T0_Creature_Roster, schema live). Three modes: person-to-animal combat (hostile sub-bosses), bonding-quest encounters (21+1 legendary + Trade 1/8), folklore-as-real fauna (CVD's L1 promise "mythological creature as real fauna"; Creature_Roster carries folklore_behavior_substrate + attribution columns). Ch 57 fauna combat IS permitted (Ruling 5). Per-region rosters [JOSH-AUTHORED via 69 region pages]; substrate [deep-research at build time].

9. Environmental / atmospheric bosses — the protected/relief playable layer

6 canon-documented instances (Ch 10, 20, 29, 38, 45-46, 57 — T1_Combat §9.2) + a Claude-proposed 9-landmark ledger (adds Ch 51, 52, 70, staircase beats 36/37). Cannot be defeated by damage — canon 4-step protocol: Perception → Vril-management → Restraint → Purgation; baseline Intuition+Constitution+Integrity; graduated failure (partial purge strengthens the Ch 39+ revisit = Hades loop). This is the ruled answer to "no combat" chapters (Ruling 5/7): L1 stays action-packed everywhere; defending protected people from oppressors is a first-class combat layer alongside the protocol. (9b) Tier-C MMO world bosses (100-player, 4 teams) are categorically separate and out of the Solo-Base count (T1_Tier_C_MMO_Spec).

9a. HL_0004 — what "never left combat-absent" is measured on (RULED, WQ_0045, 2026-08-04)

HL_0004 is universal and canonical: "A culturally protected space still delivers a real fight. Combat there comes from antagonist intrusion AND/OR the tradition's own monsters, honored-adversary champions, or environmental/astral boss encounters — a protected site never needs a manufactured Velheim raid to be playable, and is never left combat-absent." The id's TEXT was never in doubt; its GRAIN was, and 48 registry rows were re-deriving the answer one row at a time (29 declaring an omission, 19 a satisfaction). This section is the answer, so a row cites it instead of restating it. It interprets HL_0004 and changes nothing in it; the hard-line row itself is Josh's surface and is untouched.

The subject is the culturally protected PLACE — not the Zone Catalog boolean, and not the chapter.

A boss PHASE staged on that ground discharges the id, and traverse is a real exercise of it. Ruling a traverse-primary phase "not a real fight" would import a strike-chauvinism Pillar 8 explicitly rejects — no axis is ever 100-0-0, BE_0011's own primary verb is traverse, and the v3 conversion re-grounded BE_0011_S3 from strike to traverse for exactly this reason. The discharge is not free, though: the row must NAME the phase, the boss verb exercised on that ground, and what the ride does NOT claim. EG_0154 is the worked exemplar — it names BE_0011.P1, the primary verb traverse, the boss's own composure node, and then names the two counters that are exercised at the station in P2 and not here. A corridor with no exercised boss behaviour is not a discharge.

Four verdict values, and every declaring row carries exactly one.

A registry lane records the verdict; it never mints the encounter. Staging a beat is the spine owner's act. An OPEN verdict is discharged by a spine beat, never by a registry-side invention — the same law that refused a Ch-9 boss row without a slated beat (CR_0184) and refused an encounter on the Fang shelf at Ch 11 (WQ_0044).

10. Per-chapter layering

open-world trash + hostile fauna (§8)          — dozens, emergent
SUB-BOSS 1 ← thread expression (§3)            ┐
SUB-BOSS 2 ← trade-gate OR side-quest (§4/§5)  ├ 2-4 across DIFFERENT threads/systems
SUB-BOSS 3 ← fauna/folklore OR school (§7/§8)  ┘
MAIN CHAPTER BOSS (§1) ← the peak
   (= school climax at grant chapters §7; = env protocol at protected/relief §9)

The sub-boss ladder is the delivery vehicle for the 12-facet weave (combat/exploration/discovery/puzzles/mystery/lore/trades/gathering/side-quests/engineering/folklore/superstition). Three-layer surfacing always: L1 complete alone; L2 investigatable substrate; L3 metaphysical-through-mechanics, no pre-Ch-76 Grand Sage hint.

11. Anti-staleness (four executable rules)

1. No two consecutive chapters share dominant combat type (T1_Combat §9.3; CVD §Pillar-1.12); only sanctioned same-type pair = Ch 40-41. The 3 flagged same-mode main pairs (4-5, 37-38, 43-44) are fixed in cascade respec where sub-bosses supply the real per-chapter variety.

2. Every 5-chapter window ≥3 distinct combat types.

3. Ten encounter categories rotate (person-to-person, person-to-animal, group/formation, boss, social boss, environmental, stealth, naval, mounted, vril-projection).

4. Win-condition + verb rotation (HP/part-break/pacify/perceive/restraint/declare/bypass) so resolution differs even when opponent type recurs.

Enforcement point = the mode_variety_check registry, run per node by the cascade. Agility-course biome-rotation adds a parallel non-combat variety dial.

12. Rough total

Designed boss-class encounters, Solo-Base: ~350–500 = 75 main + ~225 sub + ~72 weapon + ~13 school + ~22 species + ~6-9 environmental + the boss-class fraction of the 120 trade gates and 12 SQ buckets. Thread bosses (§3) are NOT additive — already counted inside the 75 + ~225. On top of that, canon promises "dozens of designed encounters plus emergent open-world plus infinite side-quest combat" per chapter, so total encounters are effectively unbounded; ~350-500 is the *designed-boss* figure. Distribution: peaks (75 main) with 2-4 foothills each; act-anchors thicken at 8/23/38/55/65 + Realm War 71-73 + endgame 74-77; environmental bosses in protected/relief valleys (10/20/29/38/45-46/52/57/70); weapon/school/species capstones distributed as optional content.

13. Pipeline-pass mapping

Main bosses → T0_Boss_Encounter_Registry (0.E drafted → sign-off → cascade). Sub-bosses/thread tags/env bosses → same registry, Phase-6 /spine-chapter cascade. Trade gates → T0_Quest_Definition_Registry+T1_Trades_Master. Side-quest → T0_Questline_Index+T5. Weapons → T0_Weapon_Registry+Tier-6 (Phase-6 region build). Schools → T0_School_Registry (0 rows → proposal). Fauna → T0_Creature_Roster+T0_Familiar_Registry (DRAFT, schemas live; Phase-6 + deep-research). MMO → Tier-C rows (Session 5J). The 75-row main layer is already drafted; everything else populates during the Phase-6 cascade.

14. Josh-authored vs derivable ledger

Key source files (all absolute): C:\dev\humanity-forgotten\_source\01_Tier_1_Foundation\T1_Combat_System_Spec [ACTIVE v1.0].md (§7/§9), ...\T1_CVD_Creative_Vision_Document [ACTIVE v1.4].md (§11-14, §17.12), ...\T1_Threads_22_Master_References [ACTIVE v2.2].md (Thread 3), C:\dev\humanity-forgotten\docs\proposals\CHAPTER_BUILD_TARGET.md, ...\ROSTER_PROPOSALS.md, ...\boss_roster_rows.json, ...\school_roster_rows.json.

---

PART B — Boss / Combat System (phases · the ~30 clocks · RNG-vs-scripted · vril-difficulty)

Humanity — Boss & Combat System Design (real systems, canon-true, AAA-first)

Status: DESIGN PROPOSAL. Anchors only to ACTIVE canon; invents no canon (chapter/boss/verb assignments stay Josh's). This is the *systems layer* under T1_Combat_System_Spec — it specifies the interacting-variable machine that the per-boss roster rows (docs/proposals/ROSTER_PROPOSALS.md + boss_roster_rows.json) plug into. It contradicts no hard line I could find; where it extends canon it says so and cites the anchor.

Full file at: C:\Users\joshu\AppData\Local\Temp\claude\C--dev-humanity-forgotten\f75a84da-bb17-40db-a02b-876622ee3842\scratchpad\combat_system_design.md

---

0. The one-sentence thesis (what makes Humanity's combat novel)

**Difficulty is not a stat knob on the enemy — it is a *density knob on the world*, and that same knob is the game's cosmology.** Every action game scales bosses by inflating HP/damage/resistance. Humanity refuses that as the *source* of difficulty (DIFFICULTY_SYSTEM.md, amended 2026-07-30 by the twenty-eighth sitting item J5: some health and damage scaling exists, most of the difficulty comes from complexity, and difficulty never comes solely or mainly from inflated numbers — §9b). Instead the single dial is ambient vril density — literally how far the withdrawn fairy realm still reaches you (T1_Vril §1, §10). Turn the dial down and the *world gives you less*: telegraph slack shrinks, your recharge wells answer slower, and the boss's answer-tree gets pruned toward its one true solution. The boss never gets a bigger number. You have to do more because home reaches you less. That is the improvement: Souls-grade demand *without* the number-inflation lie, delivered as diegetic physics rather than a menu abstraction.

Everything below is built so a designer can turn exactly one global float (vril_density ∈ [0,1]) and have a Story-mode boss and a Sundered-mode boss be *the same authored encounter* at different world-tensions — no separate difficulty-tuned enemy tables, ever.

---

1. The core loop we're improving on (principles extracted, then bettered)

ReferencePrinciple we takeHow Humanity improves it
Sekiro / Elden RingReadable telegraph → punish-window loop; posture/poise as a second bar you attackKeep the loop but make **telegraph *slack* the difficulty variable, not damage. The posture-analog (Composure**) breaks on *mode-correct* verbs — a stealth or puzzle answer breaks it where raw DPS cannot.
Souls phase transitionsThe transition *recontextualizes* the fightPillar 8 forbids swap-and-replace: phases evolve, not swap (CVD §5 P8). A phase *keeps* the prior verb valid and *adds* demand — the fight grows a layer, it doesn't trade one.
Nioh / Sekiro Ki-pulsePrecise timing input that refunds resource, punishes greedVril-Pulse refunds vril on a tight window *only as ambient density permits*; at low density the window narrows and the refund shrinks. The world tightens your economy, not the enemy.
Nioh stance tripleThree stances vs. enemy tempoOur primary+secondary verb is a two-axis version welded to the 7 modes; the *secondary* verb is depth most players never learn — depth without gating (Pillar 12).
Monster HunterPart-breaks, status timers, environment trapsPart-breaks → Composure sub-nodes on named boss anatomy; traps → environmental-cycle timers (§4.5) a perceptive player weaponizes.
HadesReward on *win AND death*; room modifiers; aspectsCanon already mandates reward-on-win-and-death (CVD §5 P8). We formalize the death-economy (§7); "room modifiers" become each arena's vril-site layout (§6).
God of War RagnarökCinematic phase escalation; one-word difficulty + loreDifficulty presentation already adopts GoW (DIFFICULTY_SYSTEM.md); we make escalation diegetic — a transition changes the arena's vril weather.
MMO raid designTelegraphs, enrage timers, add waves, mechanic stackingKeep telegraphs/adds/stacking; replace the enrage timer with a Withdrawal clock (§4.7) — miss the window and the *realm recedes* (density drops mid-fight): the enrage pressure with zero inflation.
Roguelike RNG-vs-authoredWeighted random with authored guaranteesThe Sigma Constraint (T1_RNG_Sigma_Constraint_System) is our canon answer: bounded randomness, no streaks, no droughts (§8).

The loop, stated once: *Read the world's tell → answer with the mode-correct primary verb → the boss defends, forcing your secondary verb → land the mode-break to open a vulnerability window → spend it before the environmental cycle or Withdrawal clock closes it → the phase evolves and adds a layer → repeat at higher world-tension.* Win or die, the run pays out.

---

2. Pillar-8 compliance is the schema, not a checkbox

Every boss row already carries a primary verb / secondary verb pair and a blend axis (e.g. strike / declare, 40/35/25) in boss_roster_rows.json. The system reads those fields literally:

The seven canonical modes (direct / stealth / puzzle_routed / environmental / vril_management / familiar / astralCVD §5 + Combat_Spec §9) are the palette. A boss's primary and secondary verbs must sit in different modes for ≥1 phase — one rule that makes every fight blended by construction, not by review.

---

3. The phase model — "evolve, not swap" as a state machine

Model each boss as a layered accretion machine: a stack of Layers; a phase transition pushes a new layer without popping the old one.

Phase 1:  [ L1 primary-verb loop ]                      ← action-fun spine (L1 player)
Phase 2:  [ L1 loop ] + [ L2 forced secondary verb ]    ← the blend arrives; old verb STILL valid
Phase 3:  [ L1 ] + [ L2 ] + [ L3 recontextualize ]      ← character/thesis pressure; both prior layers live

---

4. The "dozens of factors on timers" — the full clock enumeration

Every one is a real runtime clock/table; the density dial modulates the ones marked [DIAL], and nothing here inflates an enemy stat.

4.1 Tell timers (windup)tell_windup_ms per attack. [DIAL]: shown windup = base × (0.6 + 0.4 × vril_density). Wellspring reads generously; Sundered = "slack cut from every telegraph" (same animation, less lead). tell_channel (visual / audio / vril-polarity shimmer) must be readable without color alone (accessibility hard req).

4.2 Cooldowns & rhythmattack_cooldown_ms; combo_gate (anti-loop); aggression_meter (0–1) that biases the RNG move-table toward pressure the longer you turtle, decays when you press. Anti-passivity governor; shifts *selection weight*, never damage.

4.3 Vulnerability / punish windowspunish_window_ms opened by a counter or Composure break. [DIAL]: base × (0.7 + 0.3 × density). vuln_node = the anatomy/behavior exposed (part-break analog); hitting it advances a Composure sub-clock (§5).

4.4 Status / DoT clocks (bounded, mode-flavored)bleed / stagger / chill-root / burn / poison / soak (vril-wet → conducts next Air/Lightning hit). Each is a countdown with a stack cap; capping triggers a break event (chill→shatter). boss_status_resist_regen sheds a stack every N s *unless the env cycle is in the matching state* — status couples to the arena, not to a resist stat.

4.5 Environmental cycles (the arena is a clock)env_cycle_period_s + env_phase: every arena runs a periodic state machine grounded in real regional substrate (tide in a Swahili dhow fight, geyser/altitude pulses at Uyuni, sandstorm intervals, waterfall/obelisk vril-tide — T1_Vril §5; Combat_Spec §9.2). L2/L3 players time offense to the cycle; L1 still wins on reflex, slower. env_trap_nodes = hazards you trigger *against* the boss (often the secondary-verb answer for environmental bosses). The cycle is read-only to difficulty — the dial changes react *slack* (4.1), not cycle speed (that would be fake difficulty).

4.6 Add-wave timersadd_wave_period_s / size / table / cap (weighted, Sigma-bounded). Adds are Composure pressure, not HP padding — they force the secondary verb while you're mid-primary. [DIAL]: density changes *answer availability* (low density → the ambient-vril crowd-clear costs more, refunds less), not wave rate.

4.7 The Withdrawal clock (enrage replacement)withdrawal_timer_s. On expiry, instead of a damage spike, ambient density drops one notch (vril_density -= step): tells tighten, wells slow, answers prune — the enrage *pressure* with zero inflation, exactly as canon says the realm is *already receding* ("depletion is an ongoing process," T1_Vril §10). Resolving a phase resets/rewinds it — competent play literally holds the realm open.

4.8 Vril-ambient modifiers (global density field)vril_density (the dial) sets telegraph slack (4.1), punish-window width (4.3), recharge-well answer latency (T1_Vril §5), and answer-pruning depth (§9): one float, four coupled effects, plus the arena's baseline VFX weather so the tension is *visible*. integrity_band_field = the mirrored 5-band from IPW §13 (L1 +10% healing … L5 +10% dmg +10% vuln) — a player-state modifier from the morality system, orthogonal to the dial, and the one stat delta canon allows: on the *player*, chosen by their own alignment, not spawned by difficulty.

4.9 Player-tell adaptation (the boss reads YOU)player_habit_vector: a rolling histogram of *your* tells (dodge direction, favorite opener, turtle ratio, spam). The move-table (§8) is weighted against your habits — roll-spammers baited into a delayed sweep, turtles guard-broken. Sigma-bounded so it *nudges*, never frame-perfect-punishes. adaptation_gain [DIAL]: higher difficulty → faster learning → a *smarter* opponent, not a stronger one.

4.10 Composure clocks — see §5. 4.11 Phase-transition triggers — see §3. 4.12 Vril-Pulse windowpulse_window_ms, a tight refund input after a spend; [DIAL] narrows/shrinks as density falls. Rewards rhythm, punishes greed via the economy, never via damage.

Count check: ~30 interacting variables (windup, channel, cooldown, combo gate, aggression, punish window, vuln nodes, 6 status clocks, resist regen, env period/phase/traps, add period/size/table/cap, withdrawal clock, density, recharge latency, pruning depth, integrity field, habit vector, adaptation gain, composure + sub-nodes, phase triggers, pulse window) — ~half dial-modulated, none an enemy HP/damage number.

---

5. Composure — the mode-agnostic "posture" bar (the keystone)

Souls-likes give you poise/posture that only combat fills. Humanity's second bar is Composure, and its novelty is that every mode can deplete it — that is how "blended, never single-mode" becomes a *felt mechanic*.

Composure is a boss-side meter with named sub-nodes (part-break analog), each depletable by a specific mode's verb: direct node on parry/heavy-punish; stealth node by break-LOS-and-reengage (backstab-grade); puzzle_routed node by solving the arena interlock (align obelisks / complete inscription); environmental node by triggering a trap on-cycle; vril_management node by matching the boss's polarity and starving its manifestation (§6.2); familiar node via bonded paired-operation (canon at Ch 73 Sub-Phase C, TGP-exclusive); astral node only in the astral layer (Hard-Line chapters, Pillar 11).

Biggest single novelty: posture you break with puzzles, stealth, environment, familiars, and vril — not just your sword.

The routing this section states in prose has a data home: registries/T0_Composure_Routing [DRAFT v0.1]/Sheet1.csv, one row per live ability_class value in T0_Ability_Tree_Registry, carrying that class's primary and secondary Composure node, whether it breaks a node or only enables the break, its engine mode tag, and which counter-class demands a member of the class can answer. Every row cites the sentence above (or §3, §4.1, §4.3, §4.5, §6.1, §6.2, Appendix §1.2, or T99_Translation_Combat §5.4 for the standalone eighth character-engagement node) in its own source_ref column, so the mapping is auditable row by row rather than reconstructed from a hand-coded switch. The table is registered in docs/registry_extensions.json (_deferred.composure-routing) and docs/fk_spec.json. It is INTERNAL routing only — mode and node tokens sit alongside damage types as engine plumbing and never reach a player surface, per the no-mode-taxonomy rule; players meet abilities by name and school. Two facts the table records rather than smooths over: no ability class satisfies a parry_only demand today, because parry is a weapon primitive gated to parry-capable weapons rather than an ability class; and 48 of the 185 ability rows carry an empty ability_class (the whole Layer-B hybrid-element band), so the routing covers 137 of 185 rows until that column is populated.

---

6. Arenas, environmental bosses, "room modifiers"

6.1 Arena as a Hades modifier space — each arena has a vril-site layout: recharge wells (T1_Vril §5), trap nodes, stealth cover, high ground for astral/familiar, the env-cycle emitter. The *same boss* in a different chapter's arena plays differently because the modifier space differs — our aspect/room-modifier variety, doubling as Pillar 10 regional combat identity (jungle/desert/steppe/ice movement, stance systems, weapon-of-origin bonuses).

6.2 Environmental / atmospheric bosses (canon's non-DPS win) — canon defines a boss class whose victory is *not* damage (Combat_Spec §9.2; CVD §12.3), 4-step protocol Perception → Vril-management → Restraint → Purgation. In systems terms: the "boss" is a vril-state field with hidden genuine_echo + negative_manifestation; the player runs a polarity-matching minigame (read the field, gated on Intuition/Constitution/Integrity → tune own vril to resonate with the echo → withhold combat-scale expenditure: a restraint_budget clock that, if you dump burst, destroys both → fail = environmental degradation + faction loss, canon). [DIAL]: low density → tighter restraint budget, fainter echo. Still L1-playable per Josh's ruling (CANON_AUDIT.md, 2026-07-03): L1 must be action-packed in every chapter; the protocol *is* the playable layer for protected/relief chapters, and WGM "no combat" loses to the Pillar-3 hard line — so even a no-antagonist chapter (Ch 57) delivers a real kinetic encounter, not a menu.

---

7. The death/win economy (Hades, formalized and canon-mandated)

Canon mandates reward on win AND death (CVD §5 P8).

---

8. RNG vs. scripted — the balance rule (canon: Sigma Constraint)

Rule: authored structure is deterministic; texture is bounded-random; nothing is unbounded.

---

9. How difficulty scales — the vril dial, in full, zero stat inflation

AMENDED 2026-07-30 (twenty-eighth sitting item J5): the dial below stands whole and is JOINED by a second family of levers rather than replaced by them — higher difficulty raises the RANGE and COMPLEXITY of the attacks and of the environmental hazards. Bounded health and damage scaling is permitted as the minority contributor (Josh's own words: "ofcourse there will be some health and damage scaling but most of difficulty comes from complexity"), and what stays prohibited is difficulty sourced solely or mainly from inflated enemy numbers. §9b states the amended law in full.

One global float vril_density, five diegetic tiers (DIFFICULTY_SYSTEM.md, RULED & CLOSED): Wellspring · Veiled · Fading · Sundered · → The Forgotten One. It changes four world-demand levers and nothing on the enemy sheet:

1. Telegraph slack (4.1) — higher = longer readable tells; lower = "slack cut."

2. World generosity (4.3, 4.8) — higher = wider windows + faster wells ("vril runs to you as freely as water off a fall"); lower = wells "distant and slow to answer."

3. Answer-pruning (below) — higher = many valid solutions tolerated; lower = "easy answers thin out with the substrate," down to one at the prestige tier.

4. Withdrawal aggression (4.7) — lower density = clock bites sooner, steps harder.

Answer-pruning, precisely: every boss's counter-tree is authored primary + secondary + tertiary+ (Pillar-8 guarantees ≥2). The dial doesn't add power — it prunes leaves off your answer-tree. *Wellspring/Veiled:* full tree, off-mode/cheese-adjacent still work, the world catches you. *Fading (the true tuning — the depleted air the protagonist breathes 75/77 chapters):* primary + forced secondary, no hand-holding, no punishment either. *Sundered:* off-mode/inefficient pruned; execute the intended primary+secondary cleanly; wells sealed slower. *The Forgotten One (post-Ch-77 prestige, NG+ door, not a menu toggle):* pruned to the single true answer; wells sealed mid-trial; the deliberately-standard seventh vril-seat un-pruned via device-integration for *new depth* (not a 13th mastery tier).

Accessibility is orthogonal (Attunements): judgment-free reception layer (colorblind/multi-channel vril-polarity readability, timing windows, remaps) tuning *how demand reaches you*, never *how thick the air is*, gating no content, available in every tier including the Forgotten One. Vril-polarity multi-channel readability is a non-negotiable L1-playability requirement — the environmental-boss perception verb must be legible without color.

Headline improvement: every AAA game lies a little — "Hard" = 3× HP, double damage. Humanity's Hard = *your home reached the edge of its ability to help you*, and that sentence is simultaneously the difficulty setting, the plot, and the physics. Same authored boss, five world-tensions, one float. No enemy has a difficulty-scaled stat block.

---

9b. Nature-derived counter classes and the response vocabulary (RULED, Josh 2026-07-30)

Authority: docs/spine/DECISIONS_PENDING_JOSH.md, the twenty-eighth sitting item J5, and its authority home in _source/01_Tier_1_Foundation/T1_Combat_System_Spec [ACTIVE v1.0] under Nature-Derived Counter Classes and the Complexity-First Difficulty Law. This section is the systems-layer reading of that ruling; the ruling itself is the tier doc's.

The counter class is not a flag a designer picks. It is a reading of the attack's own nature — geometry, reach, duration, persistence, and the body and weapon producing it — and the systems layer treats it as derived data that authoring records and the gates check.

9b.1 The seven response classes and where each one is answered

The four earlier classes keep their meaning exactly. The three new ones are the arena-wide answers the ruling names, and each lands on a column that already exists rather than on a promise.

Two of the three new classes are answered per ARENA rather than per chapter, and the schema has no arena-to-env-feature join today, so gate 28 declares their resolvers not-armed rather than passing them. That is the named missing input, not a silent green: the join is the work order. The row-count half of that note is superseded by measurement — T0_Environment_Grammar_Registry carried 2 seed rows when it was written and carries 178 today, and the affordance those rows offer is now ruled rather than left to per-row taste (§9b.1a).

9b.1a The arming law — attack_verbs is derived from the row's own physics (RULED 2026-08-04, WQ_0038)

A leg-9 critic measured the column and found it near-dead: 13 of 153 rows armed any verb at all, and the thirteen were geothermal, hydro, gaseous, structural, or one volcanic-scree mineral row. The discriminating pair made it a class question rather than a chapter one — EG_0004 (Ash-and-Scree Volcanic Slope) and EG_0133 (the Ch-10 stratigraphic descent) are the same typed profile cell for cell, and only one of them carried a verb. EG_0128 (Ch 9, Afromontane scree) is the same profile and also carried none, so the divergence began upstream of both legs.

The ruling is that this is DRIFT, not intentional sparseness, and the argument is the column's own spec rather than a preference. docs/proposals/systems/WS7_WIRING_BUILD_PLAN.md L105 pins the fixed eleven-member D-verb set, and docs/translation/T99_Translation_Combat.md Step 5 states the keying law verbatim — the set is "keyed to each feature's physical_properties_array and loaded_potential", a lava vent IGNITEs and VENTs, a snowpack slope AVALANCHEs. That is a derivation rule, and under a derivation rule two rows with the same deciding keys must carry the same verbs. Divergence is therefore drift by construction. The alternative reading — that sparseness is the design — was steelmanned and fails on the same evidence: it cannot explain why one of two identical profiles is armed, and it starves three declared consumers (the trigger_interrupt response class above, FACTORY_CONTRACT FR-007's arena mutation vocabulary, and the Chaos D-verb binding at Translation Step 5). Maximal arming fails in the other direction, because it would arm rows whose own columns declare no potential and no gift, which is invention.

The law, and it is one sentence: every affordance a row DECLARES gets the verb that consumes it, every loaded potential a row DECLARES gets the verb that releases it, a row that declares neither arms nothing, and a firewalled row arms nothing regardless. The firewall is protected_care_ref naming any hard line or vril site, or alteration_permanence_default reading hard_blocked. It is deliberately NOT env_boss_verb_disabled: the founding WS7 seed row EG_0001 carries that flag TRUE and arms D2_IGNITE;D10_VENT in the same row, so the column governs what a boss may weaponise back, never whether the surface has verbs at all.

Applied as a corpus-wide sweep on 2026-08-04, additive only — no authored verb was removed, and the sweep is idempotent. 33 rows changed; 32 previously unarmed rows took the verbs their own columns already required, and EG_0019 (Felling Line and Cut-Timber Stack) gained the D2_IGNITE its fuel:flammable gift had always demanded, which is the same defect the boarded finding named on EG_0137 sitting undetected inside the armed set. Zero care-protected row was armed, and no care, permanence, or enemy_usable column was touched. The two rows the finding named are answered: EG_0133 now arms D4_AVALANCHE;D9_HURL on the EG_0004 precedent, so Ch 10's one strike encounter at olduvai_gorge has a real environmental verb and not geometry alone, and EG_0137 arms D2_IGNITE on ground the Zone Catalog already functions for combat.

The sweep overreached on fourteen rows, and the fresh-context critic caught it (finding F2, repaired the same day). Those rows' own notes had already refused the verb, in writing, for a canon reason the derivation rule cannot read: EG_0010, where the encounter's ruled outcome is rescue and not kill, so no ring-out affordance is authored; EG_0120 and EG_0130, where no Ch-9 ability arms an environmental verb at all; EG_0128, where an avalanche loosed on that slope would hit the endemic wolves and ibex the encounter exists to protect; EG_0058 and EG_0067, where every belt of that scrub runs against a village's crop and grazing. Arming them made fourteen rows say one thing in prose and the opposite in the cell, which is exactly the living-source defect that teaches a later agent to hallucinate. All fourteen are restored to none, and the refusal is no longer prose only — each row now carries a machine-readable ARMING DECLINED: <D-VERB>[;<D-VERB>] declaration in its notes. That is the exception mechanism the derivation rule needed and did not have: the law still binds every row that declares nothing, and a row that has genuinely ruled otherwise says so where a script can read it. Measured after the repair: 32 of 178 rows armed, from 13 of 153 before the sweep (14 of 178 in the live tree, EG_0171 having landed in between) — the "14 → 46" line in the sweep's own commit message is off by one against that arithmetic and is corrected here.

The exception cannot be used to escape the law, because the gate holds it in both directions. A declining row is exempt from the gift-consumed, potential-released and profile-consistency teeth for the verbs it names, and three new checks hold the declaration honest: every declined token must be a real D-verb; a row must never ARM a verb it declines, which is the tooth that stops a future sweep re-arming a refusal in silence; and a declaration must answer a live derivation pressure, so a row cannot decorate itself out of the ruling with an inert refusal. One idiom is deliberately not read as a refusal — the registry's own "typed forward and unarmed" (EG_0033, EG_0102, EG_0008) means the verb IS in the cell while no chapter ability triggers it, which is a different statement entirely.

What the derivation actually READS, declared rather than left implied (critic finding F3). The keying is over DECLARED TOKENS — ambient_state_gift and loaded_potential — plus three property readings: thermal_state:hot, a massless gaseous medium, and a high-conductivity hydro body. It does NOT read physical_properties_array generally, so a row carrying flammability:high without a fuel gift arms no D2_IGNITE, and a non-hydro row carrying conductivity:high without a conductive gift arms no D6_CONDUCT. EG_0019 and EG_0174 are the pair that shows it: same category, same flammability, and the only deciding difference is the gift's spelling (fuel:flammable versus material:raw_latex). Whether the property array should arm directly is a real question and it was NOT ruled at WQ_0038; it is boarded for its own pass rather than answered by a sweep. Until then the deferral is kept honest by measurement: the gate counts the blind spot every run — 14 rows on the flammability axis, 5 on the non-hydro conductivity axis at this writing — and FAILS when that census grows, so a new row can never widen an unruled gap unremarked.

The control is now armed on the right axis, which was the third half of the work order. harness/check_env_arming.py is a registered gate with seven teeth — firewall integrity, verb vocabulary, gift-consumed, potential-released, profile consistency, declared-exception integrity, and the property-axis blind-spot ratchet — each with a mutation fixture that must fire it and a control that must not. The old alterable-ground control measured alteration_permanence_default only, so a row read as satisfied while its usable-in-combat affordance was zero: a control armed against the wrong axis, which is the noisy-gate-conceals class. Proof the new one is armed rather than merely green: run against the pre-sweep registry it exits 1 with 33 findings, naming EG_0133, EG_0128, EG_0151, EG_0137 and EG_0019 by id; run against the repaired registry it passes. It is also the single durable deriver — any future arming pass imports required() and declines() from it rather than forking the rule into another script.

Declared unexercised, so a later reader knows it was measured and not overlooked: D3_FLOOD, D5_FREEZE and D8_GROUNDWAVE have no arming trigger, because no live row declares an impounded potential, a frozen-water gift, or a groundwave-bearing property. thermal_state:cold is specifically NOT mapped to D5_FREEZE, because EG_0014 declares that gift and deliberately arms D11_OBSCURE alone.

9b.2 Elemental parry, derived from the recovered matrix

T0_Element_Effectiveness holds the Josh-authored grid as 124 rows (docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md). The rail carries three columns for the elemental half: attack_element (the attack's own element), parry_element_rule (physical / element_effective / element_named), and parry_element_ref (the named element when the rule narrows it).

9b.2b The mitigation scale — a successful parry is not a promised zero (RULED, Josh 2026-07-30)

Authority: docs/spine/DECISIONS_PENDING_JOSH.md, the twenty-ninth sitting, and its authority home in _source/01_Tier_1_Foundation/T1_Combat_System_Spec [ACTIVE v1.0] under The Mitigation Scale. Josh's words: "There's need to be a scale there. Not all 'parry's' whether physical or magic will negate 100% damage, if it's a much stronger attack then their parry or opposite magic then they'll still receive some damage."

The elemental parry is performed rather than selected: at the right parry-window moment the player puts up an elemental blast of the opposite or strong element forward of the incoming attack, and survives untouched or takes reduced damage. §9b.2 above says which element answers; this section says what the answer is worth.

9b.3 Difficulty is complexity, and the anti-inflation thesis survives

Higher difficulty raises the range and the complexity of attacks and of environmental hazards. Some health and damage scaling exists; most of the difficulty comes from complexity. Both halves are the ruling, and the ordering is the binding part.

9b.4 What is untouched

The chain meter stands whole (visible pips, five to seven or more correct reads in a row, wipe on any mistake). The Ch-2 reduced scope stands (docs/FUN_REBUILD_PLAN.md R2.2). The environmental-boss protocol stands (perception, vril-management, restraint, purgation). A parry-only attack defeats a dodge by its nature — geometry, duration, persistence — rather than by a flag that switches off i-frames, so the implementation expresses the physics and the class stays readable.

---

10. Worked example (reactions + counters + environment integrated)

Mid-game Tier-A boss, strike / declare (direct→character), blend 40/35/25, obelisk-lit desert arena, at Fading:

1. P1 (direct spine): readable sweeps; punish on the window, chip the direct Composure node; obelisk env_cycle pulses vril every ~18s — time your Vril-Pulse to it to stay flush.

2. Node 1 breaks → P2 pushes a layer: add-waves arrive; pure-DPS now steps the Withdrawal clock down. Forced secondary = environmental: trigger the sand-collapse trap on-cycle to clear the wave and expose a second node. P1's sweeps are *still live* (evolve-not-swap).

3. Node 2 breaks → P3 recontextualizes (character): the boss fights to be *heard*; win becomes a declare/weigh resolution (Entu template), integrity-band-routed. Damage alone won't end it — the Pillar-8 floor.

4. Adaptation throughout: left-dodge spam in P1 → P2's sweep baits left; turtling → aggression biases toward guard-breaks. Sigma-bounded = smart, not cheating.

5. Dial to Sundered: *same fight* — tells tighter, obelisk answers slower, environmental+character answers now required (pure-DPS leaf pruned), Withdrawal clock quicker. Nothing on the boss got bigger.

---

11. What is novel (the "don't steal, improve" ledger)

1. Difficulty = world density, not enemy stats — the most-copied AAA convention rejected and replaced with a diegetic physics dial that is *also the cosmology*. No competitor ties its slider to its metaphysics.

2. Composure you break with any of 7 modes — posture that stealth/puzzle/environment/familiar/vril/astral all fill, making single-verb play *mechanically* too slow: Pillar-8 enforced by pacing math.

3. The Withdrawal clock replaces the enrage timer — same escalation, zero inflation; failure makes the realm recede (the plot in real time).

4. Death pays diegetic knowledge (revealed tells) — Hades' cadence delivering the Souls fantasy; you win next time because you *learned*, demand unchanged.

5. **The boss learns *this run* (Sigma-bounded adaptation)** — smarter, not stronger; fair by construction (the σ floor forbids frame-perfect punishes).

6. Answer-pruning as hard mode — remove your shortcuts down to the one true answer, instead of adding enemy power: a more respectful "harder."

7. Environmental bosses are real, kinetic, L1-fun encounters with a non-damage win — "you cannot DPS this" as a *system* (polarity-match + restraint budget), not a cutscene.

---

12. Boundaries — what this does NOT decide (cardinal rule)

Mechanics only. It does not assign which boss sits in which chapter, each boss's verbs, blend weights, phase counts, or win conditions — those are the roster rows Josh authors/approves (docs/proposals/ROSTER_PROPOSALS.md + boss_roster_rows.json, marked *proposals*). Absolute numbers (windup ms, window ms, σ values, cooldowns, dial coefficients) are deferred to the Phase 5M balance audit exactly as Combat_Spec §4 defers them; coefficients above (e.g. 0.6 + 0.4×density) are illustrative shape, not locked values. No hard line is touched; each extension I added (Composure bar, Withdrawal clock, habit-adaptation, death-knowledge economy) is labeled, grounded in an existing anchor, and is a [DECISION NEEDED - JOSH]-class *proposal*, not a canon assertion.

---

PART C — Local-LLM Runtime Generative Layer (index; full: docs/RUNTIME_GENERATIVE_LAYER.md)

What it delivers

A buildable design for the runtime local-LLM generative layer that treats the dumb local model as pure upside over a deterministic truth spine — the /dev/continuo lesson (ROADMAP §8, START_HERE.md wiring doctrine) ported from build-time to runtime. Grounded in the repo's real artifacts, not invented ones:

§1 — The split (the load-bearing table). DETERMINISTIC = anything wrong-in-a-way-a-player-notices: damage, phases/timers/enrage (T0_Boss_Encounter_Registry), drops (T0_RNG_Drop_Table), abilities (T0_Ability_Tree_Registry, 185), fauna spawn/bonding (T0_Creature_Roster), worldstate/integrity-band, all hard-line-bound content, cultural depiction (HL_0002 primary-source rule), character canon (118), voice identity (§17.12/§17.5). GENERATIVE = surface only: boss taunts/barks, adaptive tactical hints fed by the sim's *own* next-move intent, fauna behavior flavor, NPC ambient dialogue/reactions, persona-bounded probe responses. The rule: the model performs, it never adjudicates.

§2 — Guardrail loop. A four-stage deterministic sandwich around one model call: (1) precomputed context pack = recall.py's "all-canon-for-a-node" query frozen per entity (persona + hard-line rule vector + fact whitelist + care band); (2) grammar-constrained decode (malformed output impossible by construction); (3) post-gen validator = runtime cousin of lint_canon_graph.py gates (denylist → hard-line rule vector → canon-graph name resolution incl. retired-alias reverse index → persona → anti-slop); (4) authored fallback on any hard-fail or latency miss. The model owns zero facts; the deterministic layer owns all of them.

§3 — AAA constraints. Latency budgets per class (≤120 ms P99 barks, off-render-thread), 3–8B quantized / 2–5 GB VRAM single shared instance, prefix-cached persona preambles, priority batching + speculative ambient, seedable sampler for replay/speedrun determinism, no write path into the sim, fully offline.

§4 — Alive without slop. Bosses that needle your *actual* death-cause because the sim told the model; folklore-true fauna; bounded NPCs whose deflection is itself characterful; anti-slop as a first-class gate. The differentiator from typical "AI NPC" demos: they let the model own facts and hope; here lies are structurally impossible.

§5 — Failure/reward encoding (the continuo core). A concrete F1–F10 table: each dumb-LLM failure mode → its deterministic catcher → its reward-pattern encoding, with F8 (malformed) and F10 (state mutation) *prevented by construction* rather than caught. Every caught failure feeds a local runtime_generation_log that grows the fallback bank + denylists and becomes eval fixtures; a nightly replay scores candidate model/prompt versions with the same §2.3 checks — a truth-recall-style first-try-pass-rate metric analogous to continuo's 0.965.

§6 — Buildability + Josh flags. Extends existing artifacts (canon_graph.json, planned recall.py, T0_Hard_Lines machine columns, T0_Voice_Registry substrate), reuses gate logic, and carries two [DECISION NEEDED - JOSH] flags (launch posture for high-care Ch 29/42/57 NPCs; target model/quant) plus the do-not-invent reminder that the runtime never self-canonizes — honoring the cardinal rule.

One note for your awareness: harness/recall.py does not yet exist on disk — it's the planned Stage-4 component in CANON_INTEGRITY_ARCHITECTURE.md §D/§E. The spec treats it as the shared truth-store interface for both build-time and runtime and adds one new offline exporter (recall packs) on top of it.

---

PART D — 5-Chapter Milestone Pipeline (index; full: docs/MILESTONE_BUILD_PIPELINE.md)

What it contains, grounded in the existing contracts

(1) The nine engines + dependency order. A contract-cited table (E0 book/research → E1 spine → E2 region → E3 boss → E4 quest → E5 lore → E6 art → E7 audio → E8 UE build), each with its owning BPC section, canon inputs, output store (live registries/ CSVs + build-asset store per PIPELINE_ADAPTER), and the recall.py query it uses. Plus an ASCII critical-path diagram and the hard ordering constraints, each traced to a real BPC cross-pipeline linkage (E1 locked state gates all downstream; E2 zones precede E4/E6; E6/E7 are leaves reading what E3/E4/E5 wrote; E8 is the read-only build-time sink).

(2) The 5-chapter milestone model. Recommends Ch 2-6 as Milestone 1 with node-by-node grounding (Flores → Manggarai → Bali → Borobudur → Sri Lanka), and five defenses: it's the head of the canonical build order, one coherent region cluster (shared books/reviewers), exercises the full verb floor plus the first environmental-protocol seed, contains zero §17.1 high-care chapters (debug the pipeline where mistakes are cheap), and nests wholly inside RR-12. Defines the repeatable 8-stage loop and a rigorous exit gate (machine gates scoped to slice nodes + critic/Josh batch sign-off + *actually playable*), tagged milestone/ms-NN.

(3) Cost staggering. Books filtered to ~9 titles for Milestone 1 (the exact BOOK_ACQUISITION Ch 2-6 anchors), online-first, with the expensive §17.1 acquire-ALL clusters isolated to their own later milestones; scanning scoped to the irreducible per-slice remainder (OCR tooling dormant otherwise, no ChromaDB); gating authored per-slice-row (flat per-milestone burden, free whole-file regression coverage).

(4) recall.py + graph per engine. Every engine is a recall.py consumer, inheriting the cited/complete/no-hallucination output contract, with the specific query shape per engine (recall node CH_NN as the load-bearing cascade query; recall band + recall hardlines for boss/art/audio safety; recall aliases as the §17.7 rename guard; recall counts at the exit gate).

(5) Boss/combat + local-LLM per chapter. E3 builds to the CHAPTER_BUILD_TARGET bar (2-4 sub-bosses across different threads + 1 main; Pillar-8 doctrine; the exact Milestone-1 roster rows from the approved proposal). The local-LLM layer is placed precisely in the BPC's runtime inference tier (never authoring canon): runtime NPC barks, within-encounter reactive behavior tuning, and the UE 5.8 MCP build-time authoring assist — all reading compiled data tables only, constrained by the baked-in recall hard-line fields.

Three [DECISION NEEDED - JOSH] items surfaced with recommendations (slice size 5 vs RR-10 window; Ch 2-6 as the first slice; local-LLM runtime model pin). No world canon invented; the doc sits correctly in the T99 operational tier alongside PIPELINE_ADAPTER/ROADMAP and does not turn the harness gates red.

---

APPENDIX — Combat/Boss/Quest Canon Audit (the baseline the design ENHANCES, never contradicts)

Combat, Boss & Quest-Phasing Canon Audit — the baseline the design must ENHANCE, never contradict

Scope: what *Humanity* has already written about combat, bosses, and quest phasing, as of the 2026-07-04 repo state. Every claim carries a cite. Three parts: (1) CANONIZED mechanics, (2) encounter LAYERS canon implies but has not systematized, (3) GAPS a boss/encounter needs mechanically that no doc specifies.

Source abbreviations and authority order (CVD wins all conflicts per CLAUDE.md):

Status note that governs the whole map: CVD §12 + Pillar 8/11/12 and COMBAT are hard canon. The 75-boss roster (BOSSJSON), the per-chapter sub-boss rule, the difficulty assist layer, and the encounter-layer taxonomy in Part 2 are PROPOSALS/RULINGS awaiting batch-1 sign-off — not yet registry-populated (ROSTER lines 3, 446; BOSSJSON status field). The T0_Boss_Encounter_Registry is a bare stub: one title row, zero data rows (registries/T0_Boss_Encounter_Registry [DRAFT v0.1]/Sheet1.csv), and mode_variety_check is populated on only the two fairy-realm bookend chapters in T0_Chapter_Index, everything else [POPULATE→...] (Chapter_Index CSV rows 2-3).

---

PART 1 — What is CANONIZED (the immutable baseline)

1.1 The blended-mode boss doctrine (Pillar 8) — hard canon

1.2 The seven combat modes (§12.2) — hard canon

CVD §12.2 (L654-662) enumerates the modes every chapter must combine ("No chapter coasts on one combat mode"):

1. Direct combat (weapon-and-ability engagement)

2. Stealth / restraint engagements

3. Puzzle-routed combat (boss encounters with non-combat resolution components)

4. Environmental hazards

5. Vril-management combat (routes through vril resource discipline)

6. Familiar-leveraged combat

7. Astral / dream-world combat (Hard Line chapter sanctuary preservation per Pillar 3)

Distribution rules (hard canon, CVD L664; mirrored COMBAT L366-367):

COMBAT §"Combat Variety Framework" extends this to ten encounter categories for its own distribution audit (COMBAT L319-330): person-to-person, person-to-animal, group combat, boss encounters, social bosses, environmental/atmospheric bosses, stealth, naval, mounted, and vril-projection combat. (Note this is a ten-category encounter taxonomy distinct from the CVD seven-mode list — see Gap 3.7.)

1.3 The environmental / atmospheric boss protocol — hard canon

A distinct boss type that is not a person, animal, or conventional opponent — an environmental/atmospheric vril-state that cannot be defeated through damage (CVD §12.3 L668-676; COMBAT §9.2 L332-360).

1.4 Restraint / protected & relief chapters — hard canon

1.5 The damage formula & defensive surface — structurally canonized, numerically deferred

1.6 The five Tier-A boss anchors — hard canon (corrected)

1.7 Unified twelve-tier mastery & quest-gating — hard canon

1.8 The vril-density difficulty dial — RULED canon (NOT HP inflation)

DIFFICULTY_SYSTEM.md is RULED and CLOSED (Josh, 2026-07-04, DIFF L95). This is the strongest post-baseline addition:

The proposal-stage difficulty document (ROSTER §5) supplies the underlying design contract that the roster rows obey — one canonical difficulty, in-fiction relief valves, defeat model, assist toggles — but its *names* are superseded by DIFF (ROSTER L1 banner). Load-bearing pieces still live:

1.9 The per-chapter build target — RULED work orders (rulings 5-7)

CHAPTER_BUILD_TARGET.md (BUILD) canonizes the per-chapter quality bar Josh ruled 2026-07-04:

1.10 The agility-course system — hard canon (traversal layer)

77 courses, one minimum per chapter; three variants (Standard / Hardcore / Puzzle); timed, hazard-rich, tied to Book of Trades and collectibles; biome-rotation discipline; integrity-band cosmetic title variants on Hardcore (COMBAT L249-311). This is the canonized traversal-challenge layer parallel to the boss layer.

---

PART 2 — Encounter LAYERS canon IMPLIES but has NOT systematized

Canon defines individual encounter *types* and mastery *anchors*, but the only place these are assembled into a coherent per-chapter encounter stack is the PROPOSAL layer (BUILD + BOSSJSON), which is not yet ratified or registry-populated. The layers below exist implicitly in canon; the systematization is the design gap.

#LayerCanon basis (implies it exists)Systematization status
2.1Main chapter boss (one per chapter, Ch 2-77)Pillar 8 (CVD L214); Tier-A anchors (COMBAT L209-215); Entu template (CVD L682)PROPOSED as 75 rows (BOSSJSON), 0 registry rows. No canon per-chapter roster exists outside the proposal.
2.2Per-chapter sub/mini-bosses (2-4, thread-woven)Ruling 7 / BUILD L10-17 (RULED work order). No CVD/COMBAT text specifies a sub-boss tier.RULED intent only. BOSSJSON populates the *main* layer; sub-boss rows are explicitly deferred to cascade population (BUILD L76-80). Un-authored.
2.3Thread bosses (encounters anchored to specific of the 22 threads)BUILD L14 "surface across DIFFERENT of the 22 threads"; thread_anchors in Chapter_Index schemaImplied by the sub-boss ruling; no thread→boss mapping table exists.
2.4Trade-questline gate bosses120 quest gates = 12 tiers × 10 trades (CLAUDE.md numerical canon); tier gates require quest-unlock (CVD L977, L614-646); Ch 23/25 anchor is a "trade arc gate" (COMBAT L212)Gate *economy* proposed in school roster (ROSTER §3.1, the "120-gate allocation"). No boss-form spec for a trade gate. Derivation of "120" is open ledger item D (ROSTER L419).
2.512 side-quest bosses12 side questlines are numerical canon (CLAUDE.md; CVD §17.6); "infinite side quest combat" (COMBAT L315)Named as a breadth layer (ROSTER L328). No SQ boss specs, no roster. T0_Questline_Index is DRAFT stub.
2.672 legendary-weapon bossesEvery weapon carries a "Legendary quest (cultural and historical questline anchor)" at Prof. Level 99 (COMBAT L124-126, L177); Legendary form + Legendary abilityStructurally canonized *per weapon* but content deferred to Tier 6 detail docs + Phase 6 (COMBAT L23, L483). No legendary-quest boss is authored.
2.7Ability / school bosses13 CVD Pillar-4 schools (CVD L189); school questline teaches→grants→showcases a verb (ROSTER §3)PROPOSED as 13 school rows (school_roster_rows.json), incl. Maatherion where "the school IS the boss" (ROSTER L157). 0 registry rows (School_Registry is DRAFT stub).
2.8Fauna / creature encounters"Person-to-animal combat: territorial large fauna, documented dangerous species per region" (COMBAT L322); 33 legendary species, 22 familiar slots (CLAUDE.md)Encounter *type* canonized; no creature-encounter roster. T0_Creature_Roster and T0_Familiar_Registry are DRAFT stubs. Familiar-leveraged combat is mode #6 but unspecified mechanically.
2.9Environmental bosses (the protocol layer)Fully canonized (COMBAT §9.2, six instances); CVD §12.3The one layer that IS specified as a mechanic. PROPOSAL adds a hard-capped ledger of 9 full landmarks + 2 staircase beats (BOSSJSON philosophy; ROSTER L30) — a budget discipline canon does not itself impose.

Cross-cutting observation: BUILD L76-80 is the only place that stitches these into one pipeline ("expand from the approved 75-row main-chapter-boss layer to add the per-chapter sub-boss and thread-woven rows; School_Registry, Questline_Index, trade/folklore/creature registries supply the woven facets"). That stitching is a ruling, not a built system — the registries it names are empty stubs.

---

PART 3 — GAPS: what a boss/encounter needs mechanically that canon has NOT specified

These are the holes the design must fill. Each is a thing Pillar 8 / §12 / the build target *demand* but no doc defines.

3.1 Numerical combat values are entirely deferred

The whole damage formula, integrity-band percentages in absolute units, sigma deviation in absolute units, vril-seat-match bonuses, cost-class→damage-range mappings, and every defensive timing window are deferred to a Phase 5M balance audit that has not happened (COMBAT L92-94, L392, L419). No boss can be numerically tuned, and "no boss is a pure DPS check" is currently unverifiable because there are no DPS numbers at all.

3.2 The T0_Boss_Encounter_Registry is an empty stub, and its schema was built for MMO World Bosses, not solo chapter bosses

The registry has zero data rows (registries/T0_Boss_Encounter_Registry [DRAFT v0.1]/Sheet1.csv). Its schema (SCHEMA §4.1 L844-873) is production-pipeline-shaped — boss_id, phase_breakdown_object, engagement_modes_object, ue5_boss_class_ref, mesh/voice/cue/cinematic FKs — and is scope-locked "at MMO build phase," authority split between COMBAT (Gate 8) and T4 (Cassius) (SCHEMA L846-848). It has no columns for the things the roster actually needs: primary/secondary verb, three-axis Patterns/Puzzles/Preparation split, win-condition enum (HP/part-break/pacify/perceive/restraint), per-signature counter enumeration, escalation vector, or the Hades win-AND-death reward. The proposal's rich row model (BOSSJSON) has no schema to land in. This is the single largest structural gap.

3.3 No win-condition taxonomy is canonized

The proposal uses a de-facto enum — HP / part-break / pacify / perceive / restraint (BOSSJSON rows) — but no canon doc defines these victory conditions or their mechanics. CVD says environmental-boss victory "is not measured in damage" (L676) but never enumerates the alternatives. "Pacify," "part-break," and "perceive" as win states are invented at the proposal layer.

3.4 "Character engagement" is a mandatory Pillar-8 field with no mechanical definition

CVD L218 makes "Boss without character-engagement field = pillar violation" an executable test, but nowhere defines what the character-engagement mechanic IS — dialogue rounds? moral choice? relationship state? The Entu template gives a *shape* (moral descent → philosophical confrontation) but no system. Every boss must have it; no boss knows what it is. ✅ RULED (D-COMBAT-TD R4, Josh 2026-07-19): character-engagement is a STANDALONE 8th Composure node, decoupled from the astral node (astral stays Pillar-11 hard-line-gated) — integrity-band-routed, present on every MAIN boss for ≥1 phase, verbs varied and woven-not-bolted onto pure-strike mains; a talk-boss's break = completing the recitation/refutation. Machine form = the character_engagement_node column.

3.5 The three-axis Patterns/Puzzles/Preparation split has no source authority

The "never 100/0/0" axis split is central to the build target (BUILD L20) and every BOSSJSON row carries an axis_split, but it originates in docs/ROADMAP.md §0.E design principles — not in CVD or COMBAT. It is a proposal-layer construct that needs ratification to become a bindable spec (and needs its axes *defined*: what counts as "Preparation" mechanically?).

3.6 Phase-transition / escalation mechanics are asserted, not specified

"Phases evolve existing moves, never swap the moveset" (E33 telegraph escalation; BUILD L20, ROSTER L313) is a strong doctrine, but no doc defines how a phase transition triggers (HP threshold? part-break? timer? narrative beat?), how telegraph timing scales, or how "tighten/multiply telegraphs" is parameterized. The Entu three-phase template is narrative, not mechanical.

3.7 Two divergent mode/encounter taxonomies coexist unreconciled

CVD §12.2 lists seven combat modes (L656-662); COMBAT §"Combat Variety Framework" lists ten encounter categories (L319-330). The "no two consecutive chapters share dominant combat type" rule is audited against which taxonomy? The mode_variety_check schema (SCHEMA L144) tracks a *third* set — five booleans: combat / puzzle / learning / character / transformation. These three vocabularies need a single canonical mapping before any mode-variety audit is runnable. (And mode_variety_check is populated on only 2 of 79 chapters — Chapter_Index rows 2-3.)

3.8 Live source contradictions at protected chapters

3.9 Familiar-leveraged combat (mode #6) is named but unspecified

It is one of the seven canonical modes (CVD L661) and a proposed relief valve (ROSTER L321) and assist (ROSTER L366), but no mechanics exist for how a bonded familiar fights, commands, or contributes to a boss encounter. 22 familiar slots and 33 legendary species are numerical canon with no combat behavior spec.

3.10 Vril-projection combat (a mode) is a one-line stub

"At high vril mastery, combat proceeds through vril projection rather than weapons" (COMBAT L330) — an entire high-mastery combat mode compressed to one sentence, with a proposed aim-assist (ROSTER L367) but no mechanics.

3.11 The sub-boss tier has no phase/count/threading rules beyond the ruling

BUILD L12 says "2-4 sub-bosses across different threads → one main boss," but there is no spec for how a sub-boss differs mechanically from a main boss (fewer phases? single-axis-allowed? no character-engagement requirement?). Since Pillar 8's "no single-mode" test is stated for *every* boss (CVD L218), it is unclear whether sub-bosses must also be fully blended — which, if enforced, is 3-5× the Pillar-8 authoring load per chapter that no doc has costed.

3.12 The Hades win-AND-death reward has no reward-economy spec

"Defeat AND victory both advance something" is doctrine (BUILD L21; ROSTER L333; canon-seeded by the graduated-consequence failure states at COMBAT L343-347). But outside the environmental-boss protocol (the only place canon actually implements it), there is no reward-on-death economy for conventional bosses — the proposal offers journal observations and "remembered tells" (BOSSJSON rows) but explicitly disclaims "no XP-on-death economy" (ROSTER L333) without defining what the positive economy IS.

---

One-paragraph synthesis for the design pass

The doctrine is strong and largely immutable: Pillar 8 blended-never-single-mode, the seven modes with the no-consecutive-dominant + 3-per-5-window rules, the 4-step environmental-boss protocol with graduated-consequence failure, the Entu three-phase template, the five Tier-A anchors (Ch 8/23/38/55/65, the Ch-58 "fifth" deleted), the integrity-mirrored damage formula, the ±1σ hard line, the unified twelve-tier quest-gated mastery, and — freshly RULED — the vril-density difficulty dial that is explicitly not HP inflation (Wellspring/Veiled/Fading/Sundered/→The Forgotten One). The per-chapter build target (2-4 thread-woven sub-bosses → one main boss, primary+secondary verb, three-axis split, evolve-not-swap phases, ≥2 counters, Hades reward on win and death) is a RULED work order. What is missing is everything mechanical and structural: all numbers (Phase 5M never ran), a boss registry that has 0 rows and a schema built for MMO World Bosses rather than the 75 solo rows the proposal needs, no canonical win-condition taxonomy, no definition of the mandatory "character engagement" field, no phase-transition mechanics, an unreconciled seven-vs-ten-vs-five mode vocabulary, unspecified familiar and vril-projection modes, and several unresolved protected-chapter source contradictions. The 75-boss roster, 13-school roster, sub-boss tier, and difficulty assist layer are proposals/rulings, not populated canon — they must be ratified and given a schema before they bind. The design should ENHANCE this baseline by filling the mechanical gaps (Part 3) and systematizing the implied layers (Part 2) without contradicting the doctrine and rulings in Part 1.

Key file paths:

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