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>
5.8 KiB
title, description, type, status, sprint, team
| title | description | type | status | sprint | team |
|---|---|---|---|---|---|
| Sprint 16 — Joint Briefing | Dialogue response integration, sprite pipeline coordination, line ID scheme | sprint | archived | 16 | joint |
Sprint 16: Converse — Joint Coordination
Goal: Dialogue becomes a two-way exchange — players pick options and the server responds; NPC information-giving deepens through trust and trait-shaped delivery; the sprite pipeline gets its correct art-direction angle; and housekeeping fixes land across all three active teams.
Pre-Sprint
No blocking decisions or schema work required before implementation starts. All relevant decisions are confirmed (D-019, D-028, D-035, D-075, D-077). Sprint 16 can begin immediately.
| Item | Owner | Status |
|---|---|---|
| D-035 line ID scheme (NPC-scoped) | confirmed | done |
| D-075 layered confidence gate on trust | confirmed | done |
| D-019 camera angle amendment | confirmed | done |
| D-077 zone_id on VisibleTile | confirmed, implemented | done |
Ticket Overview
| # | Title | Team | Blocked by |
|---|---|---|---|
| #538 | Arch: Move dialogue systems BridgePlugin → NpcPlugin | server | — |
| #539 | Server: implement DialogueResponse verb handler | server | #538 |
| #171 | Layer 3: Trust-gated gossip | server | — |
| #338 | Line variety tracker — prevent repeat dialogue | server | — |
| #543 | Optimize zone_id extraction O(N) → O(1) | client | — |
| #540 | Adjust sprite camera to D-019 angle | client | #541 |
| #542 | Migrate line IDs to NPC-scoped namespace | copy | — |
| #541 | 3D sprite render pipeline setup | visual | — |
Cross-team Dependencies
#541 (visual) → #540 (client): Araminta must deliver at minimum a test entity sprite and a wall sprite at the -72.5° angle before Stig can validate the import path and z-sorting behavior. Early delivery of test sprites (even before the full pipeline doc is written) unblocks client work. Coordinate via the visual → client handoff — Araminta commits test sprites to client/assets/sprites/ on the visual branch; Stig pulls and verifies fit in entity_renderer.gd.
#538 (server) → #539 (server): Sequential within the server team. #538 refactors registration; #539 adds a new system in the correct location. Dudley should complete and merge #538 before starting #539.
#542 (copy) → server golden tests: After #542 renames all line IDs, the server golden test fixtures in server/tests/ may reference old line IDs (e.g., the-terminal_d_039). Run make pre-pr (which includes the content cross-reference validation and fixture staleness check) after #542 merges. If golden tests fail, the server team updates fixtures with make golden-update.
Sprint Completion Proof
The sprint is complete when all of the following are observable:
-
DialogueResponse closes the loop: Player opens dialogue with any NPC, selects response option 1 or 2 (non-confrontation), and the NPC delivers a contextually appropriate follow-up line. No silent no-op on option selection. Observable in-game or via the test client replay.
-
Trust-gated gossip unlocks progressively: A player with
KnowsOfconfidence on a target NPC receives different (more forthcoming) dialogue lines than a player withSuspectsconfidence. Observable via the line previewer CLI or a gauntlet test room. The same NPC gives Surface-tier lines on first contact and Real-tier lines after investigation. -
No line repeats within 1 game-hour: The player can initiate dialogue with the same NPC 5+ times in quick succession and observe that no dialogue line_id repeats. Observable via the WRONG button capture or server logs.
-
Zone_id lookup is O(1):
game_state.gdapply_snapshot()no longer contains the linear tile scan for zone_id (lines 249-252 removed).current_zone_idpopulates correctly. Confirmed by code review + existing client tests passing. -
Sprite camera angle: At least one entity sprite and one wall sprite are rendered at -72.5° from horizontal and display correctly in the Godot client without z-sorting artifacts. Observable in the rendering scene.
-
Line ID migration complete:
make pre-prpasses with no content validation errors. No YAML file undercontent/contains line IDs with the old{location_slug}_prefix. Observable via CI.
Test Plan Alignment (D-030)
Sprint 16 is in the Sprint 3-4 integration phase per D-030 test priorities.
- #539 (DialogueResponse handler): New system requires an integration test: player sends
DialogueResponse { response_id }, assertDialogueResponseBufferis populated with a follow-up line. Use existing test harness pattern fromdialogue.rsgame_loop tests. - #171 (Trust-gated gossip): Requires a unit test: initialize player KG with
KnowsDetailson target, runprocess_talk_interaction, assert aSecret-tier line is selected. Mirror withSuspectsconfidence, assert onlySurface-tier lines are selected. - #338 (Line variety tracker): Requires a regression test: send
Talk10 times to same NPC within 600 ticks, assert no line_id appears twice. - #543 (O(1) zone lookup): Code-change-only; existing client tests cover
apply_snapshot()behavior. Add assertion thatcurrent_zone_idis non-empty when the player is on a zone-tagged tile. - #542 (line ID rename): Covered by
make pre-prcontent cross-reference validation (CI #464).
PR Merge Order Recommendation
To minimize merge conflicts and test failures:
copy#542 — no code dependencies, merge first to unblock golden test validationserver#538 — plugin refactor, isolated changeserver#171 and #338 — parallel, both isolated from #539server#539 — depends on #538 being mergedvisual#541 — can merge any time, gates #540client#543 — standalone, merge any timeclient#540 — merge after #541 lands