cookbookcanonicalOWNER-2026-07-10

Cookbook — Sensory Genome Fields · cb-sensory-genome

Owner directive (2026-07-10), canonical. "SENSORY GENERATION ENGINE (The Writer's Genome) … used by the Neural Engine to render the world's text and visual atmosphere based on environmental literature." [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:750]

What this cooks

How a genome's theme.variant + palette become the per-slice story.sensory fields (light, air, sound_words) that the sensory-genome narrates from — plus the three world-clock inputs: the daily-loop mapped onto the engine theme arc, world_age as the landscape-evolution seed, and the biome-health rule from @hos/cogni. Everything here is deterministic: same genome in, same sensory register out. Used by pb-004-storytelling steps 1 and 4.

Recipe 1 — theme.variant + palette → sensory fields

The org's design_system.theme is the raw pigment; deriveBiome() already maps it to an archetype + 5-stop palette ramp, pure and deterministic [src: HOS-Instance/scripts/lib/derive-biome.ts:1]. The sensory fields are the felt reading of that same data (biome-archetypes tunes the vocabulary):

inputhow to read itwrites
palette bg/fog luminancebright ground → open daylight register; dark ground → lamplit/neon registersensory.light — one phrase naming the quality of light (e.g. "low amber sun through settling dust")
theme.variant + archetypemetallic/corporate variants read as still, conditioned air; organic variants as moving weathersensory.air — one phrase for temperature + movement (e.g. "cool, still, faintly humming")
archetype + motion.brand_art_typeeach biome-archetypes register owns a sound family: oasis = water/leaves, metropolis = hum/rail, rig = swell/gulls, caravan = wind/bells, gold desert = grain-hiss/drumssensory.sound_words — 3–5 single words, array of strings

Validator contract: story.sensory sits beside beats and lens on the slice [src: HOS-Instance/scripts/lib/validate-genome.ts:136]. Keep each field short — these are prompt atoms for the narrator, not paragraphs.

Recipe 2 — the daily loop dawn→dusk on the theme arc

The engine's biome.theme_arc is a list of {at, fog, ink} stops over scroll progress 0→1. Map the daily-loop onto it so one full scroll is one world day of the cycle-daynight:

arc position atday phasesensory shift
0.0 – 0.2Dawn — datans power up, particles respawnlight warms, air quickens, sound_words sparse
0.2 – 0.5Day — work cells, trades, market pulselight full, air busy, sound_words densest
0.5 – 0.7Golden hour → dusk — deliveries closelight lowers and reddens, air cools
0.7 – 1.0Night — the venture bar fills, the landscape keeps what changedlight is lamplight/ink inversion, sound_words drop to one or two

Rule of thumb: a slice's day phase is the arc stop nearest the midpoint of its scroll span; write its sensory fields in that phase's register, and let the lens choice (storytelling-lenses, cogni rule storytelling-lens) follow the phase — dawn favors atmospheric, midday ecological, dusk land-ethic.

Recipe 3 — world_age as the landscape-evolution seed

world_age is a number on the strand (validated as such [src: HOS-Instance/scripts/lib/validate-genome.ts:65]) counting completed cycles. It seeds landscape evolution deterministically: age 0 is the pristine bake; each increment licenses visible accumulation — worn paths, grown districts, patina on the oldest structures — so returning visitors read time in the terrain. Never randomize against the clock: derive every evolution parameter from hash(slug, world_age) so a rebake at the same age is identical.

Recipe 4 — biome health (bloom/decay) from @hos/cogni

Evaluate rule biome-health via evaluate('biome-health', resolver) from @hos/cogni: venture thriving → "environment blooms (density, light, particle respawn up)"; endeavor failing → "weather turns (storms/decay parameters up)" [src: HOS-Instance/packages/cogni/data/cogni-core.json:39]. In sensory terms: bloom widens the light phrase, adds growth words to sound_words; decay narrows light, adds weather words to air. This is adaptive-intelligence made legible — state changes surface in the world, never as dashboards (diegetic-ui).

Gotchas

  • The three fields are inputs to narration, not narration — prose lives in story.beats, written under pb-004-storytelling step 3 with the ORIGINAL-prose constraint of sensory-genome.
  • Empty sensory fields validate today (the example genome ships them blank) — the pb-004-storytelling gate, not the schema, is what forces them non-empty.
  • Palette hand-overrides in biome-map.json win over derivation; always read the merged result, not the raw identity.

Composition

See also

Linked from — 1 card