playbookcanonicalOWNER-2026-07-10

PB-004 — Storytelling POD Loop · pb-004-storytelling

Owner directive (2026-07-10), canonical. "this is the knowledge for the Storytelling POD and Playbook" [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:690] — with the engine spec: "The Neural Engine dictates the 'Sensory Genome'—applying the stylistic lenses of writers … to procedurally generate descriptions of the environment as the camera moves." [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:726]

Content

The loop that authors a slice's story block — beats, lens, diegetic labels, sensory fields — for any org genome (delivered under bp-003-codeland-engine D9). Run by the venture squads and squad-instance; each pass takes ONE slice from bare geometry to narrated world and lands it through the gateway. The sensory-genome is the engine this playbook feeds; the storytelling-lenses registry is what it selects from. Each table row is one work particle a squad loops on.

stepactioncookbooksgear-setverify gate
1Read the genome — load the org strand (library/genomes/orgs/<slug>.json), note theme.variant, palette, world_age, bake_tier, and the target slice's scenery + anchorscb-sensory-genomegear.knowledgegenome passes npx tsx scripts/regen-all.ts --check; target slice id exists
2Pick the lens — evaluate cogni rule storytelling-lens against the slice's beat kind: establishing/aerial → atmospheric; interaction/economy → ecological; work/craft → land-ethic [src: HOS-Instance/packages/cogni/data/cogni-core.json:39]gear.knowledgestory.lens is exactly one of the registry ids in storytelling-lenses
3Write the beats — 1–2 sentences of ORIGINAL prose per beat, diegetic voice only: the world is described from inside it, no menus, no chrome, no second-person UI talk (diegetic-ui)cb-sensory-genomegear.pageevery beats[].prose non-empty, ≤2 sentences, contains no UI vocabulary (menu/click/page/button)
4Set the sensory fields — derive sensory.light, sensory.air, sensory.sound_words from the slice's position on the theme arc per the dawn→dusk mappingcb-sensory-genomegear.pageall three fields non-empty; sound_words is a non-empty string array
5Label the anchors — fill story.diegetic_labels for every in-scene device on the slice: labels read as signposts/holograms in-world, never as navigationcb-sensory-genomegear.pageevery anchor id on the slice has a label; zero labels phrased as menu items
6Validate — run the house validator over the edited genomegear.opsnpx tsx scripts/regen-all.ts --check exit 0
7Gateway POST — submit the patch via POST /genome/:slug (token, schema-validated, commits to genome-staging) per bp-003-codeland-engine D5gear.ops201 with a commit-sha receipt

Constraint row (applies to every step): lens names describe nature-writing traditions; the output is ALWAYS original prose. No passage, phrase pattern, or distinctive image from any published author is ever reproduced — see the copyright rules in sensory-genome and storytelling-lenses, and the frame law in diegetic-ui.

Escalation: a slice whose beats cannot be grounded in the org's brand material goes back to the venture squad's Knowledge Analyst (ditto) for source hunting; definition conflicts go to sop-002-conflict-resolution. Never guess past a failed gate.

Composition

See also

Linked from — 1 card