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>
6.9 KiB
title, description, type, status, sprint, team
| title | description | type | status | sprint | team |
|---|---|---|---|---|---|
| Sprint 15 — Joint Briefing | Cross-team coordination for follow/examine mechanics, dialogue layers, personality system | sprint | archived | 15 | joint |
Sprint 15: React — Joint Coordination
Goal: The player acts and the world reacts — follow and examine mechanics connect the player to the living NPC simulation; the dialogue system's first two access layers open up information gating; server-side monologue events fire in context; and the personality/tell system completes the NPC data model.
Agents: All teams — coordination reference
Pre-Sprint Decisions
No blocking open questions identified for this sprint. All decisions required by Sprint 15 tickets are confirmed.
| Decision | Status | Required by |
|---|---|---|
| D-024 (NPC 10-axis model, tell system) | Confirmed | #90, #92 |
| D-028 (dialogue 4-layer architecture) | Confirmed | #169, #170 |
| D-035 (tag taxonomy, 9 moods post S14 amendment) | Confirmed | #119, #169, #170 |
| D-075 (confidence gates trust tier, not access tier) | Confirmed | #169 |
| D-016 (monologue triggers) | Confirmed | #119 |
| D-010 (deterministic simulation) | Confirmed | #92, #340 |
| D-015 (camera locked, fixed-north v0.1) | Confirmed | #117 |
| D-019 (top-down, "the angle") | Confirmed | #71 |
| D-049 (8-layer z-stack) | Confirmed | #71, #74 |
Cross-Team Dependencies
Server #119 (monologue event generation)
→ content pool selector reads D-035 trigger tags authored by copy team
→ fires on observe_npc, hear_sound, observe_anomaly, witness_interaction, post_conversation
→ output appears in ObserverSnapshot.current_monologue (existing field, GameState v5)
→ client #74 (UI framework) must display it via MonologueDisplay
Server #241 (follow mechanic)
→ emits follow_target_id in ObserverSnapshot
→ client #73 (input capture) must dispatch Interact→Follow verb via nearby_interactions
→ client #72 (entity sprite) can highlight follow target entity
Server #90 (personality & tell system)
→ tell state on ObserverSnapshot entity field
→ client #72 may render tell state (stub field now, visual in sprint 16)
Copy #169 (Layer 1 access tier tagging)
→ requires server dialogue.rs (#305, done) to be running Layer 1 filter
→ copy team audits content files; server team does not need to change code
Copy #299/#300 (opening hooks)
→ requires MonologueDisplay (#122, done) and monologue event triggers (#119, this sprint)
→ content ready before engine = acceptable; engine ready before content = also acceptable
→ they are parallel workstreams that meet at playtest
Sprint Completion Proof
Sprint 15 is done when all of the following are observable:
-
Follow mechanic end-to-end: Player right-clicks an NPC and selects Follow. The server tracks proximity and LOS. Observation events fire while following. NPC suspicion accumulates if the player is within 2 tiles for 60+ ticks. The follow ends naturally when the NPC enters deep fog or detects the player. No client crash. Server logs emit follow-state transitions.
-
Monologue fires on observation events: When the player enters a location, observes an NPC, or hears a sound at medium range, a contextually tagged monologue line appears in the MonologueDisplay. Line selection uses D-035 trigger tags. The cooldown (300 ticks) prevents spam.
observe_anomalyfires when a routine deviation is detected (#243). -
Routine deviation detected: An NPC breaks their routine (wrong location for day phase, or absent from expected location). The server emits a
RoutineDeviationEvent. This feeds the monologue trigger above (observe_anomaly). -
NPC generation pipeline produces valid NPCs:
generate_npc()takes a role, outputs a fully-seeded ECS entity with all 10 axes populated. Constraint validation passes. Personality traits (2-3) and tell state are present. -
Layer 1 access filtering active: The dialogue system filters lines by
RelationshipState→accesstier. A player with Unknown relationship sees onlypublic-tagged lines. A player with Known/Friendly relationship also seesinsider/peerlines. The filter is invisible — no locked indicators (D-062). -
Layer 2 relationship history active: Kael (or Sera) greets the player differently on first vs subsequent encounters. The
greetingsituation tag drives this.InteractionMemoryfrom Sprint 14 (#325) is the data source. -
Tilemap + entity + input + UI all render cleanly: Game boots, tiles render from snapshot data, entity sprites move with lerp, input sends semantic actions to server, HUD displays monologue and stance. No regressions on Sprint 14 functionality (fog, dialogue box, NPC-to-NPC conversation panel).
-
Smooth camera movement: Camera tracks player position with interpolated smoothing. No jarring snaps during movement. Snap-on-teleport still works. Camera stays fixed-north (D-015).
-
Opening hooks authored: Both
monologue-smuggler.yamlandmonologue-detective.yamlcontain the 10-15 opening sequence lines. Lines carry correct D-035 structural tags: character partition, trigger type, situation, prerequisite null.
Test Plan Alignment (D-030)
Sprint 15 is in the integration-and-behavior phase. Testing priorities:
- Server unit tests (Hoshe):
PersonalityTraitsderivation (correct tell state from axis values),RoutineDeviationEventemission timing,ToleranceThresholdbreach at correct stress level,SpatialIndexnaive impl correctness (entities_in_range, entities_at, update) - Integration test (Hoshe): Follow mechanic end-to-end — simulate player issuing Follow verb, advance N ticks with NPC moving, verify observation event frequency increase, verify suspicion accumulation rate
- Content validation (CI): Cross-reference check on new monologue files — character partition, required tags present, trigger enum values valid (extends existing
content-cross-referenceCI check, #464) - Client regression (Hoshe): Verify all Sprint 14 integration proofs still pass after #71/#72/#73/#74 changes — fog renders, dialogue box appears, NPC-to-NPC conversation panel shows
Carry-over Risk
No Sprint 14 carry-overs. Sprint 14 was 100% complete (22/22 done).
The highest carry-over risks in Sprint 15:
- #299/#300 (opening hooks): Content authoring on the critical path — Mellanie leads, Paula consults. If these slip, they carry to sprint 16 with no downstream blocking (the system will run without them, using time_idle and enter_location monologue from existing pools).
- #169/#170 (dialogue layers 1-2): These are content-side auditing and authoring tasks. The pipeline code (#305) is done. Carry-over has no server code impact.
- #241 (follow mechanic): Depends on interaction dispatcher (#240, done) but adds new system logic. Medium complexity. Carry-over defers NPC suspicion mechanics but does not block other sprint tickets.