My side project's git log says "fix", "wip", "refactor" — and I didn't write any of it

calendar_today agoschedule2 min read

Here's a loop I kept running into. Start a side project on a Saturday. Claude Code does most of the typing, I steer. Two good evenings, real progress, then life happens and I don't open it for twelve days.

When I come back, the git log is six commits named some variation of "fix", "refactor", and "wip". I didn't write the code. The agent did, and the reasoning for every decision it made lived in a chat session that's gone. I read the diffs twice, gave up, and re-decided everything from scratch.

This used to be a six-months-later problem. You'd hit it on old work code, mutter about the previous dev, move on. AI pace compressed it to about four days, and the previous dev is now a chat window you closed.

What I changed

I built a small open source tool for this and now I run it on everything, including the half-finished stuff. It's called Selvedge. It's an MCP server, which just means it's a tool your coding agent can call while it works. The setup drops a few lines into your CLAUDE.md (or .cursorrules):

You have access to Selvedge for change tracking.
Call selvedge.log_change after any change to a column, function, env var, or dependency.
Set reasoning to my original ask or the problem you were solving.

That's the whole integration. From then on, when the agent touches something meaningful, it writes down why — in the same moment it makes the change, while the reason is still in its context. Everything lands in a local SQLite file under .selvedge/. No cloud, no account.

Coming back to a project now looks like this:

$ selvedge history --since 14d

and I get the last two weeks of changes in actual sentences instead of commit-message grunts. If one specific thing confuses me:

$ selvedge blame retry_backoff

retry_backoff (env var), last changed 13 days ago:
"Bumped from 2s to 30s — the flaky supplier API rate-limits
 aggressive retries, and we were making outages worse."

Git blame tells you what changed and when. This is the same idea pointed at why. I'm back in flow in a couple of minutes instead of forty.

The part that surprised me

The newer versions do something I didn't originally plan. Before the agent changes something, it can ask Selvedge what happened last time anyone touched it. So when it's about to re-add the clever caching layer that past-me reverted because it broke sessions, it finds the revert and the reason, and doesn't repeat the mistake. Watching an agent talk itself out of a bad idea using notes a previous agent left is a strange feeling. Good strange.

If you want to try it

pip install selvedge
cd your-project
selvedge setup

The setup wizard detects Claude Code, Cursor, or Copilot and writes the config for you. MIT licensed, Python 3.10+, zero dependencies. Docs at selvedge.sh.

Full disclosure, I'm the author, so take the enthusiasm with salt. What I'd actually love to hear: how do you deal with this? Coming back to a project where an agent wrote most of the code, I mean. Notes file? Long commit messages? Just re-reading everything? I've talked to a few people who keep a running NOTES.md they make the agent update, which is basically the same idea with fewer moving parts. Curious what works for you.

🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Your AI Doesn't Just Write Tests. It Runs Them Too.

Kevin Martinez - May 12

I Wrote a Script to Fix Audible's Unreadable PDF Filenames

snapsynapseverified - Apr 20

The Sovereign Vault — A Comprehensive Guide to Protocol-Driven AI

Ken W. Algerverified - Jun 4

Everyone says DeepSeek is cheaper, but I got tired of guessing the exact math. So I built a calculat

abarth23 - Apr 27

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19
chevron_left
176 Points5 Badges
Southern California, USAlinkedin.com/in/masondelan
3Posts
0Comments
Applied Data Science M.S. | Statistics & Data Science B.S.

Commenters (This Week)

1 comment
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!