<?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: Yasindu Udayaga</title>
    <description>The latest articles on DEV Community by Yasindu Udayaga (@yasindu_udayaga_2a54f8a5b).</description>
    <link>https://dev.to/yasindu_udayaga_2a54f8a5b</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%2F3616478%2Fd0df03f6-63d7-4d08-b464-a36a02019a49.png</url>
      <title>DEV Community: Yasindu Udayaga</title>
      <link>https://dev.to/yasindu_udayaga_2a54f8a5b</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yasindu_udayaga_2a54f8a5b"/>
    <language>en</language>
    <item>
      <title>PhantomCommit AI: Investigating the Ghosts Hidden in Git History</title>
      <dc:creator>Yasindu Udayaga</dc:creator>
      <pubDate>Fri, 30 Oct 2026 13:02:24 +0000</pubDate>
      <link>https://dev.to/yasindu_udayaga_2a54f8a5b/phantomcommit-ai-investigating-the-ghosts-hidden-in-git-history-3j8h</link>
      <guid>https://dev.to/yasindu_udayaga_2a54f8a5b/phantomcommit-ai-investigating-the-ghosts-hidden-in-git-history-3j8h</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Code never truly dies. It just waits to be understood.&lt;/strong&gt; 👻&lt;/p&gt;

&lt;p&gt;Every software project has a history. Features are introduced, functions are rewritten, files are deleted, and sometimes an important piece of logic disappears without anyone noticing.&lt;/p&gt;

&lt;p&gt;But what if the code we deleted still had something to tell us?&lt;/p&gt;

&lt;p&gt;That question inspired me to build &lt;strong&gt;PhantomCommit AI&lt;/strong&gt;, an open-source, Gemma-powered Git history investigation platform that helps developers explore deleted code, understand historical changes, investigate potential regressions, and discover forgotten functionality.&lt;/p&gt;

&lt;p&gt;I built this project individually for the &lt;strong&gt;Hacktoberfest 2026 Open-Source AI Challenge - Week 4: Ghost in the Machine&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Interpretation of the Theme
&lt;/h3&gt;

&lt;p&gt;For me, the "ghost" is the code that no longer exists in the latest version of a repository but still lives in its Git history.&lt;/p&gt;

&lt;p&gt;Imagine a developer discovering that an important feature no longer works. The current code might not explain why. The answer could be hidden in a commit from weeks or months ago, where a validation check was removed, a function was replaced, or a file was renamed.&lt;/p&gt;

&lt;p&gt;PhantomCommit AI helps investigate those clues.&lt;/p&gt;

&lt;p&gt;Instead of treating Git history as a collection of old commits, I wanted to turn it into an interactive investigation workspace where developers could explore the past and use open-weight AI to interpret the evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Makes PhantomCommit AI Different?
&lt;/h3&gt;

&lt;p&gt;I designed PhantomCommit AI around a simple principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git provides the evidence. AI helps us understand it. Developers make the final decision.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The platform brings together several investigation tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Code Graveyard - Explore Deleted Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Code Graveyard identifies removed files and lines from inspected Git history. Developers can examine where code previously existed, when it changed, and which commit contains the relevant evidence.&lt;/p&gt;

&lt;p&gt;Importantly, a removed line does not automatically mean functionality has permanently disappeared. The platform treats it as a clue rather than a conclusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Ghost Replay - Travel Through Git History&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ghost Replay makes it easier to explore historical changes through commit relationships and read-only code comparisons.&lt;/p&gt;

&lt;p&gt;I used React Flow for visualizing commit relationships and Monaco Editor for comparing historical code snapshots.&lt;/p&gt;

&lt;p&gt;This helps developers understand how a file changed instead of reading disconnected commit messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Smart Code Recovery - Investigate Possible Restoration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes removed code is still useful.&lt;/p&gt;

&lt;p&gt;Smart Code Recovery searches historical changes, compares older and current implementations, and can generate a validated restoration patch for review when enough evidence is available.&lt;/p&gt;

&lt;p&gt;The system does not automatically apply or merge that patch. Developers must inspect the proposal, check compatibility, and decide whether to use it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Code Impact Graph - Understand Dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A deleted or modified function may affect other components.&lt;/p&gt;

&lt;p&gt;The Code Impact Graph uses TypeScript-based static analysis to examine supported JavaScript and TypeScript dependencies within a selected scope.&lt;/p&gt;

