Git Is A Fundamental Primitive
"We shape our tools, and thereafter our tools shape us." - John Culkin
For a few months now, I’ve had the same thought keep coming up:
I kind of want AI progress to stop right now so it’s good enough for me to use but hard enough for others not to.
Which is ridiculous in a number of directions, but the main one is: AI has gotten way better over the last few months and that is going to continue. But the methods people use to work with AI are starting to fracture clearly.
On one side of the spectrum you have people that are using the web chat interfaces. They’re asking questions, maybe importing documents, and getting answers after multiple rounds. Some of them are sliding over into Claude Cowork and becoming astounded by what they can do. Maybe some have chat embedded in a team channel at work. This is Tool-based AI and it’s how probably 90% or more of people work with AI. Your brain is in the loop on each pass and the AI is a synchronous tool.
On the other side of the spectrum are those, still mostly developers, accessing AI through interfaces that are both more complex and also simpler. These are the people using deceptively simple terminal commands like Claude Code, Codex, OpenCode, or setting up Mac Minis or VPSs to run their own OpenClaw. The distinction is generally the ability to easily derive more context and memory for the AI so that it can perform more tasks. This is Agent-based AI and it is vastly more powerful than tool-based AI. It’s also scarier, because you’re giving up more control to the AI on longer and longer tasks.
A lot of the people in the second camp, including me, have been freaking out over the last few months. And some are shouting about it: “anyone can do anything now!”
No, not everyone. There are still barriers. I count three.
The first is agency, which has become a new watchword of some cross-sections of the elite. It’s important to note who is doing the shouting: it’s the OpenClaw-pilled guy who took the time and energy and capital to go buy a Mac Mini, build OpenClaw, and set it up. There’s a threshold here that not everyone climbs. This is a key dimension of the K-shaped economy.
The second is taste and expertise. I’ve seen plenty of non-software engineers build small software projects on their own with AI, even hosted in the cloud with some help. But they are mostly ugly or cookie cutter, brittle, and bespoke. And maybe that’s fine for most cases! But when we think of bespoke we think of Savile Row not every Mom with a sewing machine. This is what I call Localhost Competence. The gal with language and algorithm expertise, infrastructure knowledge, and design ability will be able to build vastly larger and more correct systems with AI than someone without expertise. This is as true for other fields as it is for software.
The last is what you as a user understand to be the primitives of work. It’s related to the first two, but not quite the same. It defines what tools are available to you and how you think about capability. It provides a foundation for your expertise and a space to exercise your taste. For someone like Adrian Newey, whose entire job is car design, his primitives are shapes and a pencil and a drafting board, and every other racecar designer hangs on every detail he designs while they sit around their screens with complicated CFD flows.
For engineers, Git is a fundamental primitive. It is one of the primary things that separates Tool-based AI use from Agent-based AI use. See, primitives don’t have to be complicated. In fact, they’re better if they aren’t. Simplicity drives creativity the same way a canvas does for a painter.
Lots of software has adopted some form of version control. Office Docs have change tracking and people are still slinging around v003 and v004_final and v004_final_final all the time. Sharing and tracking work in common artifacts across people is hard too. Nothing ever stuck as a universal system over top of all of that.
But that’s what Git is.
When Linus built it in the aughts, SVN was the standard (or God forbid, something like SCCS) and it was painful. Git was decentralized, lightweight, and felt like magic. Twenty years later and it’s really the only version control system left standing. I think it’ll still be here in 2100, which is a genuinely strange thing to say about a piece of software. But Git isn’t really software in the way most tools are. It’s closer to a protocol, like HTTP or email. It’s simple enough to be permanent.
I’ve moved everything that touches AI into Git repositories. My writing is in a Git repo. My investment portfolio is in Git. Every personal project is in Git. A Git repo is where you store context, and context is what makes an agent useful instead of generic. You have things with history, that can branch, that can merge. You think in commits.
Markdown wins over Docx or Sheets for the same reason. Simple formats survive and travel between humans and agents without friction. The tools that are fundamental and universal are the ones that will last. As AI gets better, primitives get more valuable. The more capable the agent, the more it rewards you for giving it structure.
Primitives, along with agency and expertise, are one of three things separating the people who accelerate with AI from the people AI leaves behind.
Find your primitives and learn them well.



Very relevant to my world today — As someone with mechanical engineering background and education trying to keep up on a software team, I feel like I am beginning to reap the rewards significantly. Previously I have scrounged up enough knowledge from immersion to merge basic PRs and navigate the code base, but I know I still lack some fundamentals that my software-oriented peers have engrained in them. With AI, in many ways it closes the gap between me needing to ask for help on basic tasks versus quickly and independently completing more advanced tasks. But, I am familiar enough with what the final product SHOULD look like and how it should perform where I can check its work and modify as needed.
Interesting how much you use Git in your daily life — might need to try that!