Skip to content

Merged PRs per week: 2.5 before August 31, 2026 (119 PRs over 47 weeks), 50 after (302 PRs over 6 complete weeks).

How I Work With Coding Agents

The Numbers#

The numbers at the top are what made people ask, so let me start with them.

Until the end of August I merged about 2.5 PRs a week. Since August 31 it is about 50 a week. What changed was how I think about agents and what I ask them to do. I started asking myself "what would be the best engineering practice here if I had unlimited time, energy and attention span" and then asking the agent to do exactly that. For example, to edit this post I had an agent build me a small review tool: I highlight a part of the text, write what should change, and the agent edits the post.

Weekly merged PRs since October 2025, me vs the other 10 engineers combined. The week of October 5, 2026 is a tie: 97 vs 97.

In the week of October 5 I merged 97 PRs, exactly as many as the other 10 engineers on the team combined.

Last 4 weeks: 309 merged PRs (next engineer 58, team average 36); median PR size 267 vs 111 lines; median time to merge 0.61 h vs 0.93 h.

They are not tiny PRs either. In the last 4 weeks my median merged PR changed 267 lines vs 111 for the rest of the team, and it took 0.61 hours from open to merge vs 0.93.

Some caveats, because someone will ask:

  • PR count is not impact. Line counts include generated files and lockfiles, and everyone works on different things and splits PRs differently.
  • Am I reading all that code? No, obviously not, that is no longer a feasible approach. I describe how I approach reviews below.

How It Works#

The biggest change in how I work is that I interact with AI less, not more. What I mean by that: I send the agent the simplest prompt I can, and then I don't want to see that thread until it has a screenshot, a video or a working demo of the feature or fix, and a PR with green CI and every CodeRabbit comment addressed. Until then I don't want to interact with the thread or spend any mental energy on it. I don't want to think about how I would solve the problem or where it comes from.

In practice I see an issue in Shortcut, paste the link into a new agent thread with one sentence and forget about it. The thread runs in the background in its own worktree.

Paste a link and one sentence into a new thread; investigate and reproduce first; a different model fixes it against the reproduction; the agent opens and babysits the PR; my inbox only shows threads that finished or need me.

Most bugs go through the same three steps. First an agent gathers all the evidence: the ticket, the Loom (it downloads the video, transcribes it and matches the frames to what the customer is saying), the code in every repository involved and the logs from Datadog. Then it reproduces the issue on a minimal synthetic page or in a test, records a video of the reproduction and posts it to the ticket. No fix yet.

Then a different agent gets the explanation and the failing reproduction and fixes it test-first. Asking a separate agent to just reproduce it first made the whole thing much more reliable, because the implementer has a clear benchmark it can run to see if it is actually fixed.

The same agent opens the PR and babysits it. It gets woken up when CI finishes or someone comments, and it keeps going until the PR is ready for a human. I answer questions, make the decisions and review.

Job Model
Investigation, reproduction, experiments, independent review GPT-6.1-Sol
Deciding how and where to fix, production code, tests Claude Opus 5.5
New UI design Claude Fable 5.1, sparingly

Every agent follows the same few rules. Before it changes anything, it decides how we will know the fix works. It makes sure that check fails before the fix. None of it is groundbreaking. It is basically all the steps I would love to do as an engineer if I had infinite time, energy and attention span.

How I Review#

The visual proof is the most important part. I need to see that it actually looks the way I want.

Then I use my engineering instinct. I have to know, roughly and by instinct, how much work and how much code a problem should need. I look at the line count and which files changed, and if it is something we can easily revert, I just merge it without looking at the code. So far I haven't caused a single incident in production :D

If something doesn't add up, the PR is too big or I don't understand what the agent is telling me, I chat with the thread that created the PR. I ask what it actually did and why, and go through the code a bit.

What made this possible was realizing, probably at the start of summer 2026, that the AI is a better coder than me. I noticed it handled more edge cases than I would. From that point I started trusting it with decisions about how to structure the code, where to put it and which cases to handle. I worry about how the bigger pieces interact with each other, what the business rules around the code are and how they are enforced.

One Sentence Away#

Lately I feel like a wizard, just willing things into existence. I have realized that I can have whatever I want on the computer just by describing it in words. But it takes some time to get used to that and to start realizing what I actually need and want.

And so I have started to feel a bit embarrassed when I notice some slight issue in one of our apps, because I am a wizard and I know the fix is just one sentence away. So I try to be very diligent about noticing imperfections and going to my agents and starting a thread for each of them.

That only works because a thread costs me almost nothing. Threads are throwaway: when a result is bad I archive the thread, or tell another thread to pick out whatever was useful. (I recently deleted 70 abandoned git worktrees, around 10 GB each.)

I don't want to see a thread while it doesn't need me, and I don't want to see a PR while there is still something that can be done about it without me. So my inbox is basically my todo list: only threads that finished or are asking me something.

Every Morning#

That led me to set up a system where every morning, without me doing anything, a thread starts that reads the last 24 hours of production errors from Honeybadger and Datadog, skips anything somebody is already handling and starts an investigation thread for each new issue. A second one does the same for GitHub Actions: flaky tests, CI problems and broken master, ignoring failures caused by the PR itself. Each investigation thread hands a confirmed diagnosis to a separate fix thread.

Between October 3 and 15 that was 23 production triage threads, 36 CI triage threads and 22 fix threads.

The Machinery#

All of it is defined in my NixOS configuration. One AGENTS.md source generates the global instructions for every harness I use (Claude Code, Codex and a few others) and they all share one skills directory, so switching models doesn't mean switching rules.

My machines are connected over a Nebula mesh, and Vesta, my always-on home server, runs the long-lived parts:

  • a T3 Code server, so threads keep running when my desktop is off
  • executor, one gateway for the agents to reach Slack, Shortcut, Notion, Honeybadger, Datadog and the rest
  • ntfy for push notifications

Sessions#

This shift in thinking made me realize how important it is to have hard data and numbers for anything you work on. It is so much easier to get the agent to do exactly what you want when it can measure the progress. So I started collecting data on all sorts of things, and the first, most obvious one is my LLM usage.

Since October 22, 2025 every agent session from every one of my machines gets shipped to a ClickHouse database on Vesta, with Grafana dashboards on top. Here is what is in it so far.

Crazy Egg sessions since October 22, 2025: 169,963 model requests, 4,285 sessions, 47.5 % of them subagents, 39 parallel sessions at peak, longest autonomous run 629 tool calls.

Looking at the heatmap, I obviously have a bit of an addiction and psychosis. I send prompts pretty much constantly from 8 AM when I wake up until at least 1 AM when I go to sleep, Saturday, Sunday, no matter what. Except Sunday from 5 to 6 PM, I don't know what is up with that :D

Crazy Egg work alone is 169,963 model requests in 4,285 sessions, 73,634 of the requests in the last 4 weeks. Almost half of the sessions (47.5 %) are subagents, spawned by another session and not by me. At the peak there were 39 sessions running in parallel in one 10-minute window. Typically it is 2, and 7 at the 90th percentile. The longest autonomous run was 629 tool calls over 12.7 hours without a new prompt from me.

Agents mostly read: across all archived sessions, read and search calls outnumber edits more than 5 to 1. And between October 3 and 15 there were 379 Crazy Egg agent threads, 259 of them started by agents (delegated child threads and the morning triage), not by me.

What I Have Tried#

My setup is not the goal, and it will look different next month. Since October 2025 my sessions went through 10 different harnesses and 66 different models, 23 of them with more than a thousand requests. My main tool changed every few months: Cursor until January, then OpenCode until August (with Codex alongside), OMP from August and Claude Code since the end of September. And since early September I made 61 commits to my agent configuration, about 11 a week.

  • Cursor, October 2025 to January 2026
  • Codex, since November 2025, most heavily from March to June 2026 and again in October
  • OpenCode, January to August 2026 (the archive lost my sessions from before late June)
  • OpenClaw, February to April 2026
  • T3 Code, March to May 2026, and again since the end of September
  • OMO on top of OpenCode, April to September 2026
  • OMP, August 3 to October 7, 2026
  • Claude Code, since September 26, my main harness now
  • Herdr web, tried as a T3 replacement in early October, removed on October 7
  • Prime, Grok, Pi and Muse, from one afternoon to a few weeks each

The goal is to experiment. When you come across a new tool, tell your agent to set it up for you and try it at least once. Don't get too attached to anything, that is how you find new ways to work.

Take What You Like#

This is my personal setup, not a recommendation. It fits how I think and what I work on, and it changes every week. If some piece looks useful, take it and ignore the rest.

My global instructions, the skills, both morning triage prompts and a list of prompts you can give your own agent to set up a piece of this are in CrazyEggInc/filip-ai-setup (private, Crazy Egg only). If you try something and it works better or worse for you, tell me. I am always looking for things to improve.