What Is a Decision?
A decision is a structured record of an architectural choice: what was decided, why, and which files or symbols it affects. Decisions are how Enagrams keeps agents (and humans) aligned on the same architectural approach across sessions, branches, and weeks. Decisions are related to but distinct from conventions:- A decision is a one-time choice (“We picked JWT over sessions”).
- A convention is an ongoing rule (“All API routes must return
{ ok, data, error }”).must-tier conventions can block writes.
Recording a Decision
Use thedecide MCP tool:
files, resolves them against the symbol graph when possible, embeds the decision text for semantic search, and records the symbol_graph_version seen at the time. That version is what makes the decision “live” — see staleness below.
Decisions can also be extracted automatically from meeting transcripts and coding traces.
Decision Types
| Type | When to use |
|---|---|
architecture | High-level system design choices |
approach | How to implement a specific feature |
implementation | Low-level implementation details |
tradeoff | Documented tradeoffs between options |
convention | Patterns adopted as team standards (prefer convention_propose for enforcement) |
bugfix | Root cause and fix for a notable bug |
other | Anything else worth remembering |
Semantic Search
Every decision is embedded withtext-embedding-3-small (1536 dimensions) and stored in pgvector:
Decisions in sync
The sync response always includes the most relevant recent decisions for the agent’s current files, plus any flagged stale:
Living Decisions: Staleness
Decisions don’t just sit in a ledger. When the code they describe changes, they get flagged.decision_reaffirm— “still applies, fresh again”decidewithsupersedes: <id>— records a new decision that replaces the old one
Automatic Extraction
Decisions are also extracted automatically from:- Meeting transcripts — LLM identifies decisions in conversation text.
- Coding traces —
POST /traces/pushcan trigger extraction from significant diffs.
Knowledge Graph
The dashboard visualizes decisions as a force-directed graph:- Nodes — decisions, files, symbols, architectural areas.
- Edges — shared files/symbols between decisions.