&lt;p&gt;It can visualize relationships and help identify potential dependent code. This is intentionally a bounded static analysis, not a claim to have discovered every runtime dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Security Regression Review - Find Suspicious Changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PhantomCommit AI also looks for security-related changes that deserve investigation, including possible removal of authentication, authorization, validation, and other protective checks.&lt;/p&gt;

&lt;p&gt;The results are presented as review leads with source evidence, not confirmed vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Feature Evolution Timeline - Understand the Past&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Feature Evolution Timeline organizes historical file changes into a visual sequence.&lt;/p&gt;

&lt;p&gt;It helps developers inspect how a feature-related area of code has changed, including additions, modifications, deletions, and recorded renames.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. AI Studio and AI Detective - Investigate With Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built an AI Studio containing 18 focused investigation tools, along with a conversational AI Detective experience.&lt;/p&gt;

&lt;p&gt;Developers can ask questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why was this function removed?&lt;/li&gt;
&lt;li&gt;What might have changed when this validation was deleted?&lt;/li&gt;
&lt;li&gt;Which inspected commits are relevant to this regression?&lt;/li&gt;
&lt;li&gt;What should I test before restoring this code?&lt;/li&gt;
&lt;li&gt;What evidence supports or challenges this explanation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI is instructed to separate observed facts, hypotheses, and missing evidence. Its structured references are checked against retrieved Git information.&lt;/p&gt;

&lt;p&gt;The goal is not to make AI sound certain. The goal is to make its conclusions easier to investigate.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live application:&lt;/strong&gt; &lt;a href="https://phantomcommitai.onrender.com" rel="noopener noreferrer"&gt;https://phantomcommitai.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PhantomCommit AI is deployed on Render, with a responsive interface designed for desktop and mobile screens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fml3mml6sk2h4ixiiax2z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fml3mml6sk2h4ixiiax2z.png" alt="PhantomCommit AI landing page" width="800" height="931"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Explore the Application
&lt;/h3&gt;

&lt;p&gt;The intended investigation workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open PhantomCommit AI and sign in.&lt;/li&gt;
&lt;li&gt;Connect GitHub through the application's authorization flow.&lt;/li&gt;
&lt;li&gt;Import a public GitHub repository.&lt;/li&gt;
&lt;li&gt;Select a branch and inspect its real commit history.&lt;/li&gt;
&lt;li&gt;Open Code Graveyard to investigate removed code.&lt;/li&gt;
&lt;li&gt;Use Ghost Replay to compare historical snapshots.&lt;/li&gt;
&lt;li&gt;Open AI Studio or AI Detective and select Gemma.&lt;/li&gt;
&lt;li&gt;Choose an investigation, review the data-sharing consent, and submit a question.&lt;/li&gt;
&lt;li&gt;Inspect the AI response alongside its source references.&lt;/li&gt;
&lt;li&gt;Save the investigation, continue the conversation, or export a Markdown report.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The application does not populate its runtime with fictional repository histories or simulated AI responses. Investigations depend on real GitHub evidence and configured services.&lt;/p&gt;

&lt;p&gt;The latest application revision has successfully deployed on Render. Automated checks have passed, although a complete hosted, authenticated GitHub-to-Gemma investigation has not yet been independently verified. I am keeping that distinction clear rather than presenting a simulated AI result as a real demonstration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Studio interface:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzerqaklc3mawvkiyq2yt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzerqaklc3mawvkiyq2yt.png" alt="PhantomCommit AI Studio" width="800" height="1333"&gt;&lt;/a&gt;&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/Y-Udayanga/PhantomCommitAI" rel="noopener noreferrer"&gt;https://github.com/Y-Udayanga/PhantomCommitAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code is publicly available under the MIT License.&lt;/p&gt;

&lt;p&gt;Some important implementation files include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/server/gemma.ts" rel="noopener noreferrer"&gt;Gemma integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/server/ultramarine.ts" rel="noopener noreferrer"&gt;Ultramarine integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/analysis.ts" rel="noopener noreferrer"&gt;Git history analysis engine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/analysis.ts" rel="noopener noreferrer"&gt;Evidence and reference validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/server/forensic-service.ts" rel="noopener noreferrer"&gt;Forensic investigation service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/src/lib/ai-tasks.ts" rel="noopener noreferrer"&gt;AI Studio tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/blob/main/.github/workflows/ci.yml" rel="noopener noreferrer"&gt;GitHub Actions verification&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted developers to be able to inspect how the system works rather than treating its investigation results as a black box.&lt;/p&gt;

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

