docs(workshops): add outcomes files for 5 completed workshops

Closes content-gap-analysis, KG-information-boundaries,
v01-content-scoping, v01-gap-analysis, and wiki-review workshops
with formal outcomes recording decisions produced, tickets created,
and open questions carried forward.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 12:45:59 +01:00
co-authored by Claude Opus 4.6
parent e9ca3cadf0
commit fdad0958b3
5 changed files with 501 additions and 0 deletions
@@ -0,0 +1,90 @@
# 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<String> }` 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<StableId, EntityKnowledge>` + `BTreeMap<FactId, FactKnowledge>` 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).*