systems/STATUS_TABLE_FILL_2026-08-07.md
Lane A14, combat-data wave 2026-08-07. Proposal-tier. Nothing here is applied; registries/ is untouched.
CANON SUBORDINATION HEADER. This document is subordinate to canon in every particular. Canon for this
lane is _source/01_Tier_1_Foundation/T1_Combat_System_Spec [ACTIVE v1.0].md,
_source/01_Tier_1_Foundation/T1_Ability_Tree [ACTIVE v1.4].md, the live T0 registries under
registries/, and the recovered Josh-authored originals under docs/original_predclaude/ that those
docs themselves treat as the authored source. Where this proposal and any of those disagree, they win
and this document is the defect. This proposal decides HOW rows are shaped and WHICH authored statuses
are still missing; it does not decide what a status is or which element carries it — the authored
element-status table already chose. No magnitude is authored here: every balance number defers to the
Phase-5M audit exactly as T1_Combat_System_Spec [ACTIVE v1.0].md L132 and L536 defer theirs.
DERIVED FROM:
docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13880-13894 — the authoredElement/Status table, page 30 of the pre-Claude GDD. Thirteen element-to-status pairings, verbatim:
Earth Crush, Fire Burn, Water Saturate, Air Windburn, Metal Impale, Mud Slow, Sand Abrasion,
Steam Scald, Smoke Asphyxia, Ice Freeze, Lightning Shock/Paralyze, Poison "Damage over time",
Life "Healing over time". This is the roster the ledger's A14 row counts against.
docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L88-90 — the same roster restated as therecovery record: "Element status effects as authored: Crush (Earth), Burn (Fire), Saturate (Water),
Windburn (Air), Impale (Metal), Slow (Mud), Abrasion (Sand), Scald (Steam), Asphyxia (Smoke/Air),
Freeze (Ice), Shock/Paralyze (Lightning), Poison, Life (healing)."
docs/COMBAT_PROGRAM_ADDENDUM.md L66-74 — the status framework brief: the roster "is authored twiceover (canon plus the recovered originals)", the four GAS effect-family classes "DoT/HoT/impair/stagger",
and the closing instruction "Shapes now, magnitudes 5M."
docs/COMBAT_PROGRAM_ADDENDUM.md L76-82 — the healing/poison lanes: the Life element's HoT chains andthe poison application/cure loop run through this same status framework.
docs/COMBAT_ENCOUNTER_SYSTEM.md L196 (§4.4 Status/DoT clocks) — the runtime clock enumeration"bleed / stagger / chill-root / burn / poison / soak (vril-wet, conducts next Air/Lightning hit)",
the stack-cap countdown shape, and the cap-triggered break event (chill to shatter).
docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L15292 — Asphyxia's only authoredmechanical line: "Causes oxygen around the target to vacate. In combat, causes suffocation. In the
world, extinguishes the fire element."
_source/01_Tier_1_Foundation/T1_Ability_Tree [ACTIVE v1.4].md L728 — Earth Grip: "Stone tendrilsrestrain a target in place."
_source/01_Tier_1_Foundation/T1_Ability_Tree [ACTIVE v1.4].md L1008 — Entangle: "Living plant matterat the protagonist's vicinity restrains a target — vines, roots, or grass-bind effect at appropriate
environment."
_source/01_Tier_1_Foundation/T1_Ability_Tree [ACTIVE v1.4].md L1050 — Clay Bind's distinction line,which is where restrain's duration is authored: "Earth Grip restrains briefly through stone tendrils
that release on hard struggle."
registries/T0_Ability_Tree_Registry [ACTIVE v0.1]/Sheet1.csv L8, L24, L48, L85, L89, L155, L160, L182, L184 — the nine ability rows whose status_effects column is populated. These are the
referenced-but-missing evidence: restrain (L8 A_E_007 Earth Grip, L89 C_V_001 Entangle),
suffocation and silence (L24 A_W_008 Drowning Grasp), bleed (L48 A_A_004 Wind Scar),
paralysis and slow (L85 C_P_002), stagger and disorient (L155 A_A_016),
confusion and friendly_fire_risk (L160 A_T_009), brief_stun (L182 C_L_008),
poison_sustained (L184 C_P_009).
registries/T0_Status_Table [DRAFT v0.1]/Sheet1.csv L1-11 — the live 26-column header and the tenexisting rows. Every proposed cell that is not separately cited follows these rows' own convention,
named per row in the notes cell.
_source/01_Tier_1_Foundation/T1_Combat_System_Spec [ACTIVE v1.0].md L65-71 — the healing modelruled by Josh 2026-08-04. Read for this lane's boundary: it confirms the HoT/regeneration lane is a
live status concern and that its rate and magnitude "are not stated here; they are ordinal-fixed and
defer to the Phase-5M balance audit."
_source/01_Tier_1_Foundation/T1_Combat_System_Spec [ACTIVE v1.0].md L132 and L536 — the twodeferral clauses this fill obeys: "the numbers plug in when balance data exists" and "every
magnitude — percentages, durations, resistance deltas, critical increments — defers to the
Phase-5M balance audit."
docs/registry_extensions.json, the magnitude_ref deferred-ref declaration naming T0_Status_Table by name — "Deferred magnitudes land BLANK with a TODO_5M note, never as an
interim number."
docs/NATURAL_VOICE_DOCTRINE.md L11-21 — why every proposed string_status lands placeholder:the display strings are held for the natural-voice rewrite pass rather than minted by a data lane.
docs/REGISTRY_ROW_STRUCT_SPEC.md L63-91 (the naming law) — checked and clears: this fill adds nocolumn, only rows and two enum values inside an existing column, so the qualified-column law is not
engaged.
docs/PIPELINE_LEDGER.md L103 — the A14 row and its sanction: "FACTORY-SANE: fill the table to theauthored roster (13+ rows, no visual floor gating a data row)."
NOT DERIVED (authored judgment, and why it had no canon home):
status_family of impair (and its bind icon_class, short duration_class). Therecovered corpus names Crush as Earth's status and never states its mechanic. The nearest authored
read is docs/original_predclaude/extracted/Weapons_Brute.md L903, where a crush "apply[s] injury
debuff reducing opponent attack speed" — an impairment, not a damage-over-time. The row therefore
follows ST_007 slow's impair convention. Flagged as finding F-6; a director ruling that Crush is a
stagger-family impact instead is a one-cell change.
status_family / icon_class enum values prime on the Saturate row. The addendum'sauthored class list is four members (L69: DoT, HoT, impair, stagger) and a conduction primer is
none of them. Recorded as finding F-3 with a named fallback rather than silently filed under
impair, which would misstate the mechanic.
Nothing else on any proposed row is authored. Every remaining cell is either cited above or is the
existing ten rows' own convention, and each row's notes cell names which.
Thirteen element-status pairings are authored. Two further statuses are in the table already without
an element pairing, and both entered from the runtime side rather than the element table.
GDD_Humanity_Game_Complete.md L13880; ELEMENTS_MATRIX_RECOVERED.md L88. MISSING.Present without an element pairing:
docs/COMBAT_PROGRAM_ADDENDUM.md L70 (FL-10). It isthe one row carrying a cure material, FL_0001 Tamarind.
docs/COMBAT_ENCOUNTER_SYSTEM.md L196 status clock, not an element status. Thisrow is the standing precedent that a §4.4 clock earns a row on the same footing as an element
pairing, which is what admits bleed below.
Delta against the element table: five rows — Crush, Saturate, Impale, Abrasion, Asphyxia.
Two further statuses are referenced by canon and have no row, which the mandate names as the strongest
fill candidates:
docs/COMBAT_ENCOUNTER_SYSTEM.md L196, and carried as the status_effects value of registries/T0_Ability_Tree_Registry [ACTIVE v0.1]/Sheet1.csv L48
(A_A_004 Wind Scar, Air). It enters on ST_010 stagger's precedent exactly. It is not Impale under
another name: Wind Scar is an Air ability and Air's element status is Windburn (ST_005), so the two
are separately grounded.
T1_Ability_Tree [ACTIVE v1.4].md L728 (Earth Grip,"stone tendrils restrain a target in place") and L1008 (Entangle, "restrains a target"), with its
duration authored at L1050 ("restrains briefly ... release on hard struggle"). Carried as the
status_effects value of two ability rows, L8 (A_E_007) and L89 (C_V_001). It is not Crush under
another name: Earth Grip carries restrain while Earth's element status is Crush, so the ability
registry itself distinguishes them.
Fill set: seven rows. Row count before 10, after 17. This clears the ledger's "13+" bar with the whole
element roster covered rather than a count reached.
The header below is byte-identical to registries/T0_Status_Table [DRAFT v0.1]/Sheet1.csv L1, all 26
columns in order. Convention cells follow the existing ten rows and each row's notes names which row
it follows. stack_display, stack_cap and magnitude_ref land blank on every row under the
Phase-5M firewall, exactly as all ten existing rows do. status_sfx_id_ref and power_source land
blank on every row because all ten existing rows do. string_status lands placeholder on every row
per the natural-voice doctrine.
status_id,status_kind,status_family,cue_tag,read_channel,read_persistence,persistent_cue_tag,persistent_channel,icon_class,stack_display,stack_cap,break_event_ref,expiry_tell,cure_tell,status_sfx_id_ref,cure_material_refs,immunity_tag,applies_to_ally,duration_class,magnitude_ref,power_source,lifecycle,superseded_by,string_status,source_ref,notes ST_011,crush,impair,GameplayCue.Combat.Status.Crush,vfx_body;motion,persistent,GameplayCue.Combat.Status.Crush.WhileActive,posture,bind,,,,GameplayCue.Combat.Status.Crush.Expired,GameplayCue.Combat.Status.Crush.Cured,,,crush,TRUE,short,,,active,,placeholder,docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13880 (Earth -> Crush; the authored per-element status table); docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L88; docs/COMBAT_PROGRAM_ADDENDUM.md L66-68,"examples_not_limits; family/icon/duration follow ST_007 slow's impair convention -- the recovered corpus names Crush with no mechanical line, and the nearest authored read is docs/original_predclaude/extracted/Weapons_Brute.md L903 (a crush applies an injury debuff reducing opponent attack speed); read_channel carries two members per the colour-independent floor; stack_display / stack_cap / magnitude_ref blank under the Phase-5M firewall" ST_012,saturate,prime,GameplayCue.Combat.Status.Saturate,vfx_body;audio,persistent,GameplayCue.Combat.Status.Saturate.WhileActive,body_vfx,prime,,,conduct,GameplayCue.Combat.Status.Saturate.Expired,GameplayCue.Combat.Status.Saturate.Cured,,,saturate,TRUE,short,,,active,,placeholder,docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13882 (Water -> Saturate); docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L88; docs/COMBAT_ENCOUNTER_SYSTEM.md L196 (soak -- vril-wet conducts the next Air/Lightning hit),"examples_not_limits; status_family and icon_class carry the NEW value prime -- a conduction primer is none of the four authored classes at COMBAT_PROGRAM_ADDENDUM.md L69, so this needs the director's ruling (finding F-3; fallback is impair, which would misstate the mechanic); break_event_ref conduct is the L196 burst, but its trigger is the next matching hit rather than a stack cap, unlike ST_008's shatter (finding F-4); soak is the L196 shorthand for the same status and is an alias candidate; duration_class short follows the non-dot rows" ST_013,impale,dot,GameplayCue.Combat.Status.Impale,vfx_body;audio,persistent,GameplayCue.Combat.Status.Impale.WhileActive,body_vfx,drain,,,,GameplayCue.Combat.Status.Impale.Expired,GameplayCue.Combat.Status.Impale.Cured,,,impale,TRUE,sustained,,,active,,placeholder,docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13884 (Metal -> Impale); docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L89; docs/COMBAT_PROGRAM_ADDENDUM.md L66-69,"examples_not_limits; family/icon/duration follow ST_001 burn's dot convention -- a puncture wound is the damage-over-time class named at COMBAT_PROGRAM_ADDENDUM.md L69; distinct from ST_016 bleed, which is grounded on an Air ability (see the proposal's section 2)" ST_014,abrasion,dot,GameplayCue.Combat.Status.Abrasion,vfx_body;audio,persistent,GameplayCue.Combat.Status.Abrasion.WhileActive,body_vfx,drain,,,,GameplayCue.Combat.Status.Abrasion.Expired,GameplayCue.Combat.Status.Abrasion.Cured,,,abrasion,TRUE,sustained,,,active,,placeholder,docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13886 (Sand -> Abrasion); docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L89; docs/COMBAT_PROGRAM_ADDENDUM.md L66-69,"examples_not_limits; family/icon/duration follow ST_001 burn's dot convention -- scouring is the damage-over-time class; the recovered corpus names Abrasion with no mechanical line" ST_015,asphyxia,dot,GameplayCue.Combat.Status.Asphyxia,vfx_body;audio,persistent,GameplayCue.Combat.Status.Asphyxia.WhileActive,body_vfx,drain,,,,GameplayCue.Combat.Status.Asphyxia.Expired,GameplayCue.Combat.Status.Asphyxia.Cured,,,asphyxia,TRUE,sustained,,,active,,placeholder,docs/original_predclaude/extracted/GDD_Humanity_Game_Complete.md L13888 (Smoke -> Asphyxia) and L15292 (causes oxygen around the target to vacate; in combat causes suffocation; in the world extinguishes the fire element); docs/original_predclaude/ELEMENTS_MATRIX_RECOVERED.md L89 (Smoke/Air),"examples_not_limits; family/icon/duration follow ST_001 burn's dot convention -- suffocation at L15292 is damage over time; the suffocation token on T0_Ability_Tree_Registry Sheet1.csv L24 (A_W_008 Drowning Grasp) resolves HERE and is an alias candidate; the L15292 world-side effect (extinguishes the fire element) has no column on this 26-col schema (finding F-5)" ST_016,bleed,dot,GameplayCue.Combat.Status.Bleed,vfx_body;audio,persistent,GameplayCue.Combat.Status.Bleed.WhileActive,body_vfx,drain,,,,GameplayCue.Combat.Status.Bleed.Expired,GameplayCue.Combat.Status.Bleed.Cured,,,bleed,TRUE,sustained,,,active,,placeholder,docs/COMBAT_ENCOUNTER_SYSTEM.md L196 (bleed named first in the §4.4 status/DoT clock enumeration); registries/T0_Ability_Tree_Registry [ACTIVE v0.1]/Sheet1.csv L48 (A_A_004 Wind Scar carries status_effects=bleed); docs/COMBAT_PROGRAM_ADDENDUM.md L69,"examples_not_limits; not an element-roster status -- it enters on ST_010 stagger's precedent, stagger being likewise an L196 clock rather than a GDD element pairing; family/icon/duration follow ST_001 burn's dot convention" ST_017,restrain,impair,GameplayCue.Combat.Status.Restrain,vfx_body;motion,persistent,GameplayCue.Combat.Status.Restrain.WhileActive,posture,bind,,,,GameplayCue.Combat.Status.Restrain.Expired,GameplayCue.Combat.Status.Restrain.Cured,,,restrain,TRUE,short,,,active,,placeholder,_source/01_Tier_1_Foundation/T1_Ability_Tree [ACTIVE v1.4].md L728 (Earth Grip -- stone tendrils restrain a target in place) and L1008 (Entangle -- living plant matter restrains a target) and L1050 (Earth Grip restrains briefly through stone tendrils that release on hard struggle); registries/T0_Ability_Tree_Registry [ACTIVE v0.1]/Sheet1.csv L8 (A_E_007) and L89 (C_V_001) both carry status_effects=restrain,"examples_not_limits; duration_class short is authored at T1_Ability_Tree L1050 (restrains briefly) rather than conventional; family/icon follow ST_007 slow's impair convention; break_event_ref left blank -- L1050's release on hard struggle is an early escape, not the cap-triggered burst the column carries on ST_008 (finding F-4)"
Applied shape check, for the director's apply step: seven rows, each 26 fields, status_id continuing
ST_011 through ST_017 with no gap after the existing ST_010. Write with the csv module per
docs/REGISTRY_ROW_STRUCT_SPEC.md, never by string edit — three cells carry embedded commas and are
quoted accordingly.
F-1. SCHEMA GAP, the significant one. T0_Status_Table has no element column. The authored roster is
a per-element table — thirteen element-to-status pairings at GDD_Humanity_Game_Complete.md L13880-13892
— and the registry cannot express the pairing at all. After this fill the table holds every authored
status and still cannot answer "which status does Sand apply", which is precisely the join the addendum
asks for at L69-70 ("per-element application rules off the ability rows"). Recommend a qualified
element_class column per the naming law at docs/REGISTRY_ROW_STRUCT_SPEC.md L63, blank on the three
non-element rows (septic, stagger, bleed). Not authored here: adding a column is a schema change and
belongs to the director, not an author lane.
F-2. NO FK FROM ABILITIES TO STATUSES. registries/T0_Ability_Tree_Registry [ACTIVE v0.1]/Sheet1.csv
status_effects is populated on 9 rows of 185 and carries free text, not status_id values, and its
tokens do not match status_kind consistently (paralysis against ST_009 paralyze, poison_sustained
against ST_002 poison, suffocation against the proposed asphyxia). There is no entry in
docs/fk_spec.json binding the two. As a result nothing detects an ability pointing at a status that
does not exist, which is the exact defect this lane had to find by hand. Recommend the column resolve to
status_id with an alias map for the display tokens.
F-3. ENUM EXTENSION NEEDED, one value. docs/COMBAT_PROGRAM_ADDENDUM.md L69 authors four effect-family
classes — DoT, HoT, impair, stagger. Saturate is none of them: docs/COMBAT_ENCOUNTER_SYSTEM.md L196
makes it a conduction primer ("vril-wet, conducts next Air/Lightning hit"), which impairs nothing and
deals nothing. ST_012 proposes prime in both status_family and icon_class. RECOMMENDATION: ratify
prime. The strongest objection is that a fifth class widens the GAS family set the runtime already
built to four, and the cheap alternative is to file Saturate under impair; that is rejected because it
would state in the data that a soak slows the target, which canon does not say, and the runtime would
then read the wrong thing off the row. Filing it as a new class costs one enum member and keeps the row
true.
F-4. COLUMN SEMANTICS, break_event_ref. The column's authored meaning at
docs/COMBAT_ENCOUNTER_SYSTEM.md L196 is a cap-triggered break — the stack cap fills, chill becomes
shatter, which is what ST_008 carries. Two proposed rows have a resolution event that is not
cap-triggered: Saturate conducts on the next matching hit (ST_012 carries conduct anyway, flagged),
and restrain releases on hard struggle per T1_Ability_Tree [ACTIVE v1.4].md L1050 (ST_017 leaves the
cell blank rather than overload it). Either the column needs a trigger companion or the two events need
their own home. Named, not resolved.
F-5. WORLD-SIDE EFFECTS HAVE NO COLUMN. GDD_Humanity_Game_Complete.md L15292 authors Asphyxia's
out-of-combat behaviour — "In the world, extinguishes the fire element" — and the recovered element
docs use the same combat/world split throughout (HUMANITY_Elements.md L115 onward carries a "World
Description / Combat Description" pair per element). The 26-column schema is combat-only, so that
authored half is dropped on the floor at ST_015 and will be dropped again for every element status that
has one. Worth a column or a sibling table; not authored here.
F-6. ONE FAMILY ASSIGNMENT IS JUDGMENT, NOT CANON. Crush (ST_011) is the only proposed row whose
mechanic the recovered corpus never states. It is filed impair on the strength of
Weapons_Brute.md L903 (a crush "apply[s] injury debuff reducing opponent attack speed"). A director
ruling that Earth's Crush is a stagger-family impact instead is a three-cell change on one row
(status_family, icon_class, duration_class) and nothing else in the fill depends on it.
F-7. FIVE ABILITY-REFERENCED STATUS NAMES HAVE NO AUTHORED HOME. Reported, not invented, per the
mandate. Each is a status_effects token on a live ability row with no status authored anywhere in
canon: silence (Sheet1.csv L24, A_W_008 Drowning Grasp), disorient (L155, A_A_016 Pressure Wave),
confusion and friendly_fire_risk (L160, A_T_009 Confusion Aura, Ether-Throat), and brief_stun
(L182, C_L_008 Static Touch, Lightning). Of these, brief_stun most likely resolves to ST_009 paralyze
as a short-duration alias, since Lightning's authored status is Shock/Paralyze at
GDD_Humanity_Game_Complete.md L13890 — an alias entry, not a row. The other four are genuinely
unauthored statuses and each needs either a canon home in the owning T1 doc or a rewrite of the ability
row's token. Note that Ether is the element carrying two of them and Ether has no authored status at all.
F-8. TWO ELEMENTS CARRY NO AUTHORED STATUS. The authored table covers thirteen elements. Vegetation is
a fourteenth — it owns T1_Ability_Tree [ACTIVE v1.4].md §11.10 and appears in
registries/T0_Element_Effectiveness [DRAFT v0.1]/Sheet1.csv as a defender element in eight rows — and
has no status pairing; Ether likewise. This is a coverage gap in the authored roster itself, which is
Josh-authored numerical/naming territory, so it is surfaced rather than filled. Note that the proposed
ST_017 restrain partly covers Vegetation in practice, since Entangle is the ability that carries the
token, but restrain is grounded on the ability text and is not being asserted as Vegetation's element
status.
F-9. TEN CUE TAGS DO NOT EXIST ENGINE-SIDE. Every existing row cites
Source/Humanity/Private/Combat/HumanityCombatTags.cpp L16-25 as "the ten shipped status tags — the
verbatim seed", and the ten rows are exactly those ten tags. The seven proposed rows name seven new
GameplayCue.Combat.Status.* tag families following that file's convention exactly, but the tags are not
registered in it — that engine file is not present in this working tree, so the registration could not be
verified here, only inferred from the source_ref. The fill is data-tier and sanctioned as such by the
ledger's A14 row, but the engine tag registration is a real downstream dependency and should be booked
against the wave that owns HumanityStatusEffects.cpp.
F-10. NO CANON CONFLICT FOUND. The GDD element table, the ELEMENTS_MATRIX recovery record, the addendum,
and the encounter system's §4.4 clock list agree everywhere they overlap. The only apparent divergence is
vocabulary: soak at COMBAT_ENCOUNTER_SYSTEM.md L196 against Saturate at
GDD_Humanity_Game_Complete.md L13882, and chill-root at the same line against Ice's Freeze at
L13889 (ST_008). Both read as runtime shorthand for the authored name rather than a second status, and
both are handled as alias candidates rather than rows. ELEMENTS_MATRIX_RECOVERED.md L89 attributes
Asphyxia to "Smoke/Air" where the GDD table pairs it with Smoke alone (L13888) and lists Asphyxia as an
Air ABILITY at HUMANITY_Elements.md L166; the element pairing is Smoke and the Air entry is an ability
of the same name, so there is no conflict to resolve.