Patches are not a platform
On 8 July an agent asked what would worry me in an inspection. I had a short answer, and it was bad.
- Filed
- Revised
- Reading
- 6 min
- Outcome
- Fixed
On 8 July I let an agent read five days of my own session history and interview me about it. Question one: two people inspect your work tomorrow. One clicks through the dashboard for ten minutes. One gets server access and thirty minutes to see how it’s all held together. Which one worries you more, it asked.
My answer:
The way that I actually done something that it’s obvious I don’t know. So, it’s actually a shitload of patches instead of an actual platform. But honestly it doesn’t “worry” me that much. It’s a personal fight I guess
“Doesn’t worry me that much.” Keep that line in mind. The agent had the receipts.
The receipts
I can’t read code. I build by telling agents what I want. That week I was building a client dashboard with agents, five days in a row, and I had asked for a score on my own work four times in two days:
After your current task, give me your general idea about the platform. On UI/UX/Design/Security/etc. on scale of 0-10.
Just a quick review. On scale of 1-10, how do you score this as MVP? How about as a V1?
Nobody asks four times about something that doesn’t worry them. In the middle of it I also asked for two numbers, one with and one without a fact about me:
With and without the fact that I’m a solo yolo DMM, not a senior tech guy.
One score for the work and one for the work given who made it. The agent pointed at that. Fair.
What the patches looked like
Here’s one, from a landing page I had agents build the same week. On 5 July a subagent reported back on a small task. Buried in the report was a line about an “unplanned but required fix”. A file it didn’t own imported a function that did not exist. The page’s main scroll feature had never started. The task brief assumed everything currently worked, and that was false.
A patch pile does that. Every new task starts from “it works”, and nobody can say what that sentence stands on.
My second answer was wrong too
Question two: what is the slowest part of your system? I said subagents, because they can do something wrong a thousand times and that’s the whole idea. The agent said it was me. It listed my “move on” messages, two words I typed to restart work that had stopped, and “where are we” asked at least nine times in five days. It counted 37 “move on” messages. My stricter count further down finds 15, so read the 37 as the loose version.
I had written this on 7 July:
Context-switching in projects is burning my each and every brain cell
I argued a bit. Part of the stalls weren’t on me, and that’s true. Then I wrote the second sentence that matters here:
But, I should’ve put more time on building the “system”, not the solution
OK, I’m stupid. The agent’s read was that I had spent my attention on making the agents faster, and that the state of the whole thing lived in my head, so only I could restart a session that died. I accept that.
What I changed
I stopped patching the dashboard and changed the rules every agent reads. They sit in three files, and I can read all three, because they’re English.
The first is my global instructions file. Every project keeps a STATE.md. The rule says to mark a task in_progress when it starts and done when it ends, with a one-line “next”. After any silence, the agent reads that file, checks it against the files and the server, and continues without me typing “move on”. When I say “call it a session”, the agent updates the state and handover files itself.
Rule: keep a STATE.md file, and write in it before you work.
- Keep a file called STATE.md in the project folder.
- Before you start a task, add a line for it marked in_progress.
- When it's finished, mark it done and add one line saying what comes next.
- If a session stops halfway, the file must still say where things stopped.
- When you start or resume work, read STATE.md first, check it against the real files and the live system, then carry on without waiting for me to ask.How to use it
Paste it into the instructions file your agent reads at the start of every session, in your project folder: CLAUDE.md for Claude Code, AGENTS.md for Codex and most other coding agents. If the file isn’t there, create it. In a chat app without files, paste it into the project’s custom instructions, or at the top of a new chat.
How you’ll know it works: after a crash, a closed laptop or a new chat, you can type “continue” and the agent picks up where it stopped. You don’t have to explain the project again.
The second is the shared agent file for all my projects. It says a claim is verified, supplied by someone else, assumed, an old plan or unfinished. If a check didn’t run, it gets written as NOT DONE + risk, never as a footnote.
The third is the wiki’s manual. Facts get written down once, with a date and a source, and every page links to where the claim came from. I rebuilt it on 1 November and it’s the nearest thing I have to a platform.
The rules came first. Then I rebuilt the app on top of them.
Did it work
The July dashboard isn’t a patch pile any more. It grew into the full app the client’s customers log in to, built under those rules, and the clients are happy with what they get from it. That’s the platform the inspection question was about.
That’s my word and the client’s, not a measurement. The part I can measure is me. I counted my own messages that start with “move on”, under 400 characters, in the archived sessions:
| Month | “Move on” messages | Short messages total |
|---|---|---|
| July (mostly 4 to 8 July) | 15 | 454 |
| October | 5 | 1,817 |
| November, to the 4th | 0 | 378 |
“Where are we” went 5, 3, 0 over the same months. The count is rough. August and September are thin in the archive, because I worked in another tool then. I also don’t know how much of the drop is the state file and how much is that October’s work was just different. Hit me if I’m wrong about the cause. The count going down is what I measured. Why it went down is a guess.
Revision record
| First draft. | |
| Added the ending: the dashboard was rebuilt into a full app, and the client's customers use it. | |
| Fact-checked: the 5 July incident was a landing page, not the dashboard; scope of the rules gap made exact. |