Files
settled-reach/docs/diagrams/entity/npc-generation.d2
T
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

155 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NPC Generation Model — D-024, D-025
# 10 axes + combat component. Social site / functional cluster as atomic template unit.
vars: {
color-bg: "#2a3040"
color-stroke: "#333340"
color-text: "#c8d0e0"
color-accent: "#c8d8f0"
color-dim: "#1a1e24"
}
direction: right
npc: NPC (generated) {
shape: person
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
essential: 7 Essential Axes {
style.fill: ${color-dim}
style.stroke: ${color-accent}
style.font-color: ${color-text}
want: Want {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
secret: Secret / Vulnerability {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
relationships: Relationships (1-3) {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
tolerance: Tolerance Threshold {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
routine: Daily Routine {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
info_inv: Information Inventory {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
contentment: Contentment {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
}
supporting: 3 Supporting Axes {
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
personality: Personality Traits (2-3) {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
tell: Tell System {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
skills: Skill Set {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
}
combat_comp: CombatCapability\n(optional ECS component) {
shape: package
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
style.stroke-dash: 4
}
key_interactions: Key Contradiction Interactions {
style.fill: ${color-dim}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
i1: Want × Secret {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
i2: Routine × Secret {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
i3: Tolerance × Relationships {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
i4: Want × Relationships {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
i5: Personality × Tolerance {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
}
social_site: Social Site\n(atomic Tier 2 template unit) {
style.fill: ${color-dim}
style.stroke: ${color-accent}
style.font-color: ${color-text}
group: Social Group (4-8 NPCs)\n2+ triangles + 1 cross-template triangle {
style.fill: ${color-bg}
style.stroke: ${color-accent}
style.font-color: ${color-text}
}
cluster: Functional Cluster\n15-40 tiles, internal sightlines {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
ownership: NPC Ownership\nowned by 1 template, referenced by others {
style.fill: ${color-bg}
style.stroke: ${color-stroke}
style.font-color: ${color-text}
}
}
npc -> essential: "generated with" { style.stroke: ${color-accent} }
npc -> supporting: "generated with" { style.stroke: ${color-stroke} }
supporting.skills -> combat_comp: "combat tag → component" {
style.stroke: ${color-accent}
style.stroke-dash: 4
}
essential -> key_interactions: "produces" { style.stroke: ${color-stroke} }
npc -> social_site: "placed in" { style.stroke: ${color-accent} }