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.6 KiB
4.6 KiB
title, description, type, status, sprint, team
| title | description | type | status | sprint | team |
|---|---|---|---|---|---|
| Sprint 12 — Client Briefing | Close-range stereo audio, medium-range visual indicators, entity renderer fix, dialogue width | sprint | archived | 12 | client |
Sprint 12: Build — Client 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: client
Agents: Stig (client dev), Tyre (architect), Hoshe (QA)
Carry-over from Sprint 11
None. Sprint 11 was 7/7 done.
New Tickets
| # | Title | Blocked by |
|---|---|---|
| #125 | Close-range stereo audio | #124 (server) |
| #126 | Medium-range visual indicators | — |
| #345 | Fix entity_renderer.gd field name bug | — |
| #447 | Resolve OQ-29: dialogue max-width pixel value | — |
Use db/connectors/ticket show <id> for full details.
Key Decisions
decisions/architecture.md— D-020 (IPC bridge), D-066 (dual-scale grid)decisions/perception.md— D-018 (three-range sound model), D-067 (recognition chime at cognitive delay onset), D-068 (5-bus audio architecture), D-069 (audio dip profiles), D-071 (ListeningFocus boost for eavesdropping)
Open Questions to Resolve Early
- OQ-29 (#447): Dialogue max-width pixel value. Resolve before any dialogue layout work. Fast resolution — pick a value, record the decision.
Notes
#125 — Close-range stereo audio
- Blocked by #124 (server sound event system). Start once server delivers
sound_eventsinObserverSnapshot. - The
audio_manager.gdautoload (client/scripts/autoloads/audio_manager.gd) already exists from Sprint 8. This ticket wires it to the snapshot-driven event loop. - Close-range events (RangeCategory::Close) map to 2D positional audio using Godot's
AudioStreamPlayer2D. Screen-space coordinates from the entity's world position. - Asset registry:
AudioAssetRegistrymaps event type (Footstep,Voice, etc.) to audio file. The 8 audio assets from D-038 (done Sprint 10) are available — use them. - D-068 specifies the 5-bus architecture (Master, Ambient, World SFX, Player Actions, UI). Sound events go on the World SFX bus.
- D-069 audio dip: during confrontation, World SFX drops 4–6dB. The dip logic is in
audio_manager.gd— confirm it's wired to the confrontation state flag.
#126 — Medium-range visual indicators
- Fog-edge directional indicators for sound events outside LOS (RangeCategory::Medium).
- Arrow or icon at the fog boundary, pointing toward sound source direction. Color-coded per D-018 and D-069: neutral
#c8d0e0, voices#e8c547, danger#d45d5d. - Triggers an internal monologue description (server-side, but client shows the indicator at the fog edge).
- Implementation: overlay node on top of
fog_renderer(client/scripts/rendering/fog_renderer.gd.uid— confirm file name). Draw using_draw()or a dedicated indicator scene. - Does not require #124 to be complete — can implement the indicator rendering standalone with mock data, then wire to snapshot.
- Visual spec for the fog-edge pulse design (#317, visual team) is in sprint but may not arrive before implementation. Use the D-018 color values as the reference.
#345 — Fix entity_renderer.gd field name bug
- Known bug:
entity_renderer.gdreferencesentity.idbut the bridge protocol usesentity.entity_id. - File:
client/scripts/rendering/entity_renderer.gd. - Fix the field name, add a regression test to the client test suite.
- Quick fix — do this first to unblock clean rendering for the sprint.
#447 — Resolve OQ-29: dialogue max-width pixel value
- Open question: what is the max pixel width for the dialogue box?
- Resolution approach: measure against the target resolution, pick a value that fits the grid. Document in
client/scripts/constants.gdasDIALOGUE_MAX_WIDTH. - Record the resolved value as a decision if it has downstream impact (it does — affects text wrapping in dialogue UI).
Dependency Chain
#124 (server, sound events) → #125 (close-range stereo audio)
#126 (medium-range indicators) — standalone, parallel
#345 (field name bug) — quick fix, do first
#447 (OQ-29 resolution) — standalone, do early
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(client): Sprint 12 — sound pipeline, medium-range indicators, renderer fix" --description "body" --base main --head client