Latest
Dogfooding Enola: from a missed N+1 to a 2× faster TypeScript extractor
How a missed N+1 led to better TypeScript detection, lower extractor complexity, and 1.3–3.6× faster extraction with byte-identical output.
Read the post31 posts
What Enola saves in 238 coding-agent sessions
Across 238 Claude Code and OpenCode sessions, 4,375 Enola calls added ~4.1M tokens to context. See latency, tool costs, and source-reading estimates.
Does your repository already have rules?
An introduction to Enola’s constraint miner: find dependency patterns, review exceptions with your team, and turn agreed boundaries into checks.
What makes a coding agent correct its own mistakes?
Validator feedback changes whether a coding agent can repair rejected work. Location, observed state, and valid alternatives make the next attempt better.
What package metrics said about enola's own code
We ran enola's package metrics on its own 117 typed packages. Nine were flagged; one warranted structural work, and the useful changes produced byte-identical facts across 91 repositories.
Dead code is a context tax
A graph can tell you nothing references a symbol. Whether to delete it is a separate decision, and it needs context the graph does not hold. How we cleared forty symbols out of Enola with zero regressions.
The harness decides what the model sees
A coding model never sees the whole repository or session. The harness selects its context, tools, persistent state, and feedback at every step.
How to use enola Dashboard
Open an architecture snapshot, investigate findings and dependencies, compare a change with a baseline, and verify snapshot freshness and coverage.
Instructions are not controls
Repository instructions guide coding agents before a change. Deterministic checks establish whether the result complied—and gates decide what happens next.
Policy as code: what a code graph can check
A worked example of PCI DSS and GDPR-inspired constraints that check code reachability and policy coverage across a Go module.
How we test Enola against 91 repositories
Eight benchmark scripts cover reproducibility, regression precision, memory, architecture labels, command contracts, agent behaviour, and changes between sweeps.
Technical Debt Is the Additional Cost of Future Work
A structural condition, like a service reading another team's database directly, isn't technical debt by default. It becomes debt only against a counterfactual: what a reasonable alternative would save on the work ahead. What that means for pull requests, baselines, and CI policy.
Enola’s architecture audit of OpenAI Codex
Enola found a wide slash-command dispatcher. Tracing the metric revealed 89 call targets, 97 constructed targets, and one declaration edge.
What Is an Agent Harness?
A model generates decisions; the harness around it makes those decisions operational: tools, context, execution, permissions, and feedback. Where the term ends, how it differs from a framework or a prompt, and where enola fits in the loop.
What a Code Graph Actually Costs in Memory
About 3 KB per fact while generating, about 0.7 KB per fact once served, and a 5.7x gap between the two. What Enola costs in RAM from a small service to the Linux kernel, why it is written in Go, and what supporting twenty languages does to the bill.
How to Use Enola Day to Day: Hooks, Baselines, and the Architecture Check
Turn the session hook off when you want speed and keep the gate in CI, read the --explain report, write a failure policy that fits your language, manage baselines, and read enola log — with real command output from Gitea, Tokio, Excalidraw and a demo service.
What a Dependency Graph Can and Cannot Tell You
A dependency graph records one relation from specific evidence, not a universal truth about your code. What nodes and edges actually mean, why cycles aren't always a defect, and what reverse traversal proves versus what it doesn't.
Enola Is an Architecture Fitness Sensor
Harness engineering splits the controls around a coding agent into guides and sensors, computational and inferential. Mapping Enola onto that grid, including the three quarters of it Enola deliberately does not fill.
How Did the Codebase Get Like This?
Enola can now record and explore how a codebase's architecture changed over time. enola log, show, diff, and blame turn architectural drift into evidence you can query, instead of a story you reconstruct by hand from old commits.
Cross-Repository Code Analysis: A Repository Is Not an Architecture
Relationships between repositories are rarely written down in one place. Why cross-repository dependency analysis is an evidence problem, not a search problem.
What Is an AI Token? The Complete Guide
Tokens are how every model reads and generates text. What they are, how byte pair encoding splits words into pieces, and why some languages cost several times more than English.
We Asked Enola to Audit HuggingFace's chat-ui
Coupling hotspots, two cyclic dependencies wrapped around the app's most complex function, and a handful of auth-related god classes.
Parsing Code Is Not The Same As Mapping Architecture
A syntax tree is not an architecture graph. A symbol index is not one either. They can be inputs into one, but they are not the thing itself — and that gap is where most of the real engineering work lives.
The Four Memory Layers Every Coding Agent Needs
Most coding agents have one memory layer: whatever is in the context window right now. The full picture is four layers — and most teams are missing at least two.
The Token Economics of a Coding Agent: Where the Context Gap Costs You
Input, output, cache writes, cache hits: where token costs actually land in an agentic coding loop, and what it's worth to close the context gap before the agent's first tool call.
The Most Boring File in Enola Explains Why Static Analysis Is Hard
The extractor cache's version history isn't glamorous, but its comments read like a changelog of every place a naive parser gets architecture wrong.
Claude Code Context Loop
Gather context, take action, verify. Of those three phases, "gather context" has no fixed procedure — it's done by searching and reading, building an approximation in every fresh session. That's the phase a deterministic graph changes.
We Asked Enola to Audit Apache Airflow's Architecture. Here's What a Staff Engineer Would Notice.
Coupling hotspots, cyclic dependencies, god classes, complexity outliers — and a 56,308-node blast radius hiding inside one module. We walked through the exact review a staff engineer would do.
Codebase Memory Is Not an Architecture Map
Most codebase-memory tools parse symbols and retrieve fragments. That is useful, but it is not the same as building an architectural model. The difference matters.
Onboard New Joiners Faster with Enola
The true cost of onboarding isn't the paperwork — it's the three weeks a new engineer spends building a mental model of the codebase, and the three weeks of everyone else's time it drains.
What Are Explore Agents?
The hidden cost of how AI coding tools understand your codebase. Every AI coding tool is an explore agent — and the exploration has a measurable cost in tokens, time, and money.