<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>code-graph on tomrochette.com</title>
    <link>https://tomrochette.com/tags/code-graph/</link>
    <description>Recent content in code-graph on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Sun, 11 Oct 2026 23:45:59 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/code-graph/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>code-review-graph</title>
      <link>https://tomrochette.com/agents/context-engines/code-review-graph/</link>
      <pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/context-engines/code-review-graph/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>context-engines</category><category>code-graph</category><category>mcp</category><category>static-analysis</category>
      <description>&lt;p&gt;code-review-graph is a local-first Python tool that parses a repository into a Tree-sitter knowledge graph and serves it to AI coding tools over MCP and a CLI, so a review reads the blast radius of a change instead of the repository.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;The mechanism is a context engine wearing a review badge: the graph decides what enters the window, the smallest file set a change touches, and the project ships the category&amp;rsquo;s most self-critical benchmarks, stating in its own README that its recall metric is circular and its whole-corpus baseline is one no agent pays.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A pip or pipx CLI (MIT, Python 3.10+) by Tirth (tirth8205), solo maintainer, with an MCP server on stdio or localhost HTTP and one SQLite graph per repository in &lt;code&gt;.code-review-graph/&lt;/code&gt;.&#xA;Tree-sitter parses 30-plus languages and notebooks into nodes (functions, classes, imports) and edges (calls, inheritance, tests); queries return blast radius, risk-scored change detection, hub and bridge detection, community maps, execution flows, dead code, and a generated wiki.&#xA;&lt;code&gt;install&lt;/code&gt; detects up to sixteen AI coding tools (Codex, Claude Code, Cursor, Windsurf, Zed, Continue, OpenCode, and more) and writes each one an MCP entry plus hooks, skills, and rules-file text; &lt;code&gt;uninstall&lt;/code&gt; removes exactly what it wrote.&#xA;A composite GitHub Action posts risk-scored PR comments updated in place, with an optional fail-on-risk merge gate, running the graph on your runner with no source sent anywhere; there is no telemetry, and cloud embeddings are opt-in behind a printed egress warning.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Active and unusually fast-growing: 32,046 stars, 2,936 forks, and 182 open issues as of 2026-10-11, created 2026-02-26, pushed 2026-10-06, so five figures of stars arrived in under eight months.&#xA;PyPI carries 2.3.9 (uploaded 2026-09-18) across 37 releases on a roughly monthly cadence, and the repo runs a documented staging to testing to main promotion flow.&#xA;The community footprint is lopsided: a Hacker News search returns three story hits, the largest a 12-point launch thread with two comments (one an install failure), so the star count arrived without front-page discussion, the Trendshift-badge pattern this section has seen before.&#xA;Every number below is the author&amp;rsquo;s own; no independent benchmark exists.&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=tirth8205/code-review-graph&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=tirth8205/code-review-graph&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=tirth8205/code-review-graph&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The benchmark section is the category&amp;rsquo;s most self-critical: recall 1.0 is labelled circular (the ground truth comes from the same graph the predictor walks), the whole-corpus baseline is called an upper bound no agent pays, the co-change mode is reported not yet usable, and pins, seeds, and a reproduction recipe are published.&lt;/li&gt;&#xA;&lt;li&gt;Incremental freshness is mechanical and measured: SHA-diffed re-parses through hooks, watch mode, or a daemon, about 2.5 seconds for a two-file edit on a 3,000-file repository.&lt;/li&gt;&#xA;&lt;li&gt;The installer is the widest wiring surface in this category&amp;rsquo;s matrix, one command configuring up to sixteen platforms, with an uninstall documented down to atomic config writes.&lt;/li&gt;&#xA;&lt;li&gt;Genuinely local: no telemetry, a SQLite file in the repo, and a stated rule that cloud embedding text is identifiers, signatures, and docstring summaries, never function bodies.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The headline roughly 63x median reduction is measured against that whole-corpus baseline; the agent-baseline eval that would measure a fairer comparison exists, but no canonical capture of it is published.&lt;/li&gt;&#xA;&lt;li&gt;A third-party write-up quotes older claims (6.8x fewer tokens on reviews, up to 49x on daily coding) that it admits it has not verified and that the current README no longer makes, so secondary coverage lags the primary numbers.&lt;/li&gt;&#xA;&lt;li&gt;Solo maintainer, eight months old: bus factor one, and the star velocity is ahead of any independent validation.&lt;/li&gt;&#xA;&lt;li&gt;Impact analysis is deliberately low-precision (flagging an extra file beats missing a dependency), which costs tokens on large dependency graphs, and the README&amp;rsquo;s own limitations put flow-detection recall at 33%.&lt;/li&gt;&#xA;&lt;li&gt;Small repositories and single-file diffs are named by the project itself as cases where graph context costs more than it saves, and the name oversells the review job: the tool judges nothing on the PR stream.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free, MIT, entirely local.&#xA;Pricing does not apply.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/graphify/&#34; &gt;Graphify&lt;/a&gt;: the closest sibling, also a local AST knowledge graph; Graphify aims at repo-scale Q&amp;amp;A and path tracing, this tool is change-and-review-first with blast radius and a CI action.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/serena/&#34; &gt;Serena&lt;/a&gt;: LSP-backed symbol tools that parse live and edit at symbol level, more precise per symbol; this tool wins multi-hop impact questions from a stored graph.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/repomix/&#34; &gt;Repomix&lt;/a&gt;: the one-file whole-repo pack, simplest for one-shot questions on repos that fit a window; no structural queries, and stale the moment you edit.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for review-heavy teams on multi-thousand-file repositories that want the agent to read only the blast radius, after reading the benchmark caveats and ideally re-running the eval on your own repo; not for small repos, single-file diffs, or anyone expecting a tool that judges code.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-11 - Created from the code-review scan&amp;rsquo;s flag, shelved in context-engines over code-review because the graph serves context and judges nothing, with the whole-corpus-baseline and solo-maintainer cautions recorded as the critical angle.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/graphify/&#34; &gt;Graphify&lt;/a&gt; - the AST-graph sibling one job over, structure for Q&amp;amp;A instead of change impact&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/serena/&#34; &gt;Serena&lt;/a&gt; - the LSP contrast: live symbol precision against a stored structural graph&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/repomix/&#34; &gt;Repomix&lt;/a&gt; - the pack-everything contrast at the other end of the size curve&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/context-engines/context-engines-feature-matrix/&#34; &gt;Context Engines Feature Matrix&lt;/a&gt; - the category comparison this note joins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/code-review/code-review-feature-matrix/&#34; &gt;Code Review Feature Matrix&lt;/a&gt; - the category the name borrows from, judgment on the PR stream&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/tirth8205/code-review-graph&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/tirth8205/code-review-graph&lt;/a&gt; - stars, forks, issues, license, creation and push dates as of 2026-10-11&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/tirth8205/code-review-graph/main/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/tirth8205/code-review-graph/main/README.md&lt;/a&gt; - mechanism, installer surfaces, benchmark tables, and the limitations list&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://raw.githubusercontent.com/tirth8205/code-review-graph/main/docs/FAQ.md&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=raw.githubusercontent.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://raw.githubusercontent.com/tirth8205/code-review-graph/main/docs/FAQ.md&lt;/a&gt; - the when-not-to-use size thresholds, the no-telemetry statement, and the Serena and Repomix comparison&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pypi.org/pypi/code-review-graph/json&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=pypi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://pypi.org/pypi/code-review-graph/json&lt;/a&gt; - version 2.3.9 and the 37-release train&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/tirth8205/code-review-graph/releases?per_page=5&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/tirth8205/code-review-graph/releases?per_page=5&lt;/a&gt; - release cadence through v2.3.9 (2026-09-18)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/items/47314090&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/items/47314090&lt;/a&gt; - the 12-point launch thread with the install-failure comment&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=code-review-graph&amp;amp;tags=story&amp;amp;hitsPerPage=10&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/search?query=code-review-graph&amp;tags=story&amp;hitsPerPage=10&lt;/a&gt; - the thin Hacker News footprint check as of 2026-10-11&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://dev.to/stevengonsalvez/code-review-graph-stop-your-agent-reading-the-whole-repo-4272&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=dev.to&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://dev.to/stevengonsalvez/code-review-graph-stop-your-agent-reading-the-whole-repo-4272&lt;/a&gt; - the third-party write-up quoting unverified older figures, the record&amp;rsquo;s skeptical source&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://code-review-graph.com&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=code-review-graph.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://code-review-graph.com&lt;/a&gt; - the website, client-rendered this run (title only fetched), cited through the fetched primaries&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