&lt;p&gt;PhantomCommit AI combines a modern full-stack web application, real GitHub data, deterministic source analysis, and open-weight AI reasoning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Next.js, React, TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI model&lt;/td&gt;
&lt;td&gt;Google Gemma 4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI SDK&lt;/td&gt;
&lt;td&gt;Google GenAI SDK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional AI provider&lt;/td&gt;
&lt;td&gt;Paper Instruments Ultramarine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source history&lt;/td&gt;
&lt;td&gt;GitHub REST API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication&lt;/td&gt;
&lt;td&gt;Supabase Auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;Supabase PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visual graphs&lt;/td&gt;
&lt;td&gt;React Flow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code comparison&lt;/td&gt;
&lt;td&gt;Monaco Editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charts&lt;/td&gt;
&lt;td&gt;Recharts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validation&lt;/td&gt;
&lt;td&gt;Zod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;Render&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testing&lt;/td&gt;
&lt;td&gt;Vitest, Playwright, GitHub Actions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  1. Making Gemma the Center of the Investigation
&lt;/h3&gt;

&lt;p&gt;The main AI integration uses Google's open-weight Gemma models through the official &lt;code&gt;@google/genai&lt;/code&gt; SDK.&lt;/p&gt;

&lt;p&gt;The implementation prefers &lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;, with &lt;code&gt;gemma-4-31b-it&lt;/code&gt; also supported.&lt;/p&gt;

&lt;p&gt;The server can attempt additional Google model fallbacks when configured models are unavailable. The actual model used is recorded with the analysis, so a fallback is not silently represented as a Gemma response.&lt;/p&gt;

&lt;p&gt;I chose Gemma because I wanted an open-weight model at the center of the project rather than building the entire investigation around an opaque, proprietary-only model.&lt;/p&gt;

&lt;p&gt;Gemma's job is to interpret selected historical evidence, explain possible consequences, and suggest what developers should investigate next.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Building an Evidence-First Investigation Pipeline
&lt;/h3&gt;

&lt;p&gt;One of my most important design decisions was to analyze Git data before asking AI to interpret it.&lt;/p&gt;

&lt;p&gt;The application retrieves public repository information from GitHub, including commit identifiers, file changes, patches, parent relationships, and historical snapshots.&lt;/p&gt;

&lt;p&gt;A deterministic analysis layer identifies deleted lines, change types, renames, and relevant review leads.&lt;/p&gt;

&lt;p&gt;The application then selects a limited amount of relevant evidence for the AI request.&lt;/p&gt;

&lt;p&gt;The basic flow is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository → Commit evidence → Deterministic analysis → Relevant context → Gemma → Structured findings → Evidence validation → Developer review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This approach keeps the AI focused on inspected code rather than asking it to invent an explanation from a repository name or a vague problem description.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Checking AI-Generated References
&lt;/h3&gt;

&lt;p&gt;A major challenge was deciding how to handle convincing AI explanations that might not be supported by the code.&lt;/p&gt;

&lt;p&gt;To reduce unsupported references, I implemented structured JSON response validation with Zod.&lt;/p&gt;

&lt;p&gt;The application checks generated references against the retrieved commit SHA and file path. When a specific line and quote are provided, they must correspond to the changed-line evidence.&lt;/p&gt;

&lt;p&gt;Unsupported references are marked as insufficient evidence.&lt;/p&gt;

&lt;p&gt;This is not a mathematical proof that every sentence in an AI explanation is correct. It is a practical provenance check that makes it easier to identify what the available Git history actually supports.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Supporting Ultramarine as Another AI Provider
&lt;/h3&gt;

&lt;p&gt;I also integrated &lt;strong&gt;Ultramarine by Paper Instruments&lt;/strong&gt; as an additional AI provider.&lt;/p&gt;

&lt;p&gt;The application offers an explicit provider selection, allowing its investigation tools and AI Detective experience to use either the configured Gemma route or Ultramarine.&lt;/p&gt;

&lt;p&gt;Ultramarine uses a server-side Chat Completions integration, structured output validation, and the same evidence-verification approach.&lt;/p&gt;

