# Sprint 12: Build — Copy Tasks **Goal:** Lay the production-layer foundations — simulation tier system, sound event pipeline, visual grammar, and knowledge boundary enforcement — and complete all v0.1 copy authoring so content packs, opening hooks, and world-building docs are done. **Branch:** `copy` **Agents:** Mellanie (author), Paula (narrative), Gestalt (systems), Miri (cultural consultant) ## Carry-over from Sprint 11 None. Sprint 11 was 7/7 done. ## New Tickets ### Foundation docs (unblock everything else — do these first) | # | Title | Blocked by | |---|-------|------------| | #368 | Knowledge vocabulary for v0.1 content | — | | #189 | Cultural generation guide — Miri | — | | #302 | Sova Texture Appendix | — | | #321 | Contraband specification — lattice components + supply chain | — | | #179 | Character definition schema | — | | #180 | Smuggler character build | — | | #181 | Detective character build | — | | #182 | Divergent starting knowledge | — | | #183 | Divergent relationships | — | | #322 | Detective institutional chain of command | — | | #320 | Sova Station Profile | — | | #336 | Span Gate Transit Schedule | — | ### Setting texture docs | # | Title | Blocked by | |---|-------|------------| | #335 | Meridian Coverage Map for Sova Transit | #320 | ### Design pattern docs (already unblocked) | # | Title | Blocked by | |---|-------|------------| | #332 | Contradiction arc design document — FRIEND pattern | — | | #329 | Mirror moment design document | — | | #259 | First 5 minutes experience design | — | ### Knowledge and vocabulary (Gestalt) | # | Title | Blocked by | |---|-------|------------| | #309 | Knowledge state vocabulary for v0.1 | #368 | ### Content packs — Mellanie (depend on foundation docs and line previewer #193 from server) | # | Title | Blocked by | |---|-------|------------| | #190 | Workplace content pack | #189, #193 (server), #302, #321, #311 (visual) | | #191 | Bar content pack | #189, #193 (server), #302, #321, #312 (visual) | | #192 | Smuggling ring content pack | #189, #193 (server), #302, #321, #313 (visual) | ### Opening content (depend on #309) | # | Title | Blocked by | |---|-------|------------| | #260 | Opening hook content per character | #259 | | #299 | Opening hook content — smuggler first 5 minutes | #309 | | #300 | Opening hook content — detective first 5 minutes | #309 | | #307 | Flat NPC memorable trait pass — 3 flat NPCs | — | ### Supporting content (depend on earlier tickets) | # | Title | Blocked by | |---|-------|------------| | #306 | News ticker / Meridian feed content — 20-30 lines | #302 | | #262 | Environmental text content | — | | #331 | Diegetic insert flavor text — per character | — | | #330 | Diegetic tutorial monologue lines — per character | #299, #300 | | #194 | Generation pass expansion | — | ### Parent epic (close when all children done) | # | Title | Blocked by | |---|-------|------------| | #369 | v0.1 Content Scoping Workshop Outputs (epic) | children above | Use `db/connectors/ticket show ` for full details. ## Key Decisions - `decisions/content.md` — D-023 (YAML content format), D-024 (three-tier content pipeline), D-025 (dialogue access tier model), D-028 (internal monologue pools per character), D-029 (THE FRIEND production NPC pattern), D-034 (D-029 confirmed), D-035 (knowledge state vocabulary), D-050 (Velen / Krenn system), D-062 (dialogue system architecture), D-063 (confrontation — same box different weight), D-064 (opening experience design) - `decisions/perception.md` — D-016 (internal monologue system), D-032 (separate monologue pools per character) - `decisions/scope.md` — D-027 (vertical slice), D-036 (Sova Transit District / Krenn as v0.1 setting), D-037 (contraband spec — unlicensed lattice components), D-039 (v0.1 wow moments — all 6) - `decisions/architecture.md` — D-041 (knowledge graph — provides vocabulary foundation via Appendix A) ## Open Questions to Resolve Early - **#368 → #309 dependency:** Gestalt writes vocabulary doc (#368) first. Paula/Mellanie need #309 (knowledge flags) before writing opening hooks #299/#300. Sequence: #368 → #309 → #299/#300. - **Content pack dependency on visual spatial layouts:** #190/#191/#192 are blocked by #311/#312/#313 (Araminta's spatial layouts, visual team). These are a cross-team dependency. If visual spatial layouts slip, content packs must still proceed with draft versions and be finalized once layouts are confirmed. ## Notes **Sequencing for the sprint — recommended wave order:** Wave 1 (all parallel, no blockers): - #368 (Gestalt) — knowledge vocabulary doc - #189 (Miri) — cultural generation guide - #302 (Miri) — Sova Texture Appendix - #321 (Miri) — contraband spec - #179/#180/#181 (Paula) — character definition schema and builds - #182/#183 (Paula) — divergent knowledge/relationships - #322 (Paula) — detective chain of command - #320 (Miri) — Sova Station Profile - #336 (Miri) — Span Gate Transit Schedule - #332 (Paula) — Contradiction arc doc (FRIEND pattern) - #329 (Paula) — Mirror moment doc - #259 (Paula) — First 5 minutes experience design - #307 (Mellanie) — Flat NPC memorable trait pass - #262 (Mellanie) — Environmental text content - #331 (Mellanie) — Diegetic insert flavor text Wave 2 (after Wave 1 foundation docs): - #335 (Miri) — Meridian Coverage Map (blocked on #320) - #309 (Gestalt) — Knowledge state vocabulary (blocked on #368) - #260 (Paula) — Opening hook content per character (blocked on #259) - #306 (Mellanie) — News ticker / Meridian feed (blocked on #302) Wave 3 (after Wave 2 + line previewer #193 from server + spatial layouts from visual): - #190 (Mellanie) — Workplace content pack - #191 (Mellanie) — Bar content pack - #192 (Mellanie) — Smuggling ring content pack - #299 (Mellanie/Paula) — Opening hook smuggler (blocked on #309) - #300 (Mellanie/Paula) — Opening hook detective (blocked on #309) Wave 4 (final): - #330 (Mellanie) — Diegetic tutorial monologue (blocked on #299, #300) - #194 (Mellanie) — Generation pass expansion (LLM-assisted, after packs exist) **#368 — Knowledge vocabulary for v0.1 content** - Owner: Gestalt. Source material: D-041 Appendix A (knowledge graph workshop synthesis). - Deliver as a YAML or Markdown doc in `docs/design/` (or wherever content docs live). - Categories: entity knowledge (identity, location, behavior, relationship, secret, contraband), world knowledge, prerequisite flag naming conventions (`knows:`, `suspects:`, `met:`, `has_seen:`). - This is the foundation for #309 (Paula's knowledge flag list) which unblocks #299/#300. **#189 — Cultural generation guide — Miri** - Blocking dependency for all three content packs (#190, #191, #192). - Sova Transit District / Krenn System is the FIRST concrete instance — Miri's output IS the v0.1 cultural voice. - Covers: naming conventions, economic vocabulary (what do workers call credits, shifts, cargo), social norms, relationship dynamics in a Commission-regulated transit hub. - D-036 confirms Sova Transit District as setting. D-050 establishes Velen/Krenn context. **#302 — Sova Texture Appendix** - 1-page appendix to the Sova setting brief. Fast to write, high leverage — unlocks #190, #191, #192, #306. - (1) Slang glossary 15–20 terms, (2) informal decoration (graffiti, stickers), (3) smells and sounds, (4) recurring social rituals. - Write as companion to #189 in the same pass. **#321 — Contraband specification** - D-037 confirms: primary contraband = unlicensed lattice components (aftermarket neural mods bypassing Commission regulation). - Deliverable: spec doc covering types, supply chain, street names, detection methods. - Unlocks #190, #191, #192 — Mellanie needs this before writing any criminal-facing dialogue. **#179/#180/#181 — Character definition schema and builds** - #179: formal schema structure (what fields define a character — starting knowledge, relationships, access permissions, skill flags). - #180/#181: Smuggler and Detective as the two concrete instances. - These are design documents, not code. Owner: Paula. - #182 (divergent starting knowledge) and #183 (divergent relationships) follow from #180/#181. **#190/#191/#192 — Content packs** - The three primary content packs. Each ~165–280 lines. - #190 Workplace: cargo workers, supervisors, shift change scripts, manifest disputes. - #191 Bar: bartender, regulars, gossip pools, social dialogue (40% more lines than investigation). - #192 Smuggling ring: criminals, trust-gated disclosure, coded language, paranoia. - All blocked by: #189 (Miri), #193 (line previewer from server team), #302 (texture appendix), #321 (contraband spec), plus respective spatial layouts (#311, #312, #313 from visual team). - The line previewer (#193) is a Rust CLI being built by server team this sprint. Coordinate with Dudley/Tyre on delivery timing. **#299/#300 — Opening hook content** - First 10–15 tightly sequenced monologue lines per character. - Smuggler: diegetic tutorial for movement, fog, NPC interaction. Establishes criminal motivation. - Detective: different emotional register. Arrives into established rhythm. First NPC is adversarial by default. - Blocked by #309 (knowledge flags) — lines need to fire on `knows:` prerequisites. **#307 — Flat NPC memorable trait pass** - 3 flat NPCs: Pael (maintenance tech), Ren (drifter), Tev (lookout). - Each needs: one memorable observable trait, one "seems important but isn't" line, one visible routine. - These are the investigation noise floor — without them the 30/50/20 structure (30% FRIEND, 50% background, 20% flat) collapses. **#332 — Contradiction arc design document** - Reusable pattern from THE FRIEND implementation (#297 Kael, #298 Sera — both done). - Document the pattern: 3+ phases with distinct monologue registers, observable contradiction discoverable through observation (not dialogue). - Owner: Paula. Already unblocked. **#329 — Mirror moment design document** - 10–15 paired observation triggers. Same event, different character monologue. - 7 core mirrors already designed (per ticket): The Friend's Routine, The Empty Corridor, The Overheard Argument, The Familiar Face, The Contraband Scan, The End of Shift, The Missing Person Notice. - Owner: Paula. Already unblocked. ## Dependency Chain ``` #368 (knowledge vocab) → #309 (knowledge flags) → #299, #300 (opening hooks) → #330 (tutorial monologue) #189 (Miri guide) + #302 (texture appendix) + #321 (contraband) + #193 (server) + #311/#312/#313 (visual) → #190, #191, #192 (content packs) #259 (5 min design) → #260 (opening content per character) #320 (station profile) → #335 (Meridian coverage map) #179 → #180, #181 → #182, #183 #332, #329 — standalone (already unblocked) #307, #262, #331, #336 — standalone ``` ## PR Workflow When ready to submit, create a PR with `tea` CLI. **All flags are required** to avoid TTY prompts (see CLAUDE.md "Gitea access" section): ```bash tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(copy): Sprint 12 — complete v0.1 content authoring" --description "body" --base main --head copy ```