Files
jpmschweitzerandClaude Opus 4.6 1e556ccca2 docs(diagrams): add decision diagrams across all domains
16 d2 diagrams covering architecture (IPC bridge, system tiers,
testability, audio bus), data flow (perception, dialogue, eavesdrop
pipelines), entity (knowledge graph, NPC generation, dialogue tags),
state (simulation tiers, movement stances, knowledge confidence), and
UI (HUD layout, interaction flow, fog layers). PNG output for universal
viewer compatibility. Removes test SVG from font debugging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:57:07 +01:00

153 lines
3.9 KiB
Plaintext

# Knowledge Confidence State Machine — D-041
# 4-level confidence hierarchy with state tracking and decay.
# Maps to dialogue trust tiers (D-075) and fog recognition (D-059).
vars: {
color-bg: "#2a3040"
color-stroke: "#333340"
color-text: "#c8d0e0"
color-accent: "#c8d8f0"
color-dim: "#1a1e24"
}
none: No Knowledge\n(entity unknown) {
shape: oval
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
suspects: Suspects\n"something off" {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
knows_of: KnowsOf\n"X is involved in Y" {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
knows_details: KnowsDetails\n"actionable detail" {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
direct: Direct\n"currently in LOS" {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
style.bold: true
}
dialogue_gates: Dialogue Trust Gate (D-075) {
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
surface: Surface tier\n(any confidence) {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
real: Real tier\n(KnowsOf+ AND Friendly/Known) {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
secret: Secret tier\n(KnowsDetails+ AND Friendly) {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
}
fog_gate: Fog Recognition (D-059) {
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
recognized: Recognized entity\n(D-033 color + silhouette) {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
unrecognized: Grey blob\n(no identity) {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
}
knowledge_states: KnowledgeState {
shape: package
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
active: Active (Sprint 2) {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
contradicted: Contradicted (Sprint 3+)\nToldBy conflicts DirectObservation {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
style.stroke-dash: 4
}
stale: Stale (Sprint 3+)\naged past DecayThreshold {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
style.stroke-dash: 4
}
}
none -> suspects: "observe anomaly\nor receive tip" {
style.stroke: ${color-stroke}
}
suspects -> knows_of: "further observation\nor testimony" {
style.stroke: ${color-stroke}
}
knows_of -> knows_details: "direct evidence\nor confrontation" {
style.stroke: ${color-accent}
}
knows_details -> direct: "enter LOS" {
style.stroke: ${color-accent}
}
direct -> knows_details: "exit LOS" {
style.stroke: ${color-stroke}
style.stroke-dash: 4
}
# Decay path (D-041: once per game-minute)
knows_details -> knows_of: "decay\n(last_observed_tick age)" {
style.stroke: ${color-stroke}
style.stroke-dash: 4
}
knows_of -> suspects: "decay" {
style.stroke: ${color-stroke}
style.stroke-dash: 4
}
suspects -> dialogue_gates.surface
knows_of -> dialogue_gates.real
knows_details -> dialogue_gates.secret
suspects -> fog_gate.unrecognized
knows_of -> fog_gate.recognized
knows_details -> fog_gate.recognized
knows_details -> knowledge_states.contradicted: "ToldBy vs DirectObservation\n(Sprint 3+)" {
style.stroke: ${color-stroke}
style.stroke-dash: 4
}
knows_of -> knowledge_states.stale: "decay (Sprint 3+)" {
style.stroke: ${color-stroke}
style.stroke-dash: 4
}
none -> knowledge_states.active