01 · Start
Generate or refresh the snapshot
Ask your agent to generate an architectural snapshot of the current project. Refresh it after substantial edits so later queries use the current graph.
enola --generate
This analyzes the configured repository—or the current repository when no configuration is present—and writes persistent artifacts to .enola/. For a terminal report that writes no artifacts, use enola --explain ..
02 · Understand
Orient in an unfamiliar codebase
Give me a tour of the main modules and how they relate. Show the routes, storage, and external dependencies. Where should I start reading to understand authentication?
The agent can begin with explore, then use query_facts, traverse, or find_path when it needs a precise answer.
03 · Analyze
Plan a change from its blast radius
I need to change AuthService. What depends on it? Group the impact by distance and tell me which repositories are affected. Show the path from the login route to token storage.
impact_analysis walks reverse dependencies; find_path explains a specific connection. Results are bounded by the edges resolved by the active extractors.
04 · Inspect
Review architectural findings
Show newly introduced cycles and layer violations. Where are the call-graph hotspots and complexity outliers? Which routes have no caller in the repositories currently loaded?
Use query_insights for computed findings. Confidence and evidence belong to each finding; an unused route means no loaded client was linked, not that no runtime caller exists.
05 · Intent
Check the rules before the edit
Use governing_intent to find the declarations covering a target, then constraints_for to see its rules, exemptions, and guidance. For a planned set of paths or a patch, use plan_check before changing the tree.
06 · Verify
Compare what changed
enola baseline pin
# make the change
enola checkThe result contains only the delta against the pinned baseline. For policy controls, hooks, CI, target scope, and spillover, continue to Change control.
07 · History
Trace architectural changes
architecture_history summarizes recorded architectural changes over time. architecture_blame identifies when a fact, relation, or finding entered or left the recorded architecture. Use them when the question is “when did this change?” rather than “what is true now?”