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>
4.8 KiB
title, description, type, status, sprint, team
| title | description | type | status | sprint | team |
|---|---|---|---|---|---|
| Sprint 13 — Server Briefing | Gauntlet rooms (Sound Lab, Decay Observatory, Shift Change), OQ-09 zone temperature | sprint | archived | 13 | server |
Sprint 13: Sound — Server Tasks
Goal: Wire the full audio architecture end-to-end — AudioManager, zone crossfades, dip profiles, recognition chime, and conversation murmur — and complete v0.1 content authoring so opening hooks, tutorial monologue, and all content packs are done.
Branch: server
Agents: Dudley (simulation dev), Tyre (architect), Hoshe (QA)
Carry-over from Sprint 12
None. All Sprint 12 server tickets done.
New Tickets
| # | Title | Blocked by |
|---|---|---|
| #505 | Gauntlet rooms: Sound Lab, Decay Observatory, Shift Change | — |
| #523 | Resolve OQ-09: zone temperature memory — server-tracked or client-only | — |
Use db/connectors/ticket show <id> for full details.
Key Decisions
decisions/architecture.md— D-020 (IPC bridge, ObserverSnapshot), D-041 (knowledge graph — decay system), D-068 (5-bus audio architecture — zone_id in snapshot)decisions/perception.md— D-018 (three-range sound model), D-059 (fog shader — zone temperature tint for OQ-09), D-060 (cognitive delay for fog recognition)decisions/scope.md— D-030 (test priority phases — integration phase)
Notes
-
#505 — Gauntlet rooms: Sound Lab, Decay Observatory, Shift Change: Three new rooms added to
server/src/test_world/rooms/. Existing rooms for reference:server/src/test_world/rooms/containshub.rs,inventory_warehouse.rs,occlusion_corridor.rs,pause_chamber.rs,interaction_gallery.rs,fog_theater.rs,crowd_plaza.rs,dialogue_room.rs,eavesdrop_alcove.rs,sprint_gauntlet.rs,confrontation_stage.rs. Follow the existing room module pattern — each room exports abuild()function that populates aWorldwith ECS components. Add entries toserver/src/test_world/rooms/mod.rs. The three rooms:- Sound Lab: Tests the three-range sound model (D-018). Place sound-emitting entities at calibrated distances. Verify
RangeCategory::Closeevents hit the snapshot at <3m,Mediumat 3-15m,Longat 15-40m. Tests:sound_lab_close_range_in_snapshot,sound_lab_medium_range_indicator_present,sound_lab_long_range_insert_only. - Decay Observatory: Tests knowledge graph decay (D-041 — decay runs every 10 ticks per D-031). Place entities in LOS, then move player out of LOS. Advance ticks and observe confidence degradation:
Direct→KnowsDetails→KnowsOf→Suspects. Tests:decay_observatory_confidence_degrades_after_los_loss,decay_observatory_stale_after_threshold. - Shift Change: Tests NPC routine transitions at day phase boundaries (D-031 — Morning/Afternoon/Evening/Night phases). Advance game clock to a phase boundary and verify NPCs transition routine. Tests:
shift_change_npc_transitions_routine_at_phase_boundary. - Effort estimate: 3d. Sound Lab is the most complex (requires sound event fixture verification).
- Sound Lab: Tests the three-range sound model (D-018). Place sound-emitting entities at calibrated distances. Verify
-
#523 — Resolve OQ-09: zone temperature memory: This is an architectural decision. D-059 specifies deep fog (previously explored tiles) carries a ~10% zone temperature tint (bar=warm dark, hub=cool dark, corridor=neutral dark). The question: server-tracked or client-only? Arguments: server-tracked = diegetically accurate (server knows which zone each tile belongs to, sends
zone_idorzone_temperatureper tile inObserverSnapshot); client-only = simpler (client remembers last-visited zone per tile and applies tint from local memory). The server already sendszone_idper tile if D-073 zone crossfade is implemented (client needs zone info for crossfades). Ifzone_idis already in the snapshot for D-073, zone temperature memory is essentially free — client mapszone_id→ temperature tint from a local lookup table, using the snapshot'szone_idper tile. Recommended resolution: server-tracked viazone_id(already needed for D-073), client applies temperature tint from localzone_id → tintmapping. Write the decision, updatedecisions/perception.mdor create a new D-NNN entry, and implement whichever approach is decided. Ifzone_idis not yet in the tile data ofObserverSnapshot, add it.
Dependency Chain
#505 (Sound Lab, Decay Observatory, Shift Change) — standalone, parallel
#523 (OQ-09 resolution) — standalone, parallel
Both tickets are independent of each other and can proceed in parallel.
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):
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(simulation): description" --description "body" --base main --head server