&lt;p&gt;The provider is not switched automatically without the user's choice.&lt;/p&gt;

&lt;p&gt;This modular implementation also makes it easier to compare providers and explore alternative models in the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Managing Authentication, Persistence, and Privacy
&lt;/h3&gt;

&lt;p&gt;I used Supabase Authentication and PostgreSQL for user accounts and saved investigation data.&lt;/p&gt;

&lt;p&gt;The application is designed to store repository metadata, inspected commits, investigation runs, findings, conversations, and reports under the appropriate authenticated account.&lt;/p&gt;

&lt;p&gt;PostgreSQL row-level security policies protect ownership boundaries, and the project includes database tests for cross-user access restrictions.&lt;/p&gt;

&lt;p&gt;AI requests require explicit consent before selected repository evidence is sent to the chosen model provider.&lt;/p&gt;

&lt;p&gt;The application masks several common secret patterns, limits source excerpts, validates requests, and keeps provider credentials on the server.&lt;/p&gt;

&lt;p&gt;These are safeguards, not a promise that all sensitive information can be automatically detected.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Deploying on Render
&lt;/h3&gt;

&lt;p&gt;I deployed PhantomCommit AI as a Node.js web service on Render, connected to the GitHub repository's &lt;code&gt;main&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;Render hosts the Next.js application and server-side API. Supabase provides the database and authentication, while AI inference runs through the selected external provider.&lt;/p&gt;

&lt;p&gt;The service automatically deploys new commits from the repository.&lt;/p&gt;

&lt;p&gt;I chose this architecture to keep the web application, source analysis, database, and model integration separated into maintainable components.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Testing and Engineering Challenges
&lt;/h3&gt;

&lt;p&gt;Building the interface was only one part of the project.&lt;/p&gt;

&lt;p&gt;I also worked on several engineering problems:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling incomplete Git history:&lt;/strong&gt; GitHub may omit large patches or limit results. The system exposes incomplete evidence instead of silently assuming the whole history has been inspected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preventing unsupported conclusions:&lt;/strong&gt; A removed security-related line is treated as a possible regression, not proof of an exploitable vulnerability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controlling AI context:&lt;/strong&gt; I limited the number of commits, files, and excerpt characters sent to the model to keep requests focused and bounded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Protecting user data:&lt;/strong&gt; Authentication checks, ownership policies, request limits, and server-only API credentials are part of the design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avoiding unsafe automatic changes:&lt;/strong&gt; Recovery patches are generated for inspection and export. The application does not run untrusted repository code or push AI-generated changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing the implementation:&lt;/strong&gt; I used Vitest for unit and service tests, PostgreSQL policy tests for authorization behavior, Playwright for browser checks, and GitHub Actions for continuous verification.&lt;/p&gt;

&lt;p&gt;The latest GitHub Actions workflow completed successfully on the deployed revision.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI/actions/runs/41004379183" rel="noopener noreferrer"&gt;View the successful CI run&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Learned
&lt;/h3&gt;

&lt;p&gt;The biggest lesson from this project is that AI-powered developer tools should not confuse a plausible explanation with verified evidence.&lt;/p&gt;

&lt;p&gt;Git history contains useful information, but it does not always reveal why a developer made a decision.&lt;/p&gt;

&lt;p&gt;A deleted function might have been replaced. A suspicious change might be intentional. A likely regression may turn out to have a completely different cause.&lt;/p&gt;

&lt;p&gt;I wanted PhantomCommit AI to acknowledge those possibilities instead of hiding them behind a confident answer.&lt;/p&gt;

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

&lt;p&gt;Open innovation is important to PhantomCommit AI because the project is about recovering and understanding knowledge that might otherwise be forgotten.&lt;/p&gt;

&lt;p&gt;There is a strong connection between the problem I am solving and the technology I used to solve it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Weights Offer Flexibility
&lt;/h3&gt;

&lt;p&gt;By building around Gemma, I can explore different model configurations and potentially move inference to alternative compatible infrastructure.&lt;/p&gt;

&lt;p&gt;The current implementation uses Google's hosted API; it does not claim to run Gemma locally or work offline.&lt;/p&gt;

&lt;p&gt;But the availability of open weights creates possibilities for future self-hosting, customization, and evaluation that would be more restricted with a proprietary-only model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Source Makes the Results Inspectable
&lt;/h3&gt;

