--- title: "Sprint 22 — Planning Briefing" description: "MobileChunk Idle state documentation, storyteller module activation scoping" type: sprint status: archived sprint: 22 team: "planning" --- # Sprint 22: Wire — Planning Tasks **Goal:** Fix the fog regression, wire the authored Sova content into a production population and triangle set, and activate the contamination pacing layer that gives the vertical slice its 30-minute shape. **Branch:** `planning` (documentation only — no code branch) **Agents:** Gestalt (systems), Paula (narrative), SI (project manager) ## New Tickets | # | Title | Blocked by | |---|-------|------------| | #566 | Document MobileChunk Idle state as stationary installation primitive | — | | #162 | Storyteller module activation — scope and assign | — | Use `tooling/db/ticket show ` for full details. ## Notes **#566 — Document MobileChunk Idle state as stationary installation primitive** - Decision D-111 (pending formal filing): the MobileChunk `Idle` movement state is the canonical primitive for player-owned stationary installations — space stations, orbital platforms, parked vessels used as bases. No code change. - Deliverable: add a note to `decisions/architecture.md` under the D-108 (MobileChunk Specification) entry. Text: "The `Idle` movement state is the canonical primitive for player-owned stationary installations (space stations, orbital platforms, parked vessels as permanent bases). A MobileChunk in `Idle` with no `scheduled_departure` is architecturally equivalent to a static chunk from the simulation's perspective — it participates in the same tile/zone system. This design prevents future over-engineering of a separate 'player installation' system." - Also update any relevant briefing files if MobileChunk is referenced in a way that omits this distinction. - Acceptance: `decisions/architecture.md` updated. No compiler output needed. **#162 — Storyteller module activation — scope and assign for Sprint 23** - This ticket is currently unassigned with an underdeveloped description. Sprint 22 planning task: scope it for Sprint 23 implementation. - The StorytellerPlugin in `server/src/storyteller/mod.rs` will have a contamination stub after #254 lands (Sprint 22). Sprint 23 needs to extend it into the full proximity/engagement-based activation model from D-023. - D-023: "The storyteller activates Tier 1 modules based on player proximity and engagement, not timers." This is the post-contamination layer: after contamination fires, the storyteller decides which triangle escalates, when, and how — based on what the player has engaged with. - Sprint 22 planning deliverable: update ticket #162's description with the concrete Sprint 23 scope: 1. `StorytellerPlugin` reads `ContaminationActive` (from #254) to gate activation. 2. Proximity query: identify Active-tier NPCs within the player's last-N-tick path. 3. Engagement scoring: weight NPCs by conversation count, observation time, and monologue triggers. 4. Module selection: among active `TriangleState` forks, activate the fork containing the highest-engagement NPC. 5. Activation event: emit `TriangleActivated { triangle_id }` for downstream systems (tells, NPC behavior shifts, monologue hooks). - Assign #162 to the server team for Sprint 23. - Acceptance: ticket #162 description updated, team assigned to `server`, priority confirmed as `high`. ## Dependency Chain ``` #566 (MobileChunk Idle doc) — standalone documentation #162 (storyteller scope) — standalone planning, produces Sprint 23 server ticket ``` ## PR Workflow Planning outputs land on main directly (decisions/*.md updates) or via a planning branch PR: ```bash tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "docs(decisions): Sprint 22 planning — D-111 MobileChunk Idle doc, #162 scope" --description "body" --base main --head planning ```