<?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: Harishbabu R</title>
    <description>The latest articles on DEV Community by Harishbabu R (@harishrsk).</description>
    <link>https://dev.to/harishrsk</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%2F4009265%2F4fdbab40-0d3c-4ed6-9cd5-66782d2740fe.jpg</url>
      <title>DEV Community: Harishbabu R</title>
      <link>https://dev.to/harishrsk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harishrsk"/>
    <language>en</language>
    <item>
      <title>I built an autonomous AI agent to fix my PR comments (so I don't have to)</title>
      <dc:creator>Harishbabu R</dc:creator>
      <pubDate>Tue, 30 Jun 2026 11:05:33 +0000</pubDate>
      <link>https://dev.to/harishrsk/i-built-an-autonomous-ai-agent-to-fix-my-pr-comments-so-i-dont-have-to-436h</link>
      <guid>https://dev.to/harishrsk/i-built-an-autonomous-ai-agent-to-fix-my-pr-comments-so-i-dont-have-to-436h</guid>
      <description>&lt;p&gt;If you work in frontend development, you know the absolute worst part of the job isn't writing the initial feature. It's the code review feedback loop.&lt;/p&gt;

&lt;p&gt;You open a PR, and a few hours later, a senior dev leaves a handful of totally valid but tedious comments:&lt;/p&gt;

&lt;p&gt;"Can we extract this logic into a custom hook?"&lt;/p&gt;

&lt;p&gt;"You missed an aria-label here."&lt;/p&gt;

&lt;p&gt;"Let's use the design system  instead of a raw ."&lt;/p&gt;


&lt;p&gt;Now you have to context-switch, stash your current work, checkout the old branch, make the 5-minute edits, run the linter, push the commit, and wait for CI to pass. It completely nukes your engineering velocity.&lt;/p&gt;

&lt;p&gt;I got tired of this, so I built a localized AI agent that acts as a junior developer. When a reviewer leaves a comment on a PR ending with &lt;a class="mentioned-user" href="https://dev.to/agent"&gt;@agent&lt;/a&gt; fix, the agent wakes up, reads the comment, edits the code, runs the local linter to verify the syntax, and pushes the fix automatically.&lt;/p&gt;

&lt;p&gt;Here is how I built it for free using the Google Antigravity Python SDK and GitHub Actions.&lt;/p&gt;

&lt;p&gt;The Architecture: Zero-Cost and Serverless&lt;br&gt;
I didn't want to maintain a backend or pay cloud computing costs for this. Instead, I built it as a Bring-Your-Own-Key (BYOK) GitHub Action.&lt;/p&gt;

&lt;p&gt;The Trigger: A GitHub Action workflow listens for issue_comment events on Pull Requests.&lt;/p&gt;

&lt;p&gt;The Brain: A Python script utilizing the new Antigravity SDK initializes Gemini 3.5 Flash.&lt;/p&gt;

&lt;p&gt;The Execution: The SDK natively handles the file system and bash execution. It navigates to the file, rewrites the code, and tests it.&lt;/p&gt;

&lt;p&gt;The Push: Standard git commands commit the patch back to the PR.&lt;/p&gt;

&lt;p&gt;Because it runs entirely on GitHub's runners, the hosting cost is exactly $0.&lt;/p&gt;

&lt;p&gt;The "Containment Field" (Preventing AI Hallucinations)&lt;br&gt;
The biggest reason engineers don't trust AI with their codebase is "helpful refactoring." You ask an LLM to change a button color, and it decides to rewrite a 500-line file to make it "cleaner," causing a massive merge conflict.&lt;/p&gt;

&lt;p&gt;To prevent this, the Antigravity agent must be strictly sandboxed. I engineered a system prompt that forces the AI into a highly restrictive set of behaviors:&lt;/p&gt;

&lt;p&gt;Zero Collateral Damage: Make the absolute minimal code changes necessary to satisfy the comment. Do not refactor surrounding code.&lt;/p&gt;

&lt;p&gt;Locality Constraint: You are restricted to editing ONLY the file mentioned in the payload.&lt;/p&gt;

&lt;p&gt;Verification: After editing, you MUST use the BashExecution tool to run npm run lint or eslint on the file.&lt;/p&gt;

&lt;p&gt;Graceful Failure: If validation fails, DO NOT push. Revert the file and output exactly: AUTOMATED_ABORT: I attempted this fix but it broke validation.&lt;/p&gt;

&lt;p&gt;The Code: Wiring the Antigravity Agent&lt;br&gt;
The beauty of the Antigravity SDK is that you don't have to write custom tool-calling loops to read files or run bash commands; it handles the agentic state under the hood.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/harishrsk" rel="noopener noreferrer"&gt;
        harishrsk
      &lt;/a&gt; / &lt;a href="https://github.com/harishrsk/dependafix-action" rel="noopener noreferrer"&gt;
        dependafix-action
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;DependaFix - AI PR Comment Resolution Agent 🚀&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;DependaFix is an autonomous AI Junior Software Engineer that lives in your GitHub Actions. It reads PR review comments, instantly applies the minimal necessary code fixes to the target files, runs your local linters, and commits the fix. Powered by the hyper-fast &lt;code&gt;gemini-3.5-flash&lt;/code&gt; model via the &lt;code&gt;google-antigravity&lt;/code&gt; SDK.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Collateral Damage&lt;/strong&gt;: Makes the minimal changes necessary, matching your existing codebase paradigm.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Locality Constraint&lt;/strong&gt;: Edits ONLY the files specified in the PR comment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Verifying&lt;/strong&gt;: Uses the Antigravity &lt;code&gt;BashExecution&lt;/code&gt; tool to run your local linters and tests before pushing any code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Graceful Failure&lt;/strong&gt;: If the AI's fix breaks your build or validation fails, it automatically aborts and outputs &lt;code&gt;'AUTOMATED_ABORT: I attempted this fix but it broke validation.'&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛒 How to Buy&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;DependaFix is a premium Micro-SaaS tool available for a one-time lifetime payment.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Purchase your Lifetime License&lt;/strong&gt; from…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/harishrsk/dependafix-action" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;




</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Auto-fixing broken frontend builds using Antigravity SDK lifecycle hooks</title>
      <dc:creator>Harishbabu R</dc:creator>
      <pubDate>Tue, 30 Jun 2026 08:47:47 +0000</pubDate>
      <link>https://dev.to/harishrsk/auto-fixing-broken-frontend-builds-using-antigravity-sdk-lifecycle-hooks-34mo</link>
      <guid>https://dev.to/harishrsk/auto-fixing-broken-frontend-builds-using-antigravity-sdk-lifecycle-hooks-34mo</guid>
      <description>&lt;p&gt;Handling automated dependency updates usually means manually untangling UI component breakages when a major package version bumps. To eliminate this busywork, I built a local remediation agent using the Google Antigravity Python SDK. Instead of giving an LLM expensive, unrestricted access to the entire repository, the agent is securely sandboxed to trigger npm run build locally and capture the resulting stderr output when a Dependabot PR fails.&lt;/p&gt;

&lt;p&gt;The core of the system relies on the SDK’s lifecycle hooks. Instead of dumping thousands of lines of raw terminal output directly into the model's context window, I configured a Transform hook to intercept the shell response before the agent processes it. This hook acts as a deterministic middleware filter: it strips out generic npm WARN logs and isolates the specific Webpack or Vite stack trace. By sanitizing the stderr stream in real-time, the model only reads the exact line numbers and deprecation errors, drastically reducing compute costs and preventing hallucinations.&lt;/p&gt;

&lt;p&gt;Once the hook feeds the filtered stack trace into the agent's reasoning engine, it autonomously invokes the native FileSystem tool to open the failing React components, rewrites the deprecated syntax to match the new API, and re-runs the build to verify the patch. The entire process runs statelessly within the PR branch. I open-sourced the GitHub Action—if your team is drowning in noisy Dependabot failures, grab the repository here and let me know how it handles your stack.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/harishrsk" rel="noopener noreferrer"&gt;
        harishrsk
      &lt;/a&gt; / &lt;a href="https://github.com/harishrsk/breaking-change-remediation" rel="noopener noreferrer"&gt;
        breaking-change-remediation
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;DependaFix ⚡&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An automated, self-healing GitHub Action that uses the Google Antigravity SDK to resolve breaking frontend syntax changes introduced by Dependabot upgrades.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Headache&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Dependabot is great for security alerts, but terrible for dev velocity.&lt;/p&gt;
&lt;p&gt;Upgrading a minor or major version of a frontend library (like &lt;code&gt;react-router-dom&lt;/code&gt; or &lt;code&gt;lucide-react&lt;/code&gt;) often introduces breaking syntax changes. The automated PR is created, the build (e.g., Vercel, Netlify, or custom CI) fails, and the PR stalls.&lt;/p&gt;
&lt;p&gt;Instead of building product features, senior engineers are forced to pull down branches, inspect build logs, manually refactor deprecated syntax, and push updates just to merge a package bump.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How It Works&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;DependaFix&lt;/code&gt; runs directly in your GitHub Actions workflow and executes a self-correcting cycle:&lt;/p&gt;

  &lt;div class="js-render-enrichment-target"&gt;
    &lt;div class="render-plaintext-hidden"&gt;
      &lt;pre&gt;graph TD
    A[Dependabot opens PR] --&amp;gt; B[npm run build fails]
    B --&amp;gt; C[DependaFix Action triggers]
    C --&amp;gt; D[Antigravity Agent reads stderr log]
    D --&amp;gt; E[Agent patches affected UI components]
    E --&amp;gt;&lt;/pre&gt;…&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/harishrsk/breaking-change-remediation" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>automation</category>
      <category>frontend</category>
      <category>python</category>
    </item>
  </channel>
</rss>
