DEV Community

Cover image for Rethinking Version Control: What If Git Understood Your Intent?
Andrey Vasilevsky
Andrey Vasilevsky

Posted on

Rethinking Version Control: What If Git Understood Your Intent?

I've been working on something: the disconnect between why we make code changes and what Git actually records.

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 intent, the architectural impact, or whether that "small refactor" actually introduced a breaking change.

Introducing Smelt

Smelt is a semantic version control layer that sits on top of Git. Instead of starting with code, you start with an intent:

🔗 https://github.com/anvanster/smelt-svc

smelt intent create --goal "Add rate limiting to API endpoints"
Enter fullscreen mode Exit fullscreen mode

Then you make your changes. When you commit, Smelt captures a semantic delta—not just what lines changed, but what it means:

  • Functions added/removed/modified
  • Breaking signature changes
  • Dependency impacts
  • Complexity changes

The Result? Commits that tell a story.

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
Enter fullscreen mode Exit fullscreen mode

Why This Matters

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

Built for the AI Era

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

The code is in Rust, layers cleanly over existing Git repos, and validates changes against architectural rules before commit.

Would love to hear thoughts from others thinking about developer tooling in the AI age. What's missing from your current workflow?


End-to-End Example

Here's a complete workflow demonstrating Smelt's semantic version control:

1. Initialize Smelt in your repository

$ smelt init --wait
Initializing Smelt in "/Users/dev/my-project"...
  Database created: "/Users/dev/my-project/.smelt/smelt.db"
  Graph storage created: "/Users/dev/my-project/.smelt/graph"
  Git hooks installed
  Configuration created

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

✓ Smelt initialized successfully!
Enter fullscreen mode Exit fullscreen mode

2. Create an intent describing your goal

$ smelt intent create --goal "Add greeting message to CLI startup"
Created intent: fce32c4c

  Goal: Add greeting message to CLI startup
  Status: In Progress
  Baseline snapshot: 8795a78d
Enter fullscreen mode Exit fullscreen mode

Now make your code changes, then run smelt status to see semantic changes.

3. Make your code changes

(e.g., add a function to main.rs)

4. Check semantic status

$ smelt status
Intent: fce32c4c (Add greeting message to CLI startup)
Status: In Progress

Changed files (1):
  M src/main.rs

Semantic changes:
  (Computing delta from 1 files...)

Impact Summary:
  Files affected: 1
Enter fullscreen mode Exit fullscreen mode

5. Validate changes against architectural rules

$ smelt validate
Validating 1 changed files...

Validation Results:
==================

✅ Validation passed
Enter fullscreen mode Exit fullscreen mode

6. Commit with semantic delta

$ smelt commit --intent fce32c4c
Committing intent: fce32c4c (Add greeting message to CLI startup)
  Staged 1 files
  Computing semantic delta...
  Running validation...
    Validation: passed
  Creating commit...

✓ Committed: 06d0a797
   Intent: fce32c4c
   Delta:  5eeac27c
   Files:  1 changed
Enter fullscreen mode Exit fullscreen mode

The resulting git commit includes semantic metadata:

commit 06d0a797559d1791f6dc0b5dc3742897e1446e60
Author: Developer <dev@example.com>
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(+)
Enter fullscreen mode Exit fullscreen mode

Reply or DM me if this is something that looks interesting.

🔗 https://github.com/anvanster/smelt-svc

Top comments (0)