Uncle Bob's setup: from Claude to a squad of Grok Bots
Published · updated
Robert C. Martin, Uncle Bob, wrote Clean Code and Clean Architecture, co-authored the Agile Manifesto and created FitNesse. He has preferred Clojure for years: “I’ve nothing against Java; I just prefer clojure,” he wrote in 2018. His repositories are public under unclebob, and since he works with agents, many commits name their co-author. Together with his posts on X, that history dates most of the changes below.
The editor: IntelliJ, and Emacs again
Asked in 2018 how he built his Spacewar game, he answered: “Clojure, quil, IntelliJ with Cursive.” Cursive is the Clojure plugin for IntelliJ IDEA. In February 2024 he wrote: “After two decades I’m, once again, entering the emacs world. Wish me luck.” A day later he reported: “the basics are still buried in my brain that my fingers seen to know what to do in many cases. And then, of course, there’s the mouse. I never used emacs with a mouse before.”
None of his later posts that we found mention Emacs. His repositories from 2025 and 2026 still ignore IntelliJ’s .idea folders, and the .DS_Store files they ignore mean a Mac.
Early 2026: Claude
“It was 18 months ago that I started getting serious about AI,” he wrote in August 2026. “At first it was just a few simple tasks and translations. But soon I was working hard with agents and tools.” The first agent in his public history is Claude. In January 2026 commits to empire-2025, a Clojure remake of the old strategy game Empire, start carrying Claude Opus as co-author, and a CLAUDE.md follows a week later.
In February he was using Claude Code for experiments. He had it write Gherkin scenarios for a game from the 1970s and build it in Java, then in “C, Clojure, Ruby, Rust, and Javascript.” Then he had it build a mutation tester: “Clojure is the perfect language for mutation testing because it is so easy to parse and change… Semantic stability is really important when AIs are mucking around with the internals of the code.” Two days later he had “three sessions open. One doing mutation tests. One adding features to the project. Another working on a tool to help Claude match parentheses in Clojure (which seems beyond its grasp).” That tool became speclj-structure-check, a Claude skill.
Spring 2026: Codex and SwarmForge
In April he started SwarmForge, which runs several agents in separate git worktrees and tmux sessions, each with a role, and passes committed work between them. Its first configuration had Claude as the architect and Codex as the coder. By May he was “getting four agents working together. Specifier, coder, refactorer, and architect.” Two days later Claude was out: “I just cancelled my Claude account. I’ve been using codex, and haven’t used Claude in several weeks.” The last commit with Claude as co-author is from 16 April.
At the end of May he tried xAI’s new CLI, Grok Build, as a SwarmForge backend. He wasn’t convinced: “The model forgets rules more quickly and frequently than codex. Not ready for prime time just yet.” Three weeks later the two were close: “codex took 36 minutes to to a task. Grok did it in 18 minutes… Codex worked out of the box. Grok needed a bit of manual debugging.” His July Missile Command remake, in Clojure and ClojureScript with a leaderboard on Cloudflare, ran six Codex agents. By the end of August SwarmForge’s packs mixed the two: Grok writing code, Codex cleaning and specifying.
Late 2026: fewer harnesses
Much of his summer went into the harness itself. In August he described a workflow “described by a static FSM,” which he had his agents build, then simulate, then “run monte-carlo testing for many runs. The agents never would have thought of that kind of testing regime.” In September he stepped back: “while I was heads-down getting that to work, the agents got a LOT better. So much so that when I came up for air, the need for my harness was obviated.” He described “long debates with grok and codex about the structure of systems – as if they were senior engineers,” and said he could “walk away for 40 minutes and when I return it will be done.”
The checks stayed. He rebuilt his CRAP, duplication and mutation tools as crapper, dryer and mutator; crapper and mutator cover Clojure, Java, Go, TypeScript, Rust and Python. The projects also left Clojure more often: a book editor in TypeScript and Tauri, a screenplay editor, and the tools themselves in Python. He still uses Clojure, though: “The experiments I’ve run suggest that python and clojure are the most efficient languages for the agents to use.”
October 2026: Grok Bots
xAI launched Grok Bot in August: persistent agents, each with its own computer in Cursor’s cloud, directed by chat. On 25 October he published ub-mode, a skill that has an agent first make the code work, then make it right, and holds it to his quality gates: CRAP under 10, no near-duplicate code, mutation testing. “My grokbots use it when writing code,” he said. An hour later he added: “I am transitioning away from using CLI agents for development. On my last project I transitioned to using grokbots.”
What the stack says
The tools changed three times in a year: Claude, then Codex and Grok in terminals, then Grok Bots in the cloud. What stayed is the discipline he has argued for since the 1990s, now enforced by tools rather than reviewers: tests, complexity limits and mutation testing. He just set the limits differently for agents. “In my own code I limit cyclomatic complexity to 4 or so. But I allow agents to go as high as 10,” he wrote in October. “My hypothesis is that their short term memory is larger and more accurate than ours.”