01 · Model
Facts, relations, and snapshots
| Term | Meaning |
|---|---|
| Fact | A typed item extracted from the repository, such as a module, symbol, route, or table. |
| Relation | A directed connection between facts, such as imports, calls, or depends_on. |
| Snapshot | The graph and metadata produced by one analysis run. |
| Producer | An extractor or provider that contributed facts to a snapshot. |
02 · Comparison
Baselines, deltas, and findings
| Term | Meaning |
|---|---|
| Baseline | The pinned before snapshot used by enola check. |
| Delta | Facts, relations, and findings added or removed since the baseline. |
| Finding | A reported condition such as a dependency cycle, layer violation, or complexity outlier. |
| Policy | The finding categories selected with --fail-on. Only selected categories can fail a check. |
03 · Rules
Intent and constraints
| Term | Meaning |
|---|---|
| Intent | A declaration of expected architecture: service seams, layer order, or intended external dependencies. |
| Component | A named set of graph facts selected by path, kind, name pattern, repository (service), or measured properties (where). |
| Constraint | A rule that allows or forbids a relationship between components. |
| Exemption | A named, visible exception for a specific violation. |
Intent and constraints are declarations. Enola evaluates them against extracted facts; it does not infer them from prose or commit messages.
04 · Evidence
Receipts and coverage
| Term | Meaning |
|---|---|
| Receipt | Metadata describing the repository, Enola version, producers, configuration, git state, and fact counts for a snapshot. |
| Coverage | What the active extractors resolved, plus unresolved calls or cross-repository edges. |
| Comparable | Two snapshots that can be safely diffed because their identity-affecting settings match. |
| Partial verdict | A result graded only over facts shared by both producer sets. Excluded producers and facts are listed. |
05 · Example
One change through the model
A new import creates a relation between two module facts. The current snapshot contains that relation; the baseline does not. The delta therefore contains one added relation. If that relation crosses a declared layer boundary, Enola also creates a finding. The finding fails the check only when its category is selected by policy.