&lt;p&gt;A developer should be able to understand how a tool reaches its conclusions.&lt;/p&gt;

&lt;p&gt;By releasing PhantomCommit AI under the MIT License, I am making its Git analysis logic, AI prompt construction, evidence-validation rules, and testing approach available for inspection and improvement.&lt;/p&gt;

&lt;p&gt;Other developers can review the assumptions, identify weaknesses, suggest changes, or build additional investigation tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Architecture Reduces Dependence on One Provider
&lt;/h3&gt;

&lt;p&gt;I separated Git evidence retrieval from AI interpretation.&lt;/p&gt;

&lt;p&gt;The deterministic investigation features do not require the language model to generate the underlying Git facts.&lt;/p&gt;

&lt;p&gt;The addition of Ultramarine as a separate provider demonstrates that the AI layer can be extended without rebuilding the entire application.&lt;/p&gt;

&lt;p&gt;This is particularly valuable for an open-source tool where developers may have different infrastructure, budgets, privacy requirements, or model preferences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Innovation Helps Preserve Developer Knowledge
&lt;/h3&gt;

&lt;p&gt;Every repository contains technical decisions made by people who may no longer be working on that project.&lt;/p&gt;

&lt;p&gt;Their earlier implementations can help explain current behavior, reveal useful design ideas, or highlight changes worth reviewing.&lt;/p&gt;

&lt;p&gt;Open-source AI gives us another way to explore that knowledge while keeping the investigative method open for others to improve.&lt;/p&gt;

&lt;p&gt;To me, &lt;strong&gt;open innovation means that both the code and the tools used to understand it should remain accessible, inspectable, and adaptable.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;The most interesting part of this challenge was discovering how naturally the theme connected with a real developer problem.&lt;/p&gt;

&lt;p&gt;When I think about "Ghost in the Machine," I don't just imagine a mysterious AI or a haunted computer.&lt;/p&gt;

&lt;p&gt;I imagine an old function in a commit that nobody remembers writing.&lt;/p&gt;

&lt;p&gt;A validation check removed during a refactor.&lt;/p&gt;

&lt;p&gt;A feature that once existed but disappeared as the project evolved.&lt;/p&gt;

&lt;p&gt;A previous implementation waiting in Git history while the current code struggles with a regression.&lt;/p&gt;

&lt;p&gt;Those are the ghosts I wanted PhantomCommit AI to investigate.&lt;/p&gt;

&lt;p&gt;The goal is not to bring every piece of deleted code back to life. Some code was removed for a good reason.&lt;/p&gt;

&lt;p&gt;The goal is to understand what happened before making the next decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The past cannot always tell us what to do, but it can give us better evidence for what to investigate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that is the idea behind PhantomCommit AI.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Code never truly dies. It just waits to be understood.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am entering PhantomCommit AI in the following partner categories:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma is the primary open-weight AI model family used to explain historical code changes, investigate potential regressions, review evidence, and recommend further checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Render&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PhantomCommit AI is deployed as a Render web service, hosting the Next.js interface and its server-side investigation API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Ultramarine (Paper Instruments)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ultramarine is integrated as a selectable investigation provider, using the Paper Instruments API with structured responses and source-evidence validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;I built PhantomCommit AI independently for this challenge because I wanted to create something that was both creative and useful for software developers.&lt;/p&gt;

&lt;p&gt;The project combines open-weight AI, Git history analysis, interactive visualization, and practical engineering safeguards.&lt;/p&gt;

&lt;p&gt;There are still improvements I want to make, including more advanced semantic code tracking, stronger validation of AI explanations, and wider historical analysis.&lt;/p&gt;

&lt;p&gt;But the core idea will remain the same:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't let your codebase's history disappear into forgotten commits. Investigate it, understand it, and learn from it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks for exploring PhantomCommit AI!&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Y-Udayanga/PhantomCommitAI" rel="noopener noreferrer"&gt;https://github.com/Y-Udayanga/PhantomCommitAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://phantomcommitai.onrender.com" rel="noopener noreferrer"&gt;https://phantomcommitai.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would love to hear your feedback. What is one debugging problem where understanding deleted or historical code would have helped you?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built individually by Yasindu Udayanga for Hacktoberfest 2026 - Ghost in the Machine.&lt;/strong&gt;&lt;/p&gt;

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