<?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>Forem: Andrey Vasilevsky</title>
    <description>The latest articles on Forem by Andrey Vasilevsky (@anvanster).</description>
    <link>https://forem.com/anvanster</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3735729%2F71c3e05e-6e12-49ba-aa1f-6d087ca1ad53.jpg</url>
      <title>Forem: Andrey Vasilevsky</title>
      <link>https://forem.com/anvanster</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/anvanster"/>
    <language>en</language>
    <item>
      <title>I Built a Git Layer That Reads Your Mind (Here's Why Git Alone Isn't Enough)</title>
      <dc:creator>Andrey Vasilevsky</dc:creator>
      <pubDate>Tue, 27 Jan 2026 17:34:08 +0000</pubDate>
      <link>https://forem.com/anvanster/rethinking-version-control-what-if-git-understood-your-intent-40fm</link>
      <guid>https://forem.com/anvanster/rethinking-version-control-what-if-git-understood-your-intent-40fm</guid>
      <description>&lt;p&gt;Ever commit code with the message 'fix stuff' because Git makes you think in diffs instead of intent? You're not alone - and there's a better way.&lt;/p&gt;

&lt;p&gt;Git is brilliant at tracking text changes. But when you look at a commit history, you see diffs—lines added, lines removed. What you don't see is the developer's &lt;strong&gt;intent&lt;/strong&gt;, the architectural impact, or whether that "small refactor" actually introduced a breaking change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Smelt
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Smelt&lt;/strong&gt; is a semantic version control layer that sits on top of Git. Instead of starting with code, you start with an &lt;strong&gt;intent&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://github.com/anvanster/smelt-svc" rel="noopener noreferrer"&gt;https://github.com/anvanster/smelt-svc&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;smelt intent create &lt;span class="nt"&gt;--goal&lt;/span&gt; &lt;span class="s2"&gt;"Add rate limiting to API endpoints"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you make your changes. When you commit, Smelt captures a &lt;strong&gt;semantic delta&lt;/strong&gt;—not just what lines changed, but what it means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Functions added/removed/modified&lt;/li&gt;
&lt;li&gt;  Breaking signature changes&lt;/li&gt;
&lt;li&gt;  Dependency impacts&lt;/li&gt;
&lt;li&gt;  Complexity changes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Result? Commits that tell a story.
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Add rate limiting to API endpoints

Intent:   fce32c4c-434e-44bb-bcb8-b2c747756279
Delta:    5eeac27c-ed52-45c1-ab07-3517a7044a85
Semantic: +3 functions, ~2 functions, 0 breaking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;For Code Review:&lt;/strong&gt; Reviewers instantly see architectural impact, not just line counts.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;For AI Agents:&lt;/strong&gt; Structured intents give AI assistants clear context and constraints.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;For Compliance:&lt;/strong&gt; Audit trails that capture reasoning, not just changes.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;For Onboarding:&lt;/strong&gt; New team members understand the "why" behind every commit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Built for the AI Era
&lt;/h2&gt;

&lt;p&gt;As AI becomes a bigger part of software development, we need version control that speaks in concepts, not just characters. Smelt includes &lt;strong&gt;episodic memory&lt;/strong&gt; that learns from your development patterns and surfaces relevant past experiences when you're solving similar problems.&lt;/p&gt;

&lt;p&gt;The code is in &lt;strong&gt;Rust&lt;/strong&gt;, layers cleanly over existing Git repos, and validates changes against architectural rules before commit.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Would love to hear thoughts from others thinking about developer tooling in the AI age. What's missing from your current workflow?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  End-to-End Example
&lt;/h2&gt;

&lt;p&gt;Here's a complete workflow demonstrating Smelt's semantic version control:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Initialize Smelt in your repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;smelt init &lt;span class="nt"&gt;--wait&lt;/span&gt;
Initializing Smelt &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="s2"&gt;"/Users/dev/my-project"&lt;/span&gt;...
  Database created: &lt;span class="s2"&gt;"/Users/dev/my-project/.smelt/smelt.db"&lt;/span&gt;
  Graph storage created: &lt;span class="s2"&gt;"/Users/dev/my-project/.smelt/graph"&lt;/span&gt;
  Git hooks installed
  Configuration created

Indexing repository...
  Scanning files: 0 found
  Indexing complete.

✓ Smelt initialized successfully!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Create an intent describing your goal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;smelt intent create &lt;span class="nt"&gt;--goal&lt;/span&gt; &lt;span class="s2"&gt;"Add greeting message to CLI startup"&lt;/span&gt;
Created intent: fce32c4c

  Goal: Add greeting message to CLI startup
  Status: In Progress
  Baseline snapshot: 8795a78d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Now make your code changes, then run &lt;code&gt;smelt status&lt;/code&gt; to see semantic changes.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Make your code changes
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;(e.g., add a function to &lt;code&gt;main.rs&lt;/code&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Check semantic status
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;smelt status
Intent: fce32c4c &lt;span class="o"&gt;(&lt;/span&gt;Add greeting message to CLI startup&lt;span class="o"&gt;)&lt;/span&gt;
Status: In Progress

Changed files &lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;:
  M src/main.rs

Semantic changes:
  &lt;span class="o"&gt;(&lt;/span&gt;Computing delta from 1 files...&lt;span class="o"&gt;)&lt;/span&gt;

Impact Summary:
  Files affected: 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Validate changes against architectural rules
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;smelt validate
Validating 1 changed files...

Validation Results:
&lt;span class="o"&gt;==================&lt;/span&gt;

✅ Validation passed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Commit with semantic delta
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;smelt commit &lt;span class="nt"&gt;--intent&lt;/span&gt; fce32c4c
Committing intent: fce32c4c &lt;span class="o"&gt;(&lt;/span&gt;Add greeting message to CLI startup&lt;span class="o"&gt;)&lt;/span&gt;
  Staged 1 files
  Computing semantic delta...
  Running validation...
    Validation: passed
  Creating commit...

✓ Committed: 06d0a797
   Intent: fce32c4c
   Delta:  5eeac27c
   Files:  1 changed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The resulting git commit includes semantic metadata:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit 06d0a797559d1791f6dc0b5dc3742897e1446e60
Author: Developer &amp;lt;dev@example.com&amp;gt;
Date:   Mon Jan 26 22:23:17 2026 -0800

    Add greeting message to CLI startup

    Intent: fce32c4c-434e-44bb-bcb8-b2c747756279
    Delta: 5eeac27c-ed52-45c1-ab07-3517a7044a85

 src/main.rs | 5 +++++
 1 file changed, 5 insertions(+)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Reply or DM me if this is something that looks interesting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://github.com/anvanster/smelt-svc" rel="noopener noreferrer"&gt;https://github.com/anvanster/smelt-svc&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
