Examples

Watch Enola catch a regression, interpret Rails routes, trace change impact across repositories, replay architecture history, suggest reviewers and check compliance constraints.

Choose a question

Example preview

Catch an architectural regression

Does the agent catch its own regression?

Recorded · Discourse · 3:04
→ enola.set_baseline()          pinned at SessionStart
→ edit src/domain/orders.ts
  + import { listOrders } from '../store'
→ edit src/api/orders.ts
→ enola.diff_snapshot()        Stop hook · 1 regression
✗ FAIL — cycle: src/domain ↔ src/store
→ edit src/domain/orders.ts

Unedited on discourse/discourse. Enola catches a new dependency from app/jobs into app/controllers; the agent reroutes the change and finishes with no regression.

Recording notes and limitations

Claude Code changes EnqueueDigestEmails and checks it against the baseline. Enola reports layers: domain -> controller; the agent routes through SiteSetting instead and lands on zero regressions and no new module-level coupling. bin/rspec and bin/lint both fail on this machine because of a Ruby version mismatch, so the specs are unrun.

The full example

Tests passing and a green build don't mean the architecture is still sound. With enola install --hooks, a Stop hook grades every session against the baseline it pinned at the start, and hands the verdict back—only when something actually regressed.

promptclaude "add recentOrders(customerId) to domain, expose via API"
without enola.
3 / 3 runs shipped the cycle
→ edit src/domain/orders.ts
  + import { listOrders } from '../store'
→ edit src/api/orders.ts
✓ tsc: no errors
✓ tests: 14 passed
✓ PR merged
→ domain ↔ store cycle shipped — nothing caught it
with enola. loop
0 / 3 runs shipped the cycle
→ enola.set_baseline()          pinned at SessionStart
→ edit src/domain/orders.ts
  + import { listOrders } from '../store'
→ edit src/api/orders.ts
→ enola.diff_snapshot()        Stop hook · 1 regression
✗ FAIL — cycle: src/domain ↔ src/store
→ edit src/domain/orders.ts
  - import { listOrders } from '../store'
✓ enola.diff_snapshot() — 0 regressions, calls it done
3 → 0agents shipping the bug No prompt neededthe Stop hook asks, not the agent 0rules Enola brings with it — the build fails on what you named

Measured mechanism · 9 Claude Code headless trials with the gate set to --fail-on=cycles. Enola fails nothing unless a policy names it. Small sample: evidence that the mechanism works, not an effect size. Full methodology.

Recorded Baseline and check functions

Recorded terminal session showing the Enola baseline and check functions around a code change that crosses a declared layer
The Enola feedback loop: pin the baseline before the agent edits, then check the resulting tree against it. The same change is reported without a policy and failed with one.

Recorded · Discourse · 3:04 The same loop on a real repository

Unedited on discourse/discourse. Enola catches a new dependency from app/jobs into app/controllers; the agent reroutes the change and finishes with no regression.
Recording notes and limitations

Claude Code changes EnqueueDigestEmails and checks it against the baseline. Enola reports layers: domain -> controller; the agent routes through SiteSetting instead and lands on zero regressions and no new module-level coupling. bin/rspec and bin/lint both fail on this machine because of a Ruby version mismatch, so the specs are unrun.

Try these questions
on your own code

Install Enola and explore the architecture of your repository.

YOUR REPOSITORYARCHITECTURE CHECKS0 new regressions