{"slug": "i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code", "title": "I'm 16, and I Built an AI Tool That Audits Your Technical Debt Without Ever Touching code", "summary": "A 16-year-old developer created an open-source AI tool called Tech Debt Agent that scans code repositories to identify and quantify technical debt, then refactors problematic files in a separate sandbox folder without altering the original code. The tool generates a dark-mode HTML dashboard with debt scores and estimated cleanup hours, and it can run fully offline using local AI models like Ollama to ensure no code leaves the user's machine. The project was built in response to the developer's own fear of sharing code with senior developers and a desire to make technical debt visible and actionable without risking existing projects.", "body_md": "## How a student developer built a provider-agnostic, sandbox-safe CLI tool that scans repos for technical debt, AI-refactors messy files, and visualizes it all in a local dark-mode dashboard.\n\nI want to tell you about the moment I realized I was scared to show senior developers my code.\n\nI'd built something I was genuinely proud of. A real tool. A CLI that scans your repository, calculates how much technical debt is buried in it, uses AI to refactor the worst files, and then generates a dark-mode HTML dashboard right on your machine — no server, no account, no data leaving your computer.\n\nBut before I posted it anywhere, I sat there thinking: *\"What if they look at my code and just laugh?\"*\n\nI'm 16. This is my first production-grade project. And I shipped it anyway.\n\nThis is the story of what I built, why I built it, and an honest invitation for you to break it.\n\n## The Problem I Was Trying to Solve\n\nEvery developer I've watched on YouTube, every open-source codebase I've dug through — they all have the same thing hiding in them. Files nobody wants to touch. Functions that grew from 10 lines to 300 lines because nobody had time to clean them up. Variables named `x2`\n\n, `tempFinal`\n\n, `useThisOne`\n\n.\n\nTechnical debt is real, it's everywhere, and nobody has a great way to *see* it clearly before it becomes a crisis.\n\nMost existing tools either:\n\n- Just lint your code (tells you what's wrong, doesn't fix it)\n- Send your code to the cloud (a privacy nightmare for companies)\n- Require complex setup and configuration before you get any value\n\nI wanted to build something that felt like a brilliant, paranoid senior engineer who audits your codebase, fixes the worst parts in a safe sandbox, and then hands you a clean visual report — all in one command.\n\n## What Tech Debt Agent Actually Does\n\n### 🔍 The Auditor — Brutal, Honest, Quantified\n\nWhen you point it at a directory, it doesn't just flag style issues. It looks for:\n\n- Security traps (hardcoded secrets, unsafe eval usage, SQL injection patterns)\n- Logic debt (deeply nested conditions, duplicated logic blocks)\n- Maintenance debt (dead code, overly complex functions, missing error handling)\n\nAnd then it calculates something I call **Debt Hours** — an estimated number of hours a developer would need to spend cleaning up each file. This turns an abstract feeling (\"this codebase feels messy\") into a concrete, prioritized number.\n\n### 🤖 The Sandbox Fixer — AI Refactoring With Zero Risk\n\nThis is the part I'm most proud of, and the design decision I think matters most:\n\n**The agent never touches your original code. Ever.**\n\nInstead, it dynamically creates a `fixed_code_output/`\n\nfolder. Every file it refactors goes in there — clean, restructured, with comments explaining what it changed and why. Your original repo stays exactly as it was.\n\nYou can diff the files, cherry-pick the improvements you like, or throw the whole output away. No risk. No surprises.\n\n### 📊 The Visual Dashboard — Because Numbers Need Context\n\nAfter the audit, it generates a single-file dark-mode HTML dashboard and automatically opens it in your browser.\n\nNo framework. No server. No internet connection required. Just one `.html`\n\nfile you can share with your team, archive, or just close when you're done.\n\nIt shows debt scores per file, a breakdown by debt type, the worst offenders, and overall codebase health — all in one place.\n\n### 🔒 100% Offline Support — Your Code Stays Yours\n\nThis is the feature that I think matters most for professional developers and companies.\n\nTech Debt Agent is **provider-agnostic**. You can run it with:\n\n-\n**OpenAI / Anthropic APIs**— for convenience -\n**Ollama**— for fully local, offline inference -\n**LM Studio**— for a GUI-based local model setup\n\nWhen you run it with Ollama, zero bytes of your code touch the internet. For teams working on proprietary codebases, this isn't a nice-to-have. It's a requirement.\n\n## How to Try It Right Now\n\n```\n# Clone the repo\ngit clone https://github.com/prithvi-1106/tech-debt-agent\ncd tech-debt-agent\n\n# Install globally\npip install -e .\n\n# Run an audit on any directory\ntechdebt audit ./your-messy-project\n\n# Or run fully offline with Ollama\ntechdebt audit ./your-messy-project --provider ollama --model codellama\n```\n\nThat's it. No config file to set up first. No account to create. It just runs.\n\n## What I Learned Building This\n\n**1. The sandbox idea was the hardest design decision.**\n\nMy first version modified files in place. I showed it to one developer online and the first thing they said was: *\"I would never run this on a real project.\"* That feedback completely changed the architecture. The `fixed_code_output/`\n\nquarantine folder was born from that one comment.\n\n**2. Provider-agnostic design is harder than it sounds.**\n\nAbstracting over different LLM providers — cloud APIs, Ollama's local API, LM Studio — meant building a clean provider interface early. It forced me to write better, more modular Python than I ever had before.\n\n**3. The dashboard made everything feel real.**\n\nBefore the HTML dashboard, this was just a CLI tool that printed colored text. The moment I added the visual output — dark mode, debt scores, color-coded files — it stopped feeling like a script and started feeling like a *product*. Presentation is part of the tool.\n\n## What I'm Asking From You\n\nI'm not asking you to star the repo (though I won't say no).\n\nI'm asking you to **run it on your messiest directory** and tell me one of these things:\n\n- Something that broke\n- Something that's missing\n- Something that could be smarter\n- Something you actually liked\n\nOpen a GitHub issue, leave a comment below, or reach out directly. Every single piece of feedback will go into the next version.\n\nI'm 16. I'm learning in public. And I built something I genuinely believe is useful.\n\nProve me right. Or prove me wrong. Either way, I want to know.\n\n**GitHub:** [[https://github.com/prithvi-1106/tech-debt-agent](https://github.com/prithvi-1106/tech-debt-agent)]\n\n*If you work on a team with a codebase that has genuine debt problems, I'd especially love to hear from you. I want to understand whether the Debt Hours metric actually resonates with how real teams think about this problem.", "url": "https://wpnews.pro/news/i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code", "canonical_source": "https://dev.to/prithvi_cs_d4551846dc2be5/im-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-touching-code-3bbn", "published_at": "2026-05-22 15:57:16+00:00", "updated_at": "2026-05-22 16:03:35.887713+00:00", "lang": "en", "topics": ["developer-tools", "artificial-intelligence", "open-source", "startups"], "entities": [], "alternates": {"html": "https://wpnews.pro/news/i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code", "markdown": "https://wpnews.pro/news/i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code.md", "text": "https://wpnews.pro/news/i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code.txt", "jsonld": "https://wpnews.pro/news/i-m-16-and-i-built-an-ai-tool-that-audits-your-technical-debt-without-ever-code.jsonld"}}