Why I ripped the “AI Summarizer” out of my coding tool (and replaced it with Rust)
By Holidays in Europe / December 22, 2025 / No Comments / Uncategorized
Reevaluating AI-Assisted Coding: Transitioning from Summarization to Deterministic Dependency Mapping
In the ever-evolving landscape of software development, leveraging AI tools like ChatGPT has become a common strategy to streamline workflows and manage complex projects. However, recent experience highlights the importance of critically assessing the approaches we adopt, especially when it comes to maintaining accurate and reliable project memory.
The Initial Approach: Relying on AI Summaries
While developing a local productivity tool called CMP, designed to help ChatGPT and Claude retain knowledge of extensive coding projects, I employed a straightforward tactic: every hour, I asked the AI to generate a summary of the current project state. The idea was to create a quick reference that would keep the AI “in the loop” without overwhelming it.
At first glance, this method seemed practical. Summarizations are easy, quick, and seemingly sufficient to track project evolution. However, over time, I observed significant shortcomings.
The Limitations of Non-Deterministic Summaries
AI-generated summaries are inherently non-deterministic—they can be inconsistent, vague, or hallucinate details. For instance, depending on various factors, the AI might:
- Mention certain modules like the authentication system inconsistently.
- Forget key dependencies altogether.
- Introduce fictitious dependencies that do not exist in the codebase.
This “blurry” information corrupts subsequent AI interactions. When these unreliable summaries feed back into the chat, the AI’s understanding deteriorates—a phenomenon akin to a game of “Telephone” with your codebase, where messages distort over iterations.
Embracing a Deterministic Solution
After receiving candid feedback from a senior developer and the creator of the Mu engine, I undertook a substantial refactoring of CMP’s logic. The core shift was moving away from AI-based guesses towards a deterministic dependency mapping system built in Rust.
Instead of relying on the AI to interpret what the code does, I integrated a Rust engine that:
- Parses the project’s dependency tree.
- Accurately maps module imports and calls.
- Provides precise structural information without hallucinations.
The Impact: From Probabilistic to Precise
This transition yielded significant improvements in accuracy and efficiency.
| Aspect | Old Method (AI Summaries) | New Method (Rust Dependency Map) |
|———|—————————–|———————————-|
| Example Output | “I think this file uses React and maybe some auth stuff.” | *“This file