systems/INTELLIGENCE_TIERS.md
CANON SUBORDINATION — this document is PROPOSAL-TIER: it serves canon and never outranks it.
The canon: the CVD · the T1 foundation docs · the T0 registries (registries/) · the spine
(docs/spine/CH_*.md) · the region pages (_source/02_Tier_2_Region_Pages/). Authority order:docs/DOC_MAP.md§ 0.
Canon served (auto-scanned from this document's citations, then WIDENED BY HAND as the header invites):
T0_Creature_Roster·T0_Boss_Encounter_Registry·T0_Element_Effectiveness·
T0_Environment_Grammar_Registry·T0_Hollow_Codex·T0_Ally_Behavior_Policy·
T1_Combat_System_Spec·CVD §5 Pillar 8·docs/COMBAT_PROGRAM_ADDENDUM.md§12/§13 ·
docs/COMBAT_ENCOUNTER_SYSTEM.md§4.9 ·docs/proposals/combat/AGGRO_THREAT_SYSTEM_DESIGN.md·
harness/qa/comparator_rubrics/aggro_threat.json
READ THAT CANON FIRST — open it and derive from it before you build anything from this document.
If this document disagrees with canon, CANON WINS and this document is the defect — fix the
document, never the canon. Nothing here is applied until it is ratified into canon.
STATUS: PROPOSAL-TIER. Companion doc to KIT_SCALING_TABLE.md. The scaling table says HOW MUCH kit a
being gets; this says HOW WELL it uses it.
Josh, 2026-08-05: "whats their intelligence" — named as one of the four kit-layer surfaces, and
calibrated the same day so that intelligence drives BEHAVIOUR DEPTH across the whole bestiary rather
than only where magic is involved. A wolf pack is not supernatural and it is still the smartest thing
in the chapter.
The pattern is not new here. COMBAT_PROGRAM_ADDENDUM §12 already ruled INT-AS-AI for companions and
familiars, in Josh's own words: "if they're more intelligent their AI will start to detect more
patterns and be more proactive and aware", with the mandatory tradeoff that INT competes with the
combat stats. §13 elaborated it: intelligence leans into PREDICTION — anticipating the attack that is
coming, not reacting faster inside it. This document extends exactly that axis from the player's allies
to every body in the world, so the same word means the same thing on both sides of a fight.
THE ASYMMETRY THAT MAKES IT WORK. On an ALLY, intelligence is a stat the PLAYER BUYS and pays for
against damage and survivability. On an ENEMY, intelligence is AUTHORED DATA read off its row — the
player does not buy it, they READ it, and reading it is the skill. A high-INT enemy is not a harder
enemy in the number sense; it is an enemy whose mistakes you have to earn.
The scale is ordinal and the ordering is behaviour depth, not danger. A feral apex predator can kill a
player faster than a sorcerous one. What rises with the tier is how much of the FIGHT the creature is
participating in.
| Tier | id | One-line read | The thing it can do that the tier below cannot |
|---|---|---|---|
| 1 | feral | It commits and it does not reconsider | — |
| 2 | cunning | It manages its own position and its own health | Break off, circle, refuse a bad trade |
| 3 | pack_tactician | It fights as part of a group that is fighting as a group | Coordinate role and timing with other bodies |
| 4 | sapient | It reads the arena and the player, and uses both | Arm the terrain, exploit a habit, deny a resource |
| 5 | sorcerous | It fights the fight the player is running, not the body in front of it | Counter the player's PATTERN, not their last move |
Tier 5 carries TWO HALVES and they are separately held. §2.5 defines them; §1.2 states who may hold
which. The one-line version: the REASONING half is legal on any body, the CASTING half is legal only on
an ELEVATED one.
Every tier inherits every behaviour of the tiers below it. A sapient creature can still commit like a
feral one when committing is correct; what it has is the option not to. A contract that reads as a
LOSS of a lower tier's behaviour is a misauthored contract.
Three orthogonal axes, and conflating any two of them is the error this section exists to prevent.
KIT_SCALING_TABLE §1) — mundane or elevated. WHAT the abilities are made of.The first draft of this section ruled a sorcerous MUNDANE creature "not forbidden by construction",
on the reasoning that the calibration ruling bars magic from a mundane KIT and not intelligence from a
mundane BODY. THAT REASONING WAS HALF RIGHT AND THE RULE IT PRODUCED WAS WRONG, and the fresh-context
critic caught it: four of the six behaviours §2.5 grants at tier 5 are supernatural on their face —
elemental counter-selection off T0_Element_Effectiveness, arena-STATE mutation, summon/buff/
resurrect/re-task command, and escalation announced on the four body channels. A mundane body holding
that contract would violate KIT_SCALING_TABLE T5 CLASS PURITY on contact. "In practice the slice
assigns none" was a practice note doing a construction bar's job, which is exactly the shape of the
defect Josh's wolves clause closed.
TIER 5 IS THEREFORE TWO HALVES, and a row declares which it holds.
| Half | id | The behaviours (§2.5) | Who may hold it |
|---|---|---|---|
| REASONING | sorcerous:reasoning | pattern-counter (the sequence/build/loadout, not the last move) · anticipation and pre-positioning for the move not yet made · adaptive kill-priority against a declared opposing plan | ANY body, mundane or elevated. Nothing here needs a spark. |
| CASTING | sorcerous:casting | elemental counter-selection · arena-state mutation · summon / buff / resurrect / re-task command · escalation on the four body channels | ELEVATED bodies only (KIT_SCALING_TABLE §1.1). A mundane row carrying it is a T5 CLASS PURITY finding. |
THE READING RULE, so no lane has to interpret. A row whose intelligence_tier is sorcerous holds
BOTH halves when its kit class is ELEVATED, and the REASONING half ONLY when its kit class is MUNDANE.
The tier value stays a single enum member — the halves are DERIVED from the kit class the same row
already declares, so nothing new is stored and nothing can drift out of agreement with itself.
WHAT THE SPLIT PRESERVES, which is the whole reason it is a split and not a cap. §2.5's sorcerous human
duellist "who reads your loadout and changes stance is tier 5 with a sword" — that duellist holds the
REASONING half, is MUNDANE by §1.1 if no hollow row, boss row or lore home resolves for him, and is
fully legal. The case the section correctly wanted is intact; only the impossible case is gone.
WHY NOT SIMPLY CAP MUNDANE AT sapient. Because a capped scale would have to file the duellist, the
marma assassin and the veteran enforcer-NCO under a tier whose flagship contract is ARMING THE TERRAIN,
and that would mis-describe them in the opposite direction: they are not terrain-users, they are
plan-readers. The cap loses a real behaviour class to close a loophole the split closes exactly.
A sorcerous MUNDANE creature is legal, rare, and REASONING-HALF ONLY. In the Prologue→Ch-13 slice the
assignment lands no creature-roster fauna row above pack_tactician and no MUNDANE row above
sapient; the measured distribution is carried in docs/proposals/combat/kits/KIT_INDEX.json under
census.by_intelligence_tier, so the claim is read rather than believed.
Each tier is a CONTRACT: a list of behaviours the tier grants, each naming the engagement-ledger column
or system that carries it. Naming the carrier is the point — a tier that cannot be expressed in the data
the engagement ledger already mints is a mood, not a contract.
The carrier names below are from docs/proposals/combat/AGGRO_THREAT_SYSTEM_DESIGN.md §3–§7 and are
used verbatim so the two lanes compose without a translation layer.
feralTHE READ: it commits and it does not reconsider.
| Behaviour | Carrier |
|---|---|
| Engages on proximity alone; no ledger reasoning | threat_model_kind = proximity |
| Closes by the shortest path the moment the entry test passes | approach_profile ∈ {pre_sight_charge, shamble} |
| Never breaks off voluntarily; the exit contract is the only exit | leash_anchor_kind, the Layer-3 contract |
| Does not answer an assist call and does not make one | assist_radius = 0, assist_delay_ms unused |
| One detection channel | detection_channel is a single member |
| Ignores hazards, including the ones that hurt it | enemy_usable on EG rows is NOT read at this tier |
WHAT IT COSTS THE PLAYER: nothing but execution. Feral is where the player learns a body's tells
without also having to out-think it, which is why MHM-G10's cheap-lesson-first law lands hardest here.
WHAT IT IS NOT: stupid-as-harmless. A feral charge from a body with mass is the most dangerous single
move in the mundane vocabulary, and the fight is a spacing problem.
cunningTHE READ: it manages its own position and its own health.
Adds to tier 1:
| Behaviour | Carrier |
|---|---|
| Breaks off when losing, and returns | engagement_flags (not ignores_threat_drop), the leash clock reset on being hit |
| Circles for flank and refuses a frontal trade it will lose | approach_profile ∈ {hold_distance, leap_closer, burrow_ambush} |
| Uses cover and elevation against the PLAYER's line | vertical_aggro_weight, EG rows classed COVER / ELEVATION |
| Responds to an assist call but does not lead one | assist_radius > 0, does not appear in a linked_pull_set_id as leader |
| Two detection channels, and can lose you on one | detection_channel is a set |
| Avoids a hazard it can see | reads exposure_hazard on the EG rows in its zone |
WHAT IT COSTS THE PLAYER: commitment discipline. A cunning body punishes the swing you threw at where
it used to be.
pack_tacticianTHE READ: it fights as part of a group that is fighting as a group.
Adds to tier 2:
| Behaviour | Carrier |
|---|---|
| Holds a declared ROLE inside its family's role set | family_role ∈ {swarmer, bruiser, ranged, summoner, exploder, resurrector, buffer, controller, tank} |
| Leads an assist call and gates it on family/faction | assist_gate_predicate, linked_pull_set_id, link_symmetry |
| Staggers arrival rather than charging in unison — the measurable form is arrival-time VARIANCE across one alerted pack | AGG-G30 per-archetype approach_profile across the set |
| Splits: some bodies hold the player while others flank or cut the retreat | asymmetric link_symmetry plus mixed family_role |
| Drives the player toward a hazard rather than avoiding it | EG rows with enemy_usable = TRUE, HAZARD_VOLUME / CONSTRICTION |
| Ranged members do NOT close of their own accord, which is what makes geometry a weapon | AGG-G19; family_role = ranged with approach_profile = hold_distance |
WHAT IT COSTS THE PLAYER: positioning at the GROUP scale. The pull becomes the decision, which is the
whole argument of the engagement-ledger spec's §6.
THE REAL-ANIMAL GROUND, because this is the tier where mundane fauna gets genuinely frightening. Wolves,
African wild dogs, spotted hyenas, lions and orcas all run real cooperative hunts with role
differentiation and cut-off manoeuvres. Nothing at this tier is invented — it is field behaviour
engineered up until it reads at the shipped camera.
sapientTHE READ: it reads the arena and the player, and uses both.
Adds to tier 3:
| Behaviour | Carrier |
|---|---|
| ARMS the terrain: triggers an environment verb AGAINST the player | T0_Environment_Grammar_Registry.attack_verbs on rows with enemy_usable = TRUE — this is the sapient contract's flagship and §4 of the EG sweep exists to supply it |
| Denies the player a resource: blocks, contests or spends a recharge well or a gather node | EG rows with ambient_state_gift, vril-site rows |
Exploits a HABIT: the rolling player_habit_vector biases its selection | COMBAT_ENCOUNTER_SYSTEM §4.9, Sigma-bounded so it nudges and never frame-perfect-punishes |
| Uses tools, weapons and prepared ground | its own kit's weapon_ref where the being carries one |
| Adapts kill priority — targets the companion that is healing, the familiar that is peeling | the Layer-2 ledger with role multipliers (AGG-G7) |
| Retreats to a PREPARED position rather than a random one | leash_anchor_kind = patrol_route or encounter_volume |
| Interrupts a player cast on the tell | the composure/stagger machinery; reads the four-beat cast grammar |
WHAT IT COSTS THE PLAYER: their routine. Tier 4 is the first tier that makes a habit expensive, and the
counter is deliberate variation — which is exactly the skill the AAAAA balance doctrine wants rewarded.
THE HUMANOID FLOOR. Every human antagonist in the corpus is sapient or above by default, because a
person who cannot use terrain or read a habit is a worse fighter than a hyena and the world says
otherwise. Where a human row is authored BELOW tier 4 the row states why (panic, conscription, a
first-day recruit), and that statement is the exception mechanism.
sorcerousTHE READ: it fights the fight the player is running, not the body in front of it.
Adds to tier 4:
The six behaviours are sorted into the two halves §1.2b rules. The HALF column is the class gate: a
MUNDANE tier-5 holds the REASONING rows and none of the CASTING rows.
| Behaviour | Half | Carrier |
|---|---|---|
| Counters the player's PATTERN — the sequence, the build, the loadout — rather than their last move | REASONING | phase-keyed pattern counters, KIT_SCALING_TABLE §3 |
| Anticipates: pre-positions for the move the player HAS NOT MADE YET | REASONING | prediction, §13's own word, applied to the enemy side |
| Adapts its kill-priority against the PLAN it has read, not the body nearest it | REASONING | the Layer-2 ledger with role multipliers (AGG-G7), driven by the read rather than by threat alone |
| Answers elementally: reads the player's element and brings the grid's effective counter | CASTING | T0_Element_Effectiveness (124 rows, the Josh-authored grid) |
| Alters the arena STATE rather than merely using it — the arena-mutation class | CASTING | COMBAT_PROGRAM_ADDENDUM §6 |
| Commands: summons, buffs, resurrects and re-tasks other bodies mid-fight | CASTING | family_role ∈ {summoner, buffer, resurrector, controller} |
| Escalates on a DECISION the player can name before a meter confirms it | CASTING | the four escalation channels — posture, breath, vocalization, new opener (MHM-G7) |
THE THIRD REASONING ROW IS NEW AND IT IS WHY THE SPLIT IS NOT A SUBTRACTION. Tier 4 already adapts kill
priority by ROLE (kill the healer). Tier 5's reasoning half adapts it by PLAN: it kills the piece your
sequence depends on, which may not be the healer and may not be the nearest thing. That is a mundane
behaviour, a human one, and the split gives it a home instead of leaving it implied.
ONE CLARIFICATION ON THE ESCALATION ROW, since it looks mundane and is not. Any body can change posture.
What sits in the CASTING half is escalation ANNOUNCED ON ALL FOUR CHANNELS AS A PHASE CONTRACT — the
MHM-G7 push that a B2+ kit owes at a transition. A mundane body's stance change is ordinary tier-2
behaviour and needs no tier-5 licence.
WHAT IT COSTS THE PLAYER: their build's autopilot. Tier 5 is where the theorycraft half of the AAAAA
doctrine gets tested, and it is the only tier that can make a dominant build feel answered without a
number changing anywhere.
TIER 5 IS NOT A SYNONYM FOR CASTER. A sorcerous body need cast nothing. The tier names the QUALITY of
the opposition's reasoning; a sorcerous human duellist who reads your loadout and changes stance is
tier 5 with a sword — the REASONING half, held by a MUNDANE body, exactly as §1.2b permits.
A tier is READ from the being's own canon, never assigned by feel. This is the same discipline the kit
class split uses, for the same reason: an assigned-by-taste column becomes noise within fifty rows.
| # | Evidence | Tier |
|---|---|---|
| A1 | The row is a human or humanoid person (a CHAR_ reference, an occupation, a faction rank) | sapient floor; sorcerous if the row names practice, sorcery, divination, command, or a read of the OPPOSING PLAN (a duellist who changes stance against a loadout, an interrogator, a tactician). Which HALF that sorcerous resolves to is §1.2b's job, not this ladder's: it follows the row's kit class. |
| A2 | The row's folklore_behavior_substrate attests reasoning, speech, bargaining, deception, or sending an agent | sorcerous |
| A3 | The row's lore attests intent and territory but not reasoning (a guardian, a bound spirit, a place-bound being) | sapient |
| A4 | A hollow row, or ontology_class = CONDEMNED with a named practitioner behind it | sapient floor — the practitioner's mind is in the fight |
| A5 | The real species runs cooperative group hunting with role differentiation | pack_tactician |
| A6 | The real species is a solitary stalk-or-ambush predator that breaks off, caches, or manages risk | cunning |
| A7 | The real species is a committed charger, a defensive megafauna, or a reflex-driven ambusher | feral |
| A8 | Nothing above matches and the row is combat-facing | feral, and the row is boarded for a read |
A rule that assigns everything to one tier is not a rule. The slice assignment (§5) must produce a
DISTRIBUTION across at least four of the five tiers, and the measured spread is carried in
docs/proposals/combat/kits/KIT_INDEX.json under census.by_intelligence_tier so the claim is READ
rather than asserted. The control is armed as tooth T9 of the kit gate: fewer than four occupied tiers
across the slice population is a FINDING, not a note.
Two columns land on T0_Creature_Roster and two on T0_Boss_Encounter_Registry, by scoped edit with
the fidelity baseline refreshed in the same commit.
| Column | Registry | Shape | What belongs in it |
|---|---|---|---|
intelligence_tier | T0_Creature_Roster, T0_Boss_Encounter_Registry | enum {feral, cunning, pack_tactician, sapient, sorcerous} | The behaviour-depth tier, DERIVED per §3. Empty means not yet read, never "average". |
kit_ref | T0_Creature_Roster, T0_Boss_Encounter_Registry | a kit id resolving to docs/proposals/combat/kits/<id>.md | The kit this being FIGHTS WITH. An archetype kit id for mundane fauna sharing a physical grammar; a per-being kit id for elevated beings and bosses. |
kit_ref is not simply the row's own idBecause mundane fauna share a physical grammar and duplicating it 28 times would produce 28 drifting
copies of the same wolf. A Bengal tiger and a Bali tiger fight with the same ambush-felid grammar; what
differs is size band, terrain and the per-row delta, and the delta belongs on the row rather than in a
duplicated file. Elevated beings and bosses get their own kit id because their content is their lore and
no two share it.
This is also the anti-duplication wire to the bestiary lane: a bestiary DESIGN SHEET is per-being and
lives at docs/proposals/bestiary/sheets/<ID>_<slug>.md; a KIT is per-grammar and lives at
docs/proposals/combat/kits/<id>.md. They cross-reference by id and neither restates the other.
Per the standing no-mode-taxonomy rule, intelligence_tier is engine plumbing. A player never sees
"pack_tactician" anywhere — they see wolves that cut off the retreat. Bestiary and dex entries describe
BEHAVIOUR in the natural voice; they never print the enum.
Every combat-facing being in the Prologue→Ch-13 slice is assigned on §3's ladder, with the evidence rule
that fired recorded per row. The assignment lands in the registry columns and is mirrored in
docs/proposals/combat/kits/KIT_INDEX.json, which carries intelligence_tier, the evidence_rule that
fired, kit_class, band and kit_ref per id — so an auditor checks the derivation rather than
trusting it.
THE MEASURED SLICE ASSIGNMENT, which replaces the owed-note this paragraph used to carry. 57 kits over
70 canon rows, and the tier spread is:
| Tier | kits | what occupies it |
|---|---|---|
feral | 2 | a wild boar that does not bluff twice, and a stamp battery (evidence rule A8, boarded) |
cunning | 5 | the varanid and constrictor grammars, a flight-first cervid, two river guardians |
pack_tactician | 2 | a macaque troop that steals by relay, and a gorge clan working the flanks |
sapient | 31 | every human antagonist, and the place-bound guardians and trials |
sorcerous | 17 | the folklore beings whose own traditions attest reasoning, bargaining or a sending |
FIVE OF FIVE TIERS ARE OCCUPIED, against §3.2's floor of four. The claim is read from
docs/proposals/combat/kits/KIT_INDEX.json census.by_intelligence_tier and armed as gate tooth T9,
so it is a measurement rather than an assertion. intelligence_tier and kit_ref are LIVE on both
registries: 8 of 187 creature rows and 51 of 284 boss rows carry values, and every empty cell means NOT
YET READ, exactly as §4's shape says. Six rows are DECLARED EXEMPT with reasons in the index's
exempt_rows rather than left silently blank.
NO MUNDANE ROW IN THE SLICE HOLDS sorcerous. That is the §1.2b split's practical result, measured
rather than assumed: every one of the 17 sorcerous kits is ELEVATED, so every one holds both halves,
and the mundane-legal REASONING half is available and currently unused. The first mundane duellist who
reads a loadout will be its first instance.
post-slice companion/enemy AI wave's, and this gives that wave a typed input instead of a vibe.
and Phase-5M's.
combat_permission and the care rows govern that, and theintelligence layer may narrow but never widen (the same asymmetry gate 52 already owns).