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):
| input | how to read it | writes |
|---|---|---|
palette bg/fog luminance | bright ground → open daylight register; dark ground → lamplit/neon register | sensory.light — one phrase naming the quality of light (e.g. "low amber sun through settling dust") |
theme.variant + archetype | metallic/corporate variants read as still, conditioned air; organic variants as moving weather | sensory.air — one phrase for temperature + movement (e.g. "cool, still, faintly humming") |
archetype + motion.brand_art_type | each biome-archetypes register owns a sound family: oasis = water/leaves, metropolis = hum/rail, rig = swell/gulls, caravan = wind/bells, gold desert = grain-hiss/drums | sensory.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 at | day phase | sensory shift |
|---|---|---|
| 0.0 – 0.2 | Dawn — datans power up, particles respawn | light warms, air quickens, sound_words sparse |
| 0.2 – 0.5 | Day — work cells, trades, market pulse | light full, air busy, sound_words densest |
| 0.5 – 0.7 | Golden hour → dusk — deliveries close | light lowers and reddens, air cools |
| 0.7 – 1.0 | Night — the venture bar fills, the landscape keeps what changed | light 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.jsonwin over derivation; always read the merged result, not the raw identity.
Composition
- uses: sensory-genome (target engine) · storytelling-lenses (register selection) · cycle-daynight + daily-loop (the clock) · biome-archetypes (vocabulary) · adaptive-intelligence (health signal) · cogni (rules) · genome (data source)
- used-by: pb-004-storytelling (steps 1, 4, 5) · bp-003-codeland-engine (D9)
See also
- schema-genome-spatial-strand — where
storyandworld_agelive - diegetic-ui — the frame every sensory output must respect
- cb-patterns-royal-orbit — the deep-tier instance these recipes were proven on