<?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: Manan Sharma</title>
    <description>The latest articles on DEV Community by Manan Sharma (@manan_822e7).</description>
    <link>https://dev.to/manan_822e7</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%2F4019149%2F997b7adf-8d29-46da-a8e0-69f7c6005cd0.png</url>
      <title>DEV Community: Manan Sharma</title>
      <link>https://dev.to/manan_822e7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manan_822e7"/>
    <language>en</language>
    <item>
      <title>I built Github actions workflow for cxgrd</title>
      <dc:creator>Manan Sharma</dc:creator>
      <pubDate>Sat, 22 Aug 2026 17:53:24 +0000</pubDate>
      <link>https://dev.to/manan_822e7/i-built-github-actions-workflow-for-cxgrd-2kg3</link>
      <guid>https://dev.to/manan_822e7/i-built-github-actions-workflow-for-cxgrd-2kg3</guid>
      <description>&lt;p&gt;I recently built and shipped GitHub Actions workflow for &lt;a href="https://cxgrd.com" rel="noopener noreferrer"&gt;cxgrd&lt;/a&gt;. I built it to automate the scanning of project directory by the &lt;code&gt;scan&lt;/code&gt; command and blast radius analysis by the &lt;code&gt;check&lt;/code&gt; command, on every PR created. &lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;When ever a PR is created, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The project dependencies and cxgrd are installed&lt;/li&gt;
&lt;li&gt;The project is scanned with &lt;code&gt;cxgrd scan&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;check&lt;/code&gt; command is used to run blast radius analysis and compiler checks&lt;/li&gt;
&lt;li&gt;The results (risk level, affected files, changed types ) are posted as a comment to the PR. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The comment is updated on every subsequent run, instead of posting a new comment.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built this
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;check&lt;/code&gt; command already had &lt;code&gt;BlastRadiusAnalyzer&lt;/code&gt; being used for posting CI check results to DB and team dashboard. The only thing was to create a &lt;code&gt;--json&lt;/code&gt; flag to extract the result in json format and post it as a comment. &lt;br&gt;
The thing I found interesting was, I didn't have to use auth for posting the comment. While I was designing the flow, I came across something new: &lt;code&gt;GITHUB_TOKEN&lt;/code&gt;, which Actions inject into every PR, and is scoped to the specific repo, with permissions to comment. So, I just needed to write a small JS script, something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull-requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;write&lt;/span&gt;

&lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;cxgrd check --json &amp;gt; result.json&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/github-script@v7&lt;/span&gt;
    &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;const fs = require('fs');&lt;/span&gt;
        &lt;span class="s"&gt;const result = JSON.parse(fs.readFileSync('result.json'));&lt;/span&gt;
        &lt;span class="s"&gt;await github.rest.issues.createComment({&lt;/span&gt;
          &lt;span class="s"&gt;owner: context.repo.owner,&lt;/span&gt;
          &lt;span class="s"&gt;repo: context.repo.repo,&lt;/span&gt;
          &lt;span class="s"&gt;issue_number: context.issue.number, // PR number, auto-available&lt;/span&gt;
          &lt;span class="s"&gt;body: `## CXGRD Blast Radius\n\nRisk: ${result.risk}\n...`&lt;/span&gt;
        &lt;span class="s"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;inside the &lt;code&gt;.yml&lt;/code&gt; file. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built this
&lt;/h2&gt;

&lt;p&gt;I thought, the reason behind low adoption of cxgrd is that the users have to run CLI commands on their own. So I wrapped the core feature inside a CI workflow file. &lt;/p&gt;

&lt;p&gt;Maybe this will help cxgrd grow.&lt;/p&gt;

&lt;p&gt;Checkout the GitHub Action &lt;a href="https://github.com/marketplace/actions/cxgrd-blast-radius-check" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am open to any feedback which will help me and my tool grow.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>marketing</category>
    </item>
    <item>
      <title>How cxgrd differs from AI agent-based code review tools</title>
      <dc:creator>Manan Sharma</dc:creator>
      <pubDate>Sat, 15 Aug 2026 09:33:23 +0000</pubDate>
      <link>https://dev.to/manan_822e7/how-cxgrd-differs-from-ai-agent-based-code-review-tools-3alf</link>
      <guid>https://dev.to/manan_822e7/how-cxgrd-differs-from-ai-agent-based-code-review-tools-3alf</guid>
      <description>&lt;p&gt;In my &lt;a href="https://dev.to/manan_822e7/why-ai-coding-agents-fail-on-large-repos-the-stateless-context-problem-p0g"&gt;previous post&lt;/a&gt;, I introduced the CLI tool CXGRD which I built to prevent agents from breaking architecture. &lt;/p&gt;

&lt;p&gt;CXGRD computes blast radius using dependency graph traversal — a deterministic analysis of real import, call, and reference relationships in your codebase. This post explains what that means and how it differs from AI agent-based code review tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core difference
&lt;/h2&gt;

&lt;p&gt;AI agents (like an LLM-based code review tool) reads a diff and predicts what might be affected, based on pattern matching over the code it's shown. The output is a judgment — probabilistic, and it can miss relationships that aren't visible in the diff it was given, or hallucinate connections that don't exist.&lt;/p&gt;

&lt;p&gt;CXGRD instead builds an explicit graph of your codebase's real dependencies — which files import which, which functions call which — and traces a change through that graph mechanically. A dependency edge either exists in the graph or it doesn't. There's no inference step where an edge could be missed or invented.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters in practice
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;AI agent interpretation&lt;/th&gt;
&lt;th&gt;CXGRD dependency graph&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basis&lt;/td&gt;
&lt;td&gt;Model's reading of the diff&lt;/td&gt;
&lt;td&gt;Actual import/call relationships&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Consistency&lt;/td&gt;
&lt;td&gt;Can vary between runs on the same input&lt;/td&gt;
&lt;td&gt;Same input always produces the same result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure mode&lt;/td&gt;
&lt;td&gt;Can miss or hallucinate a relationship&lt;/td&gt;
&lt;td&gt;Can only miss relationships the graph itself doesn't model (e.g. dynamic imports)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explainability&lt;/td&gt;
&lt;td&gt;"The model flagged this as risky"&lt;/td&gt;
&lt;td&gt;"File X imports function Y, which changed" — a traceable path&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where AI still adds value
&lt;/h2&gt;

&lt;p&gt;CXGRD isn't anti-AI — Pro and Team tiers use an LLM (Groq) for &lt;strong&gt;prompt enrichment&lt;/strong&gt;: turning a computed blast radius into a clear, readable prompt for feeding into an AI coding assistant's context window. The graph traversal that determines &lt;em&gt;what&lt;/em&gt; is affected stays deterministic; the LLM's job is limited to &lt;em&gt;explaining&lt;/em&gt; that result in natural language, not deciding it.&lt;/p&gt;

&lt;p&gt;This is where CXGRD complements tools like Cursor or Claude Code rather than competing with them: those tools govern the &lt;em&gt;actions&lt;/em&gt; an AI agent takes while writing code, while CXGRD governs the &lt;em&gt;consequences&lt;/em&gt; of a change once it exists — checking blast radius before merge, regardless of whether the code was written by a human or an AI assistant.&lt;/p&gt;

&lt;p&gt;See how CXGRD works &lt;a href="https://www.cxgrd.com" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>architecture</category>
      <category>agents</category>
    </item>
    <item>
      <title>Why AI Coding Agents Fail on Large Repos: The Stateless Context Problem</title>
      <dc:creator>Manan Sharma</dc:creator>
      <pubDate>Fri, 10 Jul 2026 11:52:24 +0000</pubDate>
      <link>https://dev.to/manan_822e7/why-ai-coding-agents-fail-on-large-repos-the-stateless-context-problem-p0g</link>
      <guid>https://dev.to/manan_822e7/why-ai-coding-agents-fail-on-large-repos-the-stateless-context-problem-p0g</guid>
      <description>&lt;p&gt;Let's be honest - stateless AI tools are incredibly powerful, but they have terrible short term memory, and are context-limited. They look at your repo through a keyhole — whatever's visible in that one session is all they know.&lt;/p&gt;

&lt;p&gt;You've probably seen your AI tool trying to fix one thing and break several others. This happens because they don't know what else in your codebase depends on that particular module it is editing. &lt;/p&gt;

&lt;p&gt;Modern codebases are deeply interconnected, and as repos grow, it gets harder for AI agents to track every dependency, architectural layer, and downstream effect.&lt;/p&gt;

&lt;p&gt;I ran into this constantly while building a PR reviewer tool. Every time I asked AI to fix one thing or add a feature, it would quietly break something else. I wondered if it was possible to provide a complete dependency map to the entire codebase which can tell AI something like, "Hey, you just changed what this method returns, but you forgot about these 3 modules importing it".&lt;/p&gt;

&lt;p&gt;To fix this problem, I built a CLI which I call &lt;a href="https://www.cxgrd.com" rel="noopener noreferrer"&gt;CXGRD&lt;/a&gt; . It maps your code, builds dependency graphs, calculates blast radius and provides enriched prompts for AI tools, while at the same time verifying the changes made by performing compiler-backed checks. It's free to try — &lt;code&gt;npm install -g cxgrd&lt;/code&gt; and run &lt;code&gt;cxgrd scan&lt;/code&gt; on any repo. &lt;/p&gt;

&lt;p&gt;Would genuinely love feedback from anyone who's hit the same "fix one thing, break three" problem.&lt;/p&gt;

&lt;p&gt;GitHub : &lt;a href="https://github.com/cxgrd" rel="noopener noreferrer"&gt;https://github.com/cxgrd&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>architecture</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
