--- title: "Workshop Outcomes: Knowledge Graph & Information Boundaries" description: "Final outcomes summary with decisions filed, tickets created, and workshop accomplishments" type: workshop status: archived workshop: knowledge-graph-information-boundaries agent: "" round: 0 created: 2026-02-11 --- # Workshop Outcomes: Knowledge Graph & Information Boundaries **Workshop:** Knowledge Graph & Information Boundaries **Date:** 2026-02-11 **Rounds:** 2 (Design + Synthesis) **Participants:** Tyre, Gestalt, Paula, Dudley, Si **Facilitator:** Jeroen **Documenter:** Qatux **Status:** DONE — fully actioned, decisions filed, tickets created **Full notes:** `docs/workshops/knowledge-graph-information-boundaries/round2-synthesis.md`, `sprint2-impact.md` --- ## What the Workshop Accomplished Replaced the `InformationInventory { known_facts: Vec }` placeholder with a fully specified knowledge graph data model. Five agents analyzing from different angles converged independently on all fundamentals: per-entity ECS component, stable entity IDs, per-entry provenance tracking. The synthesis resolved the only substantive debate (centralized resource vs. per-entity component) unanimously in favour of per-entity. The resulting D-041 spec is the foundation for asymmetric information as a playable mechanic — and became load-bearing for D-010, D-011, D-017, D-028, D-033, and Q-016. --- ## Major Decision Produced ### D-041: Knowledge Graph Data Model The core design decision of this workshop. Full specification in `decisions/perception.md`. Key architectural choices: - `KnowledgeGraph` as a Bevy ECS `Component` on each entity (not a centralized resource) - `StableEntityId` (`u64`-based) for cross-reference stability; runtime `EntityRegistry` for bidirectional mapping - `BTreeMap` + `BTreeMap` per entity - Four confidence levels: `Direct` > `KnowsDetails` > `KnowsOf` > `Suspects` - Three knowledge states: `Active`, `Stale`, `Contradicted` - `KnowledgeSource` tracked per-entry (not per-graph): `DirectObservation`, `ToldBy`, `Background`, `Heard` - Event-driven updates via `KnowledgeEventQueue`; decay pass once per game-minute - Sprint 2 scope: data structures + direct observation + basic decay only ### Additional Decisions Implied (formalized later) The workshop produced the architectural foundation that fed into: - D-012: Information boundaries (per-character knowledge isolation) - Formal resolution of Q-016: Knowledge hierarchy (`Suspects` < `KnowsOf` < `KnowsDetails` < `Direct`) --- ## Open Questions Identified | ID | Question | Sprint Impact | Resolved By | |----|----------|---------------|-------------| | Q-024 | Gossip propagation timing (immediate vs queued) | Sprint 3+ | D-080 (knowledge-flow-npc-boundaries workshop) | | Q-025 | Knowledge graph cap and eviction policy | Sprint 3+ | D-080 (closed: no cap needed at projected v0.1 scale) | | Q-026 | Contradiction detection algorithm | Sprint 3+ (THE FRIEND arc) | D-083 (knowledge-flow-npc-boundaries workshop) | None blocked Sprint 2. --- ## Tickets Created 8 new tickets added to Sprint 2, all under epic #351. Sprint 2 expanded from 14 to 22 tickets (+6.5 developer-days). | # | Title | Priority | Estimate | |---|-------|----------|----------| | #361 | KnowledgeGraph component + types (D-041) | critical | 1 day | | #362 | StableEntityId + EntityRegistry resource | critical | 1 day | | #363 | KnowledgeEventQueue + processing system | high | 0.5 day | | #364 | Direct observation knowledge flow | critical | 0.5 day | | #365 | Basic knowledge decay system | high | 0.5 day | | #366 | Observer snapshot knowledge integration | critical | 1 day | | #367 | Knowledge graph unit test suite | high | 1 day | | #368 | Knowledge vocabulary for v0.1 content | high | 0.5 day | **Existing tickets affected:** - #89 (Information inventory) — cancelled, subsumed by #361 - #269 (CauseChain component) — marked done (already implemented) - #138-142 (Information boundary epics) — reparented under #351; #139, #141, #142 deferred to Sprint 3; #140 cancelled (merged into #366) **Critical path impact:** #361, #362, #363, #364 added serially to Sprint 2 critical path (10 tickets serial, up from 6). --- ## Sprint 2 Completion Criteria (Added by Workshop) Two new acceptance criteria added to Sprint 2's definition of done: - Entity color reflects relationship state from knowledge graph (#361, #366) - Remembered (not visible) entities appear as ghosts at last-known position (#361, #366) **Knowledge graph proof:** Observe an NPC, walk away, return. NPC appears as ghost at last-known position while not in LOS. Color shifts by relationship state. --- *Compiled by Qatux. Source: `docs/workshops/knowledge-graph-information-boundaries/round2-synthesis.md`, `sprint2-impact.md`. Primary decision in `decisions/perception.md` (D-041).*