How markusx5622/convergia works
Convergia is an industrial multi-stakeholder decision simulator. Users select or build a scenario, configure stakeholders and options, then run a deterministic, round-based debate whose scores, vetoes, conflicts, concessions, and consensus support an explainable result and executive report. The Scenario Studio, sensitivity lab, guided demo, and session history are distinct product branches. Optional server-side LLM enrichment rewrites audited narrative only; it does not determine outcomes. The graph follows README-documented capabilities; sampled source confirms session persistence and the optional enrichment request path, while unsampled route wiring is not inferred.
Main entry points: simulation.ts Round simulation · debate/page.tsx Debate view · useBuilderStore.ts Builder workflow · studio/page.tsx Scenario Studio
Components 29
User experience
- Product hub
src/app/page.tsx - Scenario explorer
src/app/scenario/page.tsx - Stakeholder profiles
src/app/stakeholders/page.tsx - Debate view
src/app/debate/page.tsx - Decision result
src/app/result/page.tsx - Executive report
src/app/report/page.tsx - Guided demo
src/app/demo/page.tsx
Scenario modeling
- Scenario Studio
src/app/studio/page.tsx - Builder workflow
src/lib/useBuilderStore.ts - Scenario validation
src/lib/builder-validation.ts - Builder conversion
src/lib/builder-convert.ts - Scenario catalog
src/data/scenarios/index.ts - Sensitivity lab
src/app/lab/page.tsx
Decision engine
- Round simulation
src/engine/simulation.ts - Scoring
src/engine/scoring.ts - Veto rules
src/engine/veto.ts - Conflict analysis
src/engine/conflict.ts - Iterative concessions
src/engine/concession.ts - Consensus status
src/engine/consensus.ts - Deterministic explanations
src/engine/narrative.ts - Report assembly
src/engine/report.ts
Persistence and AI
- Session history
src/app/history/page.tsx - Local session store
src/lib/storage-manager.ts - AI narrative request
src/lib/useAINarrative.ts - Enrichment proxy
src/app/api/llm/enrich/route.ts - Narrative enrichment
src/services/llm/enrichment.ts - Chat completion client
src/services/llm/client.ts
Other components
- Decision maker
- LLM provider
Connections 34
- Decision maker → Product hub: opens
- Product hub → Scenario explorer: selects scenario
- Scenario explorer → Stakeholder profiles: continues setup
- Stakeholder profiles → Debate view: starts debate
- Debate view → Round simulation: runs rounds
- Round simulation → Scoring: calculates scores
- Round simulation → Veto rules: checks red lines
- Round simulation → Conflict analysis: measures conflict
- Round simulation → Iterative concessions: updates positions
- Round simulation → Consensus status: determines status
- Round simulation → Deterministic explanations: derives explanations
- Debate view → Decision result: presents outcome
- Decision result → Executive report: opens report
- Executive report → Report assembly: renders report
- Decision maker → Scenario Studio: builds scenario
- Scenario Studio → Builder workflow: edits draft
- Builder workflow → Scenario validation: validates draft
- Builder workflow → Builder conversion: converts draft
- Builder conversion → Round simulation: provides inputs
- Scenario Studio → Local session store: saves completed draft
- Decision maker → Scenario catalog: chooses preset
- Scenario catalog → Scenario explorer: provides presets
- Decision maker → Sensitivity lab: varies weights
- Sensitivity lab → Round simulation: reruns simulation
- Decision maker → Guided demo: starts guided demo
- Decision maker → Session history: reviews sessions
- Session history → Local session store: loads or deletes
- Local session store → Builder workflow: restores draft
- Debate view → AI narrative request: requests optional prose
- AI narrative request → Enrichment proxy: posts sanitized input
- Enrichment proxy → Narrative enrichment: requests enrichment
- Narrative enrichment → Chat completion client: formats completion
- Chat completion client → LLM provider: sends prompt
- AI narrative request → Decision result: supplies optional prose