<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prajwol Ramtel</title>
    <description>The latest articles on DEV Community by Prajwol Ramtel (@prajwol_ramtel_d80613e5f3).</description>
    <link>https://dev.to/prajwol_ramtel_d80613e5f3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4187942%2F5687145e-c514-4b7c-965c-1f6b894a5607.jpg</url>
      <title>DEV Community: Prajwol Ramtel</title>
      <link>https://dev.to/prajwol_ramtel_d80613e5f3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prajwol_ramtel_d80613e5f3"/>
    <language>en</language>
    <item>
      <title>Revenant: I Built an Open-Source AI Tool to Bring Dead Code Back to Life 👻</title>
      <dc:creator>Prajwol Ramtel</dc:creator>
      <pubDate>Fri, 30 Oct 2026 15:35:01 +0000</pubDate>
      <link>https://dev.to/prajwol_ramtel_d80613e5f3/revenant-i-built-an-open-source-ai-tool-to-bring-dead-code-back-to-life-3dd9</link>
      <guid>https://dev.to/prajwol_ramtel_d80613e5f3/revenant-i-built-an-open-source-ai-tool-to-bring-dead-code-back-to-life-3dd9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Not every dead project deserves to stay dead.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Somewhere on GitHub, there is probably a project that someone spent months building, only for it to be abandoned. Its dependencies are outdated, its documentation is incomplete, and the developer who originally wrote it has moved on.&lt;/p&gt;

&lt;p&gt;The code is still there. The ideas are still there. But the software no longer works.&lt;/p&gt;

&lt;p&gt;That thought inspired me to build &lt;strong&gt;Revenant&lt;/strong&gt;, an AI-powered investigation tool designed to help developers understand abandoned codebases, diagnose what went wrong, and attempt to bring them back to life.&lt;/p&gt;

&lt;p&gt;The idea came from a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if we could treat a broken software project like a crime scene, and use AI to investigate what killed it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this week's &lt;em&gt;Ghost in the Machine&lt;/em&gt; theme, I wanted to build something that went beyond a spooky interface. Instead of creating another Halloween chatbot or ghost story generator, I wanted to address a real problem that developers encounter.&lt;/p&gt;

&lt;p&gt;Revenant turns debugging old software into a digital forensic investigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Revenant Works
&lt;/h3&gt;

&lt;p&gt;The experience follows the story of a digital resurrection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Open a Case 🔍&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start by importing an old or broken JavaScript/Node.js project. Revenant examines its structure, dependencies, and important files to understand what the software was originally supposed to do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Digital Autopsy 💀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of immediately suggesting random fixes, Revenant investigates the evidence.&lt;/p&gt;

&lt;p&gt;It examines available documentation, dependency configurations, and error logs to identify potential causes of failure.&lt;/p&gt;

&lt;p&gt;The important distinction is between something the evidence confirms and something the AI merely suspects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The Repair Lab 🧪&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once a likely problem is identified, Revenant proposes a targeted repair.&lt;/p&gt;

&lt;p&gt;Rather than rewriting an entire codebase, the goal is to make one focused change that addresses the identified failure.&lt;/p&gt;

&lt;p&gt;The developer can inspect the proposed modification before deciding whether to accept it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The Resurrection Chamber ⚡&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where the most important question gets answered.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Did the fix actually work?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The intended verification process compares the project's behavior before and after an approved repair, using controlled checks rather than relying on the AI's confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The Final Verdict&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every investigation ends with an evidence-based conclusion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resurrected:&lt;/strong&gt; The previously failing check now passes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partially Repaired:&lt;/strong&gt; Some issues were resolved, but others remain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failed:&lt;/strong&gt; The attempted repair did not resolve the verified problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unverified:&lt;/strong&gt; There is insufficient evidence to confirm success.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because an AI saying &lt;em&gt;"I fixed it"&lt;/em&gt; is not the same as a project actually working.&lt;/p&gt;

&lt;p&gt;And that distinction is what makes Revenant more than a Halloween experiment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/Az6MAQqEZL4" rel="noopener noreferrer"&gt;https://youtu.be/Az6MAQqEZL4&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best way to understand Revenant is to follow an investigation from beginning to end.&lt;/p&gt;

&lt;p&gt;A successful demonstration is not simply a screen that says &lt;em&gt;Resurrected&lt;/em&gt;. It is a failing check, a reviewable change, and a passing check afterward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/ramtelPJ/Revenant" rel="noopener noreferrer"&gt;https://github.com/ramtelPJ/Revenant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Revenant is built around a focused development problem: investigating and repairing small, previously working JavaScript/Node.js projects.&lt;/p&gt;

&lt;p&gt;The repository includes the application source code, with the investigation and repair experience organized around an evidence-first workflow.&lt;/p&gt;

&lt;p&gt;[ADD VERIFIED REPOSITORY DETAILS: installation commands, supported environments, example projects, and dependencies.]&lt;/p&gt;

&lt;p&gt;If you want to explore the project yourself, the best place to begin is with one of the included sample cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I approached Revenant with one main constraint:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI should act like an investigator, not an all-powerful mechanic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A traditional AI coding assistant can often generate a plausible solution when given an error message. But plausibility is not proof.&lt;/p&gt;

&lt;p&gt;For Revenant, I wanted an investigation process in which the source code, error logs, human approval, and verification results each had a separate role.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Local AI as the Investigator
&lt;/h3&gt;

&lt;p&gt;Revenant is designed around locally operated, open-weight AI rather than requiring a proprietary cloud model for its core reasoning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI model:&lt;/strong&gt; qwen2.5-coder:3b&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local inference runtime:&lt;/strong&gt; Ollama&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application stack:&lt;/strong&gt; Next.js, React, TypeScript, Tailwind CSS, SQLite and Drizzle, Zod and Vitest, Node.js 26, Docker. &lt;/p&gt;

&lt;p&gt;The local model's job is to interpret repository context, explain unfamiliar code, connect failures to supporting evidence, and propose a possible repair.&lt;/p&gt;

&lt;p&gt;This is where open-source AI becomes central to the project.&lt;/p&gt;

&lt;p&gt;Without code understanding and reasoning, Revenant would be little more than a dependency scanner with a Halloween theme.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Giving the AI Evidence Instead of Just a Prompt
&lt;/h3&gt;

&lt;p&gt;One of my main design decisions was to make the investigation source-aware.&lt;/p&gt;

&lt;p&gt;A useful diagnosis should answer more than &lt;em&gt;"What might be wrong?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It should also explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which file suggests the problem?&lt;/li&gt;
&lt;li&gt;What dependency or configuration is involved?&lt;/li&gt;
&lt;li&gt;What does the available error output tell us?&lt;/li&gt;
&lt;li&gt;Is the diagnosis confirmed, or is it still a hypothesis?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters when working with abandoned projects because their original maintainers may not be available to explain unusual implementation decisions.&lt;/p&gt;

&lt;p&gt;The aim is to help a developer understand the problem rather than blindly accept a generated patch.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Keeping the Developer in Control
&lt;/h3&gt;

&lt;p&gt;Another important design principle was that the AI should not silently modify the original code.&lt;/p&gt;

&lt;p&gt;The repair workflow is designed to keep the proposed change reviewable, request explicit approval, and preserve the original project separately.&lt;/p&gt;

&lt;p&gt;This is especially important when dealing with unfamiliar repositories.&lt;/p&gt;

&lt;p&gt;An AI can generate a fix that looks reasonable while introducing another problem. Human review remains part of the process.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Verification Is Different From Generation
&lt;/h3&gt;

&lt;p&gt;This is the technical idea I care about most.&lt;/p&gt;

&lt;p&gt;Imagine an older project fails because one of its dependencies is incompatible with the current runtime.&lt;/p&gt;

&lt;p&gt;An AI may correctly identify the issue and propose changing a dependency version.&lt;/p&gt;

&lt;p&gt;But that proposal alone does not establish that the project works.&lt;/p&gt;

&lt;p&gt;Revenant's verification design separates these two questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does the AI think will fix the project?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What can we demonstrate actually changed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The intended workflow compares approved before-and-after checks inside an isolated, resource-limited environment.&lt;/p&gt;

&lt;p&gt;If verification fails or cannot be performed, the application should report that limitation instead of inventing a successful resurrection.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Building for a Small, Honest MVP
&lt;/h3&gt;

&lt;p&gt;One lesson from this project was the importance of limiting scope.&lt;/p&gt;

&lt;p&gt;Instead of attempting to repair every programming language or modernize entire repositories, I focused the design on small JavaScript/Node.js projects and narrow, inspectable fixes.&lt;/p&gt;

&lt;p&gt;That constraint makes the problem more approachable and the results easier to evaluate.&lt;/p&gt;

&lt;p&gt;Revenant is not intended to replace experienced maintainers, perform unrestricted execution of unfamiliar code, or guarantee that an old application is production-ready.&lt;/p&gt;

&lt;p&gt;It is intended to give developers a more useful starting point for bringing forgotten software back into working condition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;This was not a project where I wanted to call a hosted AI API and label the result open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The open model is part of the reason Revenant exists.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are three reasons that matter to me.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Code Should Not Have to Leave Your Machine
&lt;/h3&gt;

&lt;p&gt;Source code can contain sensitive information, proprietary logic, internal configuration, and implementation details that developers do not want to send to third-party AI services.&lt;/p&gt;

&lt;p&gt;With locally hosted inference, the investigation can take place on the user's own computer.&lt;/p&gt;

&lt;p&gt;That changes the relationship between the developer and the AI.&lt;/p&gt;

&lt;p&gt;The developer is no longer required to send every codebase to a remote model simply to understand why something stopped working.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. An Abandoned Project Shouldn't Depend on Another Service Surviving
&lt;/h3&gt;

&lt;p&gt;There is something ironic about using a permanently hosted, proprietary service to revive software that was abandoned because its ecosystem changed.&lt;/p&gt;

&lt;p&gt;What happens if that AI service becomes unavailable, changes its pricing, or removes the model you depend on?&lt;/p&gt;

&lt;p&gt;Local open-weight AI offers a different approach.&lt;/p&gt;

&lt;p&gt;Once the necessary application dependencies and model weights are installed, the core investigation can be designed to work without internet access.&lt;/p&gt;

&lt;p&gt;Remote repository downloads may still require a connection, but already available projects can be investigated locally.&lt;/p&gt;

&lt;p&gt;For a tool dedicated to preserving and reviving old software, that independence matters.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Developers Should Be Able to Inspect and Improve the Investigator
&lt;/h3&gt;

&lt;p&gt;With open models and tools, developers have more freedom to change the inference runtime, experiment with alternative models, adjust prompts, and evaluate how the system reaches its recommendations.&lt;/p&gt;

&lt;p&gt;That flexibility is valuable because different projects have different requirements.&lt;/p&gt;

&lt;p&gt;A small project might be manageable with a compact local model, while more complex repositories could benefit from stronger reasoning capabilities.&lt;/p&gt;

&lt;p&gt;A closed API may provide stronger results in some situations, particularly on large or complicated codebases. But it also introduces an external dependency.&lt;/p&gt;

&lt;p&gt;For Revenant, &lt;strong&gt;local control, inspectability, and the possibility of offline operation are fundamental design choices, not just deployment preferences.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Halloween is usually about ghosts, haunted places, and things returning from the dead.&lt;/p&gt;

&lt;p&gt;But working on Revenant made me think about a different kind of ghost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abandoned software is full of unfinished stories.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Behind every forgotten repository is someone who once had an idea.&lt;/p&gt;

&lt;p&gt;Maybe it was a student's first serious project. Maybe it was a useful tool that never found enough contributors. Maybe it was an experiment that worked beautifully until its dependencies became obsolete.&lt;/p&gt;

&lt;p&gt;Eventually, the updates stopped.&lt;/p&gt;

&lt;p&gt;The issues went unanswered.&lt;/p&gt;

&lt;p&gt;The application stopped running.&lt;/p&gt;

&lt;p&gt;But the code remained.&lt;/p&gt;

&lt;p&gt;I like the idea that an old repository does not necessarily have to be the end of that story.&lt;/p&gt;

&lt;p&gt;With the right tools, someone can return to it, understand what its original developer was trying to accomplish, and perhaps give it another chance.&lt;/p&gt;

&lt;p&gt;That is what inspired Revenant.&lt;/p&gt;

&lt;p&gt;I did not want to build an AI that pretends to perform magic.&lt;/p&gt;

&lt;p&gt;I wanted to explore whether AI could help us understand the software we have left behind, while being honest about what it can and cannot repair.&lt;/p&gt;

&lt;p&gt;And if the outcome is only a better explanation of why a project failed, that still has value.&lt;/p&gt;

&lt;p&gt;Because sometimes the first step toward bringing something back to life is understanding why it died.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some projects deserve a second commit. 👻&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for Hacktoberfest 2026, Week 4: Ghost in the Machine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
