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>
Goal: NPCs volunteer information unprompted and express personality through delivery; the player can read time and orientation at a glance from the insert HUD; POI infrastructure lands on the server.
tell_state + disclosure only, pathfinding deferred, Active-tier only
D-083
Contradiction Detection Pipeline
Event-driven at KG write time, ContradictionClaim struct, 600-tick window
Questions Closed
Question
Resolution
Q-024
Gossip timing — conversation system hook confirmed
Q-025
KG memory — not a constraint at current scale, re-evaluate at 200+ Active NPCs
Q-026
Contradiction detection — event-driven at KG write time with ContradictionClaim
Team Lead Decision
Entity grants ship in Sprint 17 (overrides FactId workaround). Compound KnowledgeGrant with Entity variant + ContentEntityRegistry at NPC spawn.
Workshop Tickets Created
7 implementation tickets (#545-#551) under the Knowledge Graph epic, plus #552 (copy team contradiction content). See server briefing for full dependency chain.
Pre-Sprint Decisions
Decision
Who
Status
Workshop Topics 1-5
Tyre, Gestalt, Dudley, Paula
Done — D-079 through D-083
Q-028: Collision-resistant line IDs
Gestalt, Tyre
Open
Cross-Team Integration Points
Server ticket
Client ticket
Integration
#148 POI data model
#263 Time display
POI data feeds future minimap; time data already in snapshot
#232 Protocol versioning
All client
Client must handle version field in messages
#551 Unprompted disclosure
#537 E-Talk UX
Disclosure lines appear in dialogue UI; E-Talk overlay should hint at NPC willingness
Server ticket
Visual ticket
Integration
#148 POI data model
#314 Insert/HUD wireframe
POI categories must match wireframe's display elements
Server ticket
Copy ticket
Integration
#550 Contradiction monologue
#552 Author contradiction lines
Copy authors lines per D-083 spec; server wires them into monologue system
Sprint Completion Proof
Sprint 17 is DONE when:
Unprompted disclosure fires — An NPC with high trust and relevant knowledge volunteers information to the player without being asked. The volunteered line appears in the dialogue UI. The player's KnowledgeGraph gains a new fact via knowledge_grant.
Trait modifiers reshape delivery — Two NPCs with different personality traits deliver the same base information differently (different mood, different wording or selection weight).
Time is visible — The insert HUD shows current game time in a diegetic format. Time advances visibly as ticks pass.
POIs exist on the map — Server spawns POI entities with the PointOfInterest component. POIs can be discovered via walking into a location (physical discovery).
Protocol version field exists — All messages include a version field. Client logs a warning on version mismatch.
E-Talk overlay is informative — The interaction overlay shows NPC name (if known), relationship color, and a dialogue tier hint.
Insert wireframe is specified — Both smuggler and detective variants are wireframed with layout, colors, and interaction states documented.
Tutorial monologue fires — First-time events (move, fog, sound, NPC proximity) trigger diegetic tutorial lines for both characters.
Contradiction detection fires — Location contradiction between ToldBy and DirectObservation sources marks both entries Contradicted. Source-named monologue line triggers. THE FRIEND arc mechanical sequence validates end-to-end.
NPC-to-NPC knowledge transfers — NPCs in conversation exchange trust-gated facts. ToldBy source is constructed. Confidence capped at KnowsOf.
Test Plan (D-030 alignment)
Sprint 17 is in the integration testing phase (Sprints 3-4 per D-030):
#545 + #546: Unit tests for KnowledgeGrant enum serde roundtrip, ContentEntityRegistry resolution, KnowledgeGranted event processing.
#547 + #550: Integration test — ToldBy entry + DirectObservation at different position within 600-tick window → Contradicted state → monologue fires → relationship shift → amber color.
#549: Unit test — tell_state reads KG for relationship data, falls through to axes for self-knowledge.
#551 + #172 + #173: Integration test — NPC with specific axis values and KG state triggers unprompted disclosure; trait modifier changes the selected line.
#148 + #149: Unit tests for POI component CRUD; integration test for discovery event → KG update.
#232: Unit test for version serialization roundtrip; integration test for version mismatch handling.
#263: Manual verification — time display updates as simulation advances.