RIDER_BRIEF_GAP180_creature_vocalization.md

creatures/RIDER_BRIEF_GAP180_creature_vocalization.md

Rider brief — the SFX category taxonomy is short (GAP-180 + the two instances the schema apply surfaced)

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 (scanned from this document's own citations — widen it by hand where it is thin):
CVD §17 · T1_Build_Pipeline_Contracts · T3_Creatures_Tameable · T0_Creature_Roster · T0_Schema_Dictionary
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.

✅ RULED 2026-07-30 (twenty-ninth sitting) — OPTION (c), ratified verbatim: "C. agreed with your recommendation". APPLIED by this package's applies 40-70; see APPLY_MANIFEST.md §5. The text below is preserved as the brief that was ruled on, not as an open question.

Status: RULED-APPLIED (was PROPOSAL-TIER), 2026-07-30. Tier: T99 operational. This document sets no

canon. It rides the RULED GAP-141 Option A-additive schema apply and needs the same signature —

the apply deliberately did NOT take this decision, and its five waived rows are the reason this

brief exists. Nothing is applied in the meantime.

Context

T1_Build_Pipeline_Contracts [ACTIVE v1.0] §10.2 generates SIX canonical categories — WEAPON,

FOOTSTEP, FOLEY, ENVIRONMENTAL_AMBIENT, MAGIC_EFFECT, SPECIAL_ASSET_CLASS — and the contract calls

that a "six-category taxonomy lock at this contract" (L2839). T0_Schema_Dictionary [ACTIVE v1.3]

§3.16 mirrors the six as the sfx_category enum. Changing the set therefore amends a contract

lock, which is data-model canon and not the loop's to widen.

Three distinct sound classes have no member in that set. The first is the one the gap audit

recorded; the other two were surfaced by the A-additive derivation pass and are the same shape.

(1) Creature vocalization — GAP-180, the largest labour block in the audio lane.

§10.3 names T0_Creature_Roster as an Environmental-Ambient input "for per-region fauna and

creature vocalization substrate … creature vocalization work runs the sound-designer-in-loop track

per §10.4.1", and T99_Translation_Audio SFX Step 4 sizes it: "132 creatures × multiple

vocalization states (idle, alert, attack, hurt, death at minimum)". VERIFIED on the live tree

2026-07-30: T0_Creature_Roster [DRAFT v0.1] = 150 rows × 55 columns, carrying the full

assetgen rail (mesh_id_ref, mesh_pipeline_type, mesh_tags, generation_status,

generation_prompt_hash, regeneration_trigger, generation_tier) and **zero audio, voice or

vocalization columns** — positive control: the same scan returns the assetgen rail, so the pattern

matches; the absence is real. The audit's "54 columns" is honestly superseded by 55 (a column

landed since 2026-07-29); the audio zero is unchanged. Scale note from the twenty-eighth sitting:

Josh ruled the vision IS the canon — T3_Creatures_Tameable's "420-plus" is the target and 150 is

the minted-so-far population, so this class is sized at 420+ species × 5+ states, not 150 × 5.

The two Ebu Gogo rows (SFX_00029/00030) are ambient presence beds, not creature voices.

(2) Combat-state feedback — 4 live rows, waived W1 in the schema apply.

SFX_00025-00028 are the ruled pip/chain-meter cues (Josh, 2026-07-24 puzzle-boss ruling): a pip

fills on a correct counter, the run wipes on a mistake, a completed chain resolves, and the meter

first appears at ≤25% enemy HP. Their own notes rule out the two nearest homes — each says

DIEGETIC, "never UI fanfare" / "never UI buzzer", so they are not a UI class, and the sound is a

meter increment rather than a weapon impact, so filing them under WEAPON ("blocks and parries")

would categorise the trigger instead of the sound. SPECIAL_ASSET_CLASS is refused on purpose:

§10.3 binds CVD §17.9 to that category in full, and routine mechanic cues do not belong beside the

Grand Sage reveal.

(3) Canonical device/mechanism operation — 1 live row, waived W2.

SFX_00004, the Antikythera Mechanism Engagement Cue: foreground, point-source, canonical-track,

carrying HL_0111|HL_0073. FOLEY reaches mechanism operation only through "lock pick, door open and

close"; MAGIC_EFFECT covers "inscription activation", which the row does not claim;

ENVIRONMENTAL_AMBIENT's Component 11 clause covers the sacred-site HUM, and this is not a bed.

Until this is ruled, those five rows sit blank-and-declared in the registry, visible through gate

35's waiver list. That is deliberate: the alternative is a category chosen for filing convenience,

which is the music_mood_tags failure class (79/79 filled, 0/79 real) reproduced on the audio axis.

Alternatives

(a) Add a SEVENTH category, CREATURE_VOCALIZATION, and nothing else. The audit's own proposal.

Closes the 420-species Krotos lane cleanly with one contract amendment; leaves instances (2) and (3)

waived, so the taxonomy is short again the moment rank 8 authors a UI-adjacent or device cue.

(b) Add three: CREATURE_VOCALIZATION, COMBAT_FEEDBACK, MECHANISM_OPERATION. Closes every

known instance in one amendment and empties the waiver list. Costs the most contract text, and two

of the three are sized at 5 rows today — a category minted for five rows can read as over-fitting.

(c) Add CREATURE_VOCALIZATION and ROUTE the other two by explicit clause — combat-state

feedback declared to file under FOLEY with a COMBAT_FEEDBACK_* subcategory prefix, device/mechanism

operation declared to file under FOLEY with a MECHANISM_* prefix. One new category plus two

routing sentences; §10.5's sfx_subcategory is already the open text field that carries

"others as canonical content drives population", so the discrimination lands where the contract

already expects growth, and the generation lanes stay right (Foley = licensed-library standard

track, which is what a pip tick and a door-mechanism actually want).

(d) Status quo, steelmanned. Leave six. Creature vocalization routes under

ENVIRONMENTAL_AMBIENT (which §10.3 arguably already implies by naming Creature_Roster as an

Environmental-Ambient input), and the five waived rows stay waived until a real authoring pass

proves the need. Cheapest, and it avoids amending a contract lock for a lane with no rows yet —

but it makes the largest labour block in the audio lane share a category with wind and rain, so it

cannot be counted, budgeted, or routed to the Krotos sound-designer-in-loop track by data.

Recommendation

(c). Creature vocalization earns a category by SIZE and by ROUTING — 420+ species × 5+ states

is the biggest single block in the lane, §10.4.1 puts it on the sound-designer-in-loop track (a

different production lane from generic ambience), and Krotos seat-hours are budgeted against it, so

a category is what makes it countable and schedulable. The other two instances are five rows with

no lane of their own; a subcategory prefix under FOLEY discriminates them without minting a class

for five rows, and it can be promoted later if authoring proves the volume. Landing shape: one

§10.2 amendment + the §3.16 enum line, a creature_vocalization_sfx_id_ref_array on

T0_Creature_Roster (the §10.6 array pattern, ten registries deep already), fk_spec enrolment, and

the gate-35 waiver list emptied in the same commit — its C3 class FAILs on a stale waiver, so the

cleanup is forced, not optional.

The strongest objection

A category is a *production lane*, not a taxonomy of sounds — and by that test (c) is inconsistent:

it mints a lane for creature voices on sound-designer-in-loop grounds while filing device cues under

Foley, yet SFX_00004 is ALSO canonical-track and ALSO sound-designer-in-loop (it carries two hard-line

anchors). If the routing criterion is the production lane, SFX_00004 belongs with the canonical-track

class, not with licensed-library Foley — which argues for (b), or for a track-based rather than

content-based split. The counter is that track_assignment is already its own column and is exactly

where lane routing belongs, so a canonical-track Foley cue is expressible today; but if the answer is

"the category should mean the lane", then (b) is right and the recommendation is wrong.

What unblocks the moment it rules

Rank 8's cue rows for creature-bearing chapters; the DR-AU3 5090 SFX generation lane getting a

volume to plan against; the Krotos seat-hour budget; the gate-35 waiver list emptying; and the

sfx_subcategory population pass, which is currently blocked on knowing which category each of the

five waived rows sits under.

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