Files
settled-reach/docs/sprints/sprint-12/joint.md
T
jpmschweitzerandClaude Opus 4.6 bccdcfcdcb docs(docs): add frontmatter to all sprint briefings
Standardized YAML frontmatter on all 115 sprint briefing files across
sprints 1-26 with title, description, type, status, sprint number, and
team fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:15:45 +01:00

5.8 KiB
Raw Blame History

title, description, type, status, sprint, team
title description type status sprint team
Sprint 12 — Joint Briefing Simulation tier system, sound event pipeline, visual grammar, knowledge boundary enforcement sprint archived 12 joint

Sprint 12: Build — Joint / Integration Notes

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.

Sprint 12 ID: 12 Status: planning (activate with db/connectors/sprint start)


Pre-Sprint Decisions

No blocking open decisions. The following decisions are implemented this sprint and should be cross-referenced:

Decision Domain Implementing ticket(s)
D-041 (knowledge graph) architecture #138, #139 (KG access control)
D-018 (three-range sound) perception #124 (server), #125, #126 (client)
D-068 (5-bus audio architecture) architecture #125 (client wiring)
D-043049 (art direction suite) perception #303 (visual grammar doc)
D-033, D-052 (entity color) perception/content #303 section 3 (covers #304)
D-066 (dual-scale grid) architecture #93, #94, #99 (tier system spatial indexing)

Cross-Team Dependencies

Dependency From To Risk
#124 (sound events in ObserverSnapshot) server client #125 Medium — client can stub; wire when ready
#193 (line previewer CLI) server copy #190, #191, #192 High — content packs cannot be finalized without tool
#303 (visual grammar) visual copy #190, #191, #192 via #311, #312, #313 High — spatial layouts blocked until doc delivered
#311, #312, #313 (spatial layouts) visual copy #190, #191, #192 Medium — wireframes unblock draft content
#527 (rng_seed in snapshot) ci server bridge/types.rs Low — additive field, no conflict if added carefully

Coordination protocol:

  • Server team: signal when #124 (sound events) and #193 (line previewer) are merged to server branch. Copy and client teams are waiting.
  • Visual team: deliver wireframe versions of #311, #312, #313 immediately after #303 is done (even if full tile maps come later) so copy team can start content packs.
  • CI team on #527: coordinate with server on bridge/types.rs — confirm no concurrent edits. Add the field as an additive commit.

Sprint Completion Proof

When Sprint 12 is done, the following is concretely observable:

  1. Simulation tier system: Spawn the test world, set NPC count to 20. Only NPCs within range of the player have ActiveSim; distant NPCs have BackgroundSim. Promoting an NPC (by walking toward it) takes <5ms. Demoting takes <5ms. Observable in the debug overlay or log output.

  2. Sound event pipeline end-to-end: In the gauntlet dialogue_room, an NPC conversation emits Voice sound events. Close-range events play 2D positional audio on the client World SFX bus. Medium-range events show a color-coded fog-edge directional indicator. No audio errors in the log.

  3. Knowledge boundary enforcement: The observer query for an entity tagged OwnerOnly does not return that component's data for a non-owner observer. Verifiable via Hoshe's unit tests on #139.

  4. Visual grammar document: docs/design/visual-grammar-v01.md exists with all 7 sections (color palette, entity sizing, entity color system, z-level stack, typography, animation tiers, insert overlay). All three spatial layout documents exist for The Terminal, The Last Shift, and the smuggling corridors.

  5. Line previewer CLI: Running cargo run --bin line_preview -- --character smuggler --knows smuggling_operation against a content YAML returns matching lines and exits 0.

  6. v0.1 copy complete: All copy tickets in this sprint are done. The content packs (#190, #191, #192), opening hooks (#299, #300), and all foundation docs (#189, #302, #321, #309) are committed to the copy branch.

  7. CI hardening: make ci-server passes with clippy::disallowed_types enforced. --dump-schedule flag runs without panic. WRONG button seed.txt writes a valid u64, not "unavailable".


Test Plan Alignment (D-030)

Sprint 12 is in the integration phase (Sprints 912). Test focus:

  • Server: Unit tests for tier system (#93, #94, #99) — promote/demote timing, With<ActiveSim> query correctness. Unit tests for access control (#139) — negative tests: blocked component not returned. Sound event emission tests (#124).
  • Client: Audio playback tests for #125 — verify correct bus routing. Visual indicator tests for #126 — verify indicator renders at correct fog edge position.
  • CI: Clippy lint enforcement (#343) — CI must fail on new HashMap usage in simulation crate. Tracing (#344) — binary runs without panic, log output captured.

Decision Coverage Gaps (from sprint prepare)

The following confirmed decisions still have no implementing tickets. Flag to Team Leader if any block Sprint 12 work:

  • D-031 (time system / game clock) — no ticket yet; relevant to tier transitions (#99) and NPC routines
  • D-033 (entity color = relationship) — covered by #303 visual grammar section
  • D-038 (audio in v0.1 — 8 files) — assets done (Sprint 10); integration via #124/#125 this sprint
  • D-067 (recognition chime at cognitive delay onset) — no ticket; could be added if capacity permits
  • D-068 (5-bus audio architecture) — implementing via #125 this sprint

Notes for Sprint Start

To activate the sprint once planning is approved:

db/connectors/sprint start

This sets Sprint 12 to active and marks all sprint tickets as in_progress where appropriate. Teams should then run db/connectors/sprint start-work --team <team> for their full context dump.