<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>erode | Announcements</title><description/><link>https://erode.dev/</link><language>en</language><item><title>Catch drift before the PR</title><link>https://erode.dev/announcements/erode-060/</link><guid isPermaLink="true">https://erode.dev/announcements/erode-060/</guid><description>0.6.0 adds local drift detection so you can catch architectural violations before pushing a PR, not after someone has already reviewed the code.

</description><pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Until now, Erode only ran in CI. You found out about drift after pushing a PR
and after someone already reviewed the code.&lt;/p&gt;
&lt;p&gt;0.6.0 adds local detection. Three things shipped:&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;erode-check&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;erode check&lt;/code&gt;&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A new command that runs the same AI pipeline as &lt;code dir=&quot;auto&quot;&gt;analyze&lt;/code&gt; but operates on local git diffs instead of fetching PR data from a platform API.&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;erode&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;check&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./model&lt;/span&gt;&lt;span&gt;                &lt;/span&gt;&lt;span&gt;# unstaged changes&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;erode&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;check&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./model&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--staged&lt;/span&gt;&lt;span&gt;       &lt;/span&gt;&lt;span&gt;# staged changes&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;erode&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;check&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./model&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--branch&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;main&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;# branch diff&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;No platform tokens needed. No PR required. Just a local git repo and an AI provider key. Wire it into git hooks with &lt;code dir=&quot;auto&quot;&gt;--fail-on-violations&lt;/code&gt; for automatic checking. See &lt;a href=&quot;https://erode.dev/docs/reference/cli-commands/&quot;&gt;CLI Commands&lt;/a&gt; for all flags and options.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;claude-code-skill&quot;&gt;Claude Code skill&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A &lt;a href=&quot;https://erode.dev/docs/integrations/claude-code/&quot;&gt;custom skill&lt;/a&gt; that runs &lt;code dir=&quot;auto&quot;&gt;erode check&lt;/code&gt; during Claude Code sessions. When Claude Code writes code that introduces a new import, API call, or service connection, the skill flags undeclared dependencies and surfaces them in the conversation.&lt;/p&gt;
&lt;p&gt;The skill triggers on new integrations and before commits. It skips changes that cannot introduce dependencies (docs, tests, config). A violation is not an error. Claude Code shows what it found so you can decide: fix the code or update the model.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;npm-publishing&quot;&gt;npm publishing&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Erode is now published as &lt;a href=&quot;https://www.npmjs.com/package/@erode-app/cli&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;@erode-app/cli&lt;/code&gt;&lt;/a&gt; on npm. Run it with &lt;code dir=&quot;auto&quot;&gt;npx @erode-app/cli check ./model&lt;/code&gt;, no global install needed. This is what makes the Claude Code skill work. See &lt;a href=&quot;https://erode.dev/docs/getting-started/&quot;&gt;Getting Started&lt;/a&gt; for setup.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s next&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://erode.dev/docs/reference/cli-commands/&quot;&gt;CLI Commands&lt;/a&gt;: all &lt;code dir=&quot;auto&quot;&gt;erode check&lt;/code&gt; flags and options&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://erode.dev/docs/integrations/claude-code/&quot;&gt;Claude Code integration&lt;/a&gt;: setup guide for the skill&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://erode.dev/docs/getting-started/&quot;&gt;Getting Started&lt;/a&gt;: CI setup for &lt;code dir=&quot;auto&quot;&gt;erode analyze&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Introducing Erode</title><link>https://erode.dev/announcements/introducing-erode/</link><guid isPermaLink="true">https://erode.dev/announcements/introducing-erode/</guid><description>Architecture models rot because nobody updates them. Erode checks every PR against your declared model and flags what drifted, while it is still one change and not a six-month cleanup.

</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;You know how it goes. A frontend calls a backend it should not, a shared library creeps into everything, and nobody catches it because each PR looked fine on its own. Six months later you are debugging latency across services that were never supposed to talk to each other.&lt;/p&gt;
&lt;p&gt;Someone draws a diagram of the system. It is useful for two weeks, then it rots because updating it means opening some other tool and doing a chore nobody asked for.&lt;/p&gt;
&lt;p&gt;I kept running into this, which is why I built Erode.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;what-it-does&quot;&gt;What it does&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Erode checks every code change against a model of your system. If a change introduces a dependency that is not declared, it flags it. It does not block merges by default. It just makes the drift visible while it is still one PR and not a six-month cleanup.&lt;/p&gt;
&lt;p&gt;The model can be &lt;a href=&quot;https://erode.dev/docs/models/likec4/&quot;&gt;LikeC4&lt;/a&gt; or &lt;a href=&quot;https://erode.dev/docs/models/structurizr/&quot;&gt;Structurizr&lt;/a&gt;. All Erode needs is nodes and connections. It does not care which format or framework defines them.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Erode runs a multi-stage AI pipeline on the diff:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Component resolution&lt;/strong&gt; identifies which architecture component the changed code belongs to.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency scan&lt;/strong&gt; extracts new dependency signals from the diff.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drift analysis&lt;/strong&gt; compares those signals against the declared model and reports violations.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The result is a clear finding explaining what drifted and why it matters.&lt;/p&gt;
&lt;p&gt;A violation is not necessarily a problem. Software evolves. What matters is that the change is visible and the decision to keep it or fix it is conscious.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;getting-started&quot;&gt;Getting started&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The fastest way to try Erode is with the &lt;a href=&quot;https://github.com/erode-app/playground&quot;&gt;playground repository&lt;/a&gt;. Fork it, add your API key, and open a PR that introduces an undeclared dependency.&lt;/p&gt;
&lt;p&gt;For your own project, add the &lt;a href=&quot;https://erode.dev/docs/integrations/github-actions/&quot;&gt;GitHub Action&lt;/a&gt; or run the CLI directly:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npx&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;@erode-app/cli&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;analyze&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./model&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--url&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;https://github.com/org/repo/pull/42&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;See the &lt;a href=&quot;https://erode.dev/docs/getting-started/&quot;&gt;getting started guide&lt;/a&gt; for setup instructions including CI integration with GitHub Actions, GitLab CI, and Bitbucket Pipelines.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s next&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://erode.dev/docs/why-it-matters/&quot;&gt;Why It Matters&lt;/a&gt;: the case for architecture models that keep pace with your code&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://erode.dev/docs/how-it-works/&quot;&gt;How It Works&lt;/a&gt;: the AI pipeline behind the analysis&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/erode-app/erode&quot;&gt;GitHub&lt;/a&gt;: the source code&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item></channel></rss>