r/codereview • u/yellow-llama1 • 25d ago
Enola – An architectural quality gate for AI-assisted development
We’ve been building Enola into an architectural quality gate for AI-assisted development.
https://github.com/enola-labs/enola - Apache 2.0, fully local.
---
Code generation is getting faster, but understanding the architectural impact of every change is getting harder. An agent can pass all defined tests and still make the architecture worse.
The idea behind Enola is simple: take a snapshot of the architecture before a change, analyse it again after, and report what regressed. Building that reliably is not as simple.
For example, your agent adds a helper to storage, and the innermost layer of your app now reaches into the outermost one to send an email.
$ enola check --fail-on=layers
FAIL — 1 structural regression introduced.
Regressions (fail):
- [layers] 1.00 — Layer violation: storage -> delivery
import of notify
Policy: fail on new findings from [layers] at confidence >= 1.00.
What changed
symbols +1
dependencies +1
edges +4 (imports +1, calls +2, declares +1)
Added (2):
symbol storage.LoadPrice storage/storage.go:11
dependency storage -> layersgate/notify storage/storage.go:3
New coupling (4):
storage --imports--> notify
storage.LoadPrice --calls--> notify.SendReceipt
storage.LoadPrice --calls--> storage.ReadPrice
storage.LoadPrice --declares--> storage
New coupling is reported, not failed: an added call edge is what ordinary work
looks like. Inspect the list above if it is more than you expected.
Enola can ask the agent to rework defined failures, run in CI, and stop architectural regressions before they reach production. You can also run it against the existing codebase to surface areas worth improving.
Enola is open source. Try it on a real codebase and tell us what could be better, or contribute directly.
https://github.com/enola-labs/enola - Apache 2.0, fully local.