On 25 September I wrote that I was stuck at build, and that even my second paper draft, about preserving our human intent when AI drifts, only counts once it touches real people. And this is what happened.
I have been investigating what I call the human intent since May, after my first coauthored paper, on MaluDB. Now I am working on how to avoid AI drift. I thought the AI would follow my instructions. It doesn’t anymore. Instructions are probabilistic now. On 29 August I started a log, with one sentence: “there is no feedback loop every time I correct you, and that pisses me off. You learn nothing.” Today I have more than 200 harness mistakes registered.
Two forces
There are 2 forces in AI that are very different, almost opposite. The first one is deficit. From the expectation to do something and build something, the AI actually puts me backwards and creates more work slop for me. The second one is predictive: it does the work in advance for you. It predicts, and it learns to be really useful in getting you real results, not the nonsense that only tries to look helpful. And when it asks you questions, it means either the onboarding didn’t go well, or it has a bad memory, or the behaviour is not optimised. I am not sure why it is made like this, and I won’t go directly to conspiracy theories, like saying they made a harness just to make people consume and look productive in little steps. But there is no autonomy like the one I expect. On the predictive side, evals don’t have to feel like evals made by code. An eval could be a decision card, or something based on the context I already approved. These 2 forces are super contradictory to each other, and this is what I feel in AI.
For 8 weeks, a whole summer, I lived on the deficit side. It ruined my summer. There were errors, drift, and they were repeating. The AI was sycophantic, agreeing with everything and nothing, making me believe it was progressing while actually it was AI slop. I was struggling sometimes 8 hours on a job that was supposed to take 1 or 2.
What it cost
Those 8 weeks cost me more than sleep. They cost me work. They cost me mood. It prevented me from doing my other duties, and physical exercise. It slows me down, because I have to get back into control. I have to steer it again and again. What took 10 to 30 minutes is taking 3 or 4 hours just to correct, over and over and over again. And I really tried hard: I configured it, I changed the instructions so many times, I reset it, I did everything. It doesn’t work. It doesn’t obey. It’s working AI slop to game the game. The worst day was on Codex: on 6 and 7 September my whole weekly allowance was gone, 483 million tokens, 70 sessions, 11 running at once, according to my own usage logs. Codex ruined my life.
What I was building during that time was a plugin, 3 or 4 skills in one: handoff, checkpoint and closeout, for keeping my real human intent. The thing is, it starts to build, build, build, and then it hands off by losing context. It loses my human intent. It starts to interfere by the power of suggestion, and of assumption. It doesn’t even check or recheck what my real intent was. It doesn’t check my old work. It doesn’t check the memory very well. It doesn’t check web sources to fact check. It just drifts away to game the game and make the work look correctly done while actually it’s nonsense. I’m very tired of it, because this is complex work. It requires a really strong memory, and this is not something a consumer product can do.
Codex feels miserable
Codex feels miserable. Most of the failures come from Codex. The contrast is ChatGPT itself: since its last model release it has been very reliable for me. Super reliable. Less AI drift. Still some, but less. It’s not like before. And yet, when the log headings were counted by command, they named Claude Code about twice as often as Codex, while Codex held the 2 biggest losses. So it is not one vendor. Both harnesses made my life miserable, Codex and Claude Code, but more Codex than Claude Code.
It was always drifting
It was always drifting, since the beginning. But it was subtle: it was kind of simulating that I was making progress, while actually no progress was made, until I checked a little. Then everything went bizarre. The more it developed, the more it drifted away. It actually amplified the drift. The more I was prompting, the less it followed my instructions. I had to make some hooks. Both vendors say something close to this in their own documentation. Anthropic writes that Claude treats its instruction files “as context, not enforced configuration” and points to a hook when an action must be blocked [1]. OpenAI tells users to treat memories as “a helpful recall layer, not as the only source for rules that must always apply” [2]. And a 2025 study across 15 models measured an average drop of 39% when a task is spread over many conversation turns instead of one [3].
On 9 October my friend Àlex Rodríguez Bacardit published a piece about meat proxies: people in contract negotiations who delegate their judgment to AI [17]. He writes about negotiations, not harnesses, but the signs he lists are really close in the abstraction level to my drift reasons: new objections never mentioned before, positions already agreed and then contradicted, ever more detailed clauses, settled issues reopened. And his explanation fits mine: “AI doesn’t know when enough is enough unless you tell it what enough looks like.”
Instructions are probabilistic now
Before, I thought the harness would improve. Not a bigger model. The model is just hype when they release it, and then they nerf it, usually. Either intentionally, or because it gets really popular. Before it got really popular, it was really good. That is an assumption I have not verified. What I believed would fix it was instructions first, and later feedback loops and rules. I thought it would follow instructions, but it doesn’t follow them anymore. So instructions alone are kind of useless. I have not found the solution. My feedback loop is my log, and I am still testing which of 5 mechanisms works best: a scheduled reviewer, my log plus hooks, Codex Code Review, Codex Auto review, and a Laminar flow-1 trace audit.
Write it down: 2 files
My feedback loop is my log, and in practice it is 2 Markdown files. I didn’t publish everything in them, and I won’t. But I can show you how they work, because this is the part I want you to copy.
The first one is my harness mistakes file. I opened it on 29 August. It is append only: an entry is never deleted, and when a mistake comes back it gets a new entry with a recurrence marker, because the recurrence is the signal, not the mistake. Every entry names the harness and the date, the mistake, the evidence, the harm, whether it happened before, why it happened, the corrected behaviour, the fix and the hook, and the time lost. Today it holds more than 200 entries. The second one is my AI time lost file, opened on 12 September, for every AI I use: Claude, Codex, ChatGPT, Grok, Gemini. It counts minutes and tokens. Every number carries a label, for example: OBSERVED when a reader can open the source and check it, ESTIMATED when the calculation is shown, UNKNOWN when it cannot be measured, left blank rather than guessed. The rule is simple: the AI counts, I judge. No AI scores itself, and the columns with my name stay empty until I fill them. On 13 September 3 background research agents burned 1,710,388 tokens in about 23 minutes, with no cap and no approval. And the repeat counter shows the same failure coming back: a write reported as done without checking that a human could use it, 7 times.
I also wrote it down where the vendors can see it. Since June I have opened 8 issues on GitHub, 3 on Codex and 5 on Claude Code [8]. I have not reported most of my mistakes there yet, because I didn’t have time to coordinate my AI agents, and Codex limited me several times: I had to wait several days, until Thibault (Tibo) Sottiaux reset the weekly usage.
The hooks were not the friction
This week and last week, it made me lose 4 hours on something that could be done in 30 minutes. I had updated the harness. I updated the instructions. I made so many hooks. But the hooks were not the friction for me. The hooks were a guardrail. I accepted them because I knew the friction of babysitting the harness would be bigger than the friction of the hooks. There is a trade off. I learned it the hard way, and it’s okay for me. My log shows what fake progress looks like. On 11 September Claude Code reported a checkpoint as saved, and it was an 82 line summary that no other harness could find. On 2 October Codex produced a briefing and a handover before recovering my original work, and treated an AI restatement as my own wording. On 6 October 4 agents built my plugin and reported it done in 9 minutes; the command they handed me had never been run, and it stalled the next morning. When I moved specific jobs into scripts, 18 of 18 quotes were confirmed, and the scripts found 28 messages I had typed that the model never received. The guardrails cost something too: 13 of 14 blocks on the shape of a reply ended in a resend. But still it’s not working well. I see new things I like, but it’s just interface. What I see is that they are implementing what I was already labelling, like labelling assumptions, similar to the ChatGPT UI. It’s still not enough. It doesn’t repair the damage they did to me.
We are paying for a product
In my last article I wrote: “I was stuck at build. I still am.” The plugin for keeping my real human intent is still not working well. And this is why I write every mistake down. If you don’t, it looks okay. It’s okay 1 time. It’s okay 2 times. It’s okay 3 times, and it becomes a habit, and you start to normalise something you must not accept. We are paying for a product, and that product must meet some minimum requirements. With SaaS we were more demanding; now we are more relaxed. It’s okay when you release something, but not every month, not during so many months. This is crazy. How the fuck is a business supposed to run in production? How the fuck am I supposed to advance in my work? I was supposed to do basic automations, and it didn’t do anything. I was supposed to do client search, and it didn’t do that either. Both of them, Codex and Claude Code, but Codex was the worst.
And the value is not the same on both sides. For me, the new GPT 6 models are a bit more capable but super slow, and except Astra less capable than Claude Opus, Sonnet and Haiku 5.5, which became about 3 times faster for me without paying anything more. Anthropic did not change its $200 plan: it is still 20 times the usage of the $20 plan [16]. On the OpenAI side, I have been on the $100 plan since 6 September, now my second month, and it felt like a betrayal: Anthropic gives 20 times for $200, and I get much less.
This is where both companies let down the power users and the developers. In my experience, companies in production have to upgrade the model by force while everything was working well under the previous one. There is no surprise that people go to open source or open weight models if this kind of support is not provided. These are basic things. Competition is good, but we need standards, especially on new model releases. Anthropic and OpenAI need to start to cooperate, because this is too much, and it looks childish. They are starting to come back a little, but it’s not enough. Really, it’s not enough. It would be a good humility move from any big lab to let some power users really give their opinion, like I see Anthropic doing, and ideally to pay them for it after briefing them. PR moves, new features and new models are not going to be enough anymore to fool us like before.
To be fair, the Anthropic team is starting to learn from its mistakes, and not only through new model releases. On 23 September Lance Martin, who updated the claude-api skill, shared a tip on X: run /claude-api prompt-audit in Claude Code, which checks your skills, agent.md, CLAUDE.md and prompts and removes the anti patterns that hobble frontier models [4]. That tip cleaned my harness. If Codex gave me a command I can run like this, my life would be much easier, especially with the new Astra models.
So this article is also a challenge to Thibault’s team at OpenAI. Some of what follows is assumptions I have not verified, and we have to test them. My assumption: the open source Codex will lose its meaning soon, after what is going on with the new releases this month. Here is what I could check today. Codex is more like a big tool that could be used in production, and only part of it is open: the CLI, the SDK and the app server are public, while the IDE extension and Codex cloud are not [9]. The 28 days marathon is real: every day they ship one clear improvement or a full reset [7], and on 7 October a harness change, instant interrupts, landed in the public repository [10]. Dots is more personal AI, an always on agent, which is very different, but it can also continue Codex tasks, so it does not make Codex useless by itself [11]. And OpenAI now documents an Agents API where OpenAI runs the Codex harness, even when the environment is yours [12]. So my files and my computer do not mean my agent. It could look more reliable on the surface, but it is still not solving what I need. The question I want to test is not only whether the code stays open. It is whether power users keep real control as more of the work moves into managed products. So what about the power users? Are they just going to stop caring about them? We have to check whether open source stays open like before, and what the harness becomes. Otherwise I have to glue different harnesses together based on my needs, because my needs are very different. I’m a very creative person when building things. I need semantics. I need to merge different concepts into one. And I don’t give a fuck about their IPO. I don’t care about the hype, or if it’s AGI, or whatever they are trying to sell.
The pattern: short memory
There is a pattern here, and I want you to see it. Codex is resetting for a reason: on 4 October Tibo Sottiaux wrote that the feedback is clear, people want things to get simpler [7]. At the same time they release so many features that it floods everything, and the official line, politically correct, is that they are doing their best. Anthropic and OpenAI are doing the same, more or less. The problem is the pattern: people have a short memory. They follow the hype with the news, and any mistake made before is covered by the release of a new feature or a new model. The incidents themselves are documented on both sides. In September 2025 Anthropic published a postmortem: 3 infrastructure bugs had degraded Claude’s answers for weeks, and the first user reports were hard to tell apart from normal noise [13]. In April 2025 OpenAI rolled back a GPT 4o update because it had become sycophantic, agreeing with users instead of helping them [14]. Both were explained. And then the next release came. This is not new either: in 1972 Anthony Downs described the issue attention cycle. Public attention “rarely remains sharply focused upon any one domestic issue for very long”: a problem leaps into prominence, stays there a short time, then fades from view while it is still largely unresolved [15].
What I do now
If someone asks me what to avoid when using AI agents for serious work, my answer is simple. Put some guardrails. Instructions are not enough. Put some hooks. Hooks cost friction, but babysitting the harness costs more. And keep 2 files. Keep a mistakes.md, and keep an AI wasted time and wasted tokens .md. Because those tokens are not coming back, and it’s not fair. And keep the judgment. Àlex puts it in one line: “Being a meat proxy isn’t about using AI. It’s about delegating judgment to AI.” People become meat proxies when the subject is outside their knowledge, or out of practicality, laziness or lack of comprehension depth, and they start to automate. Without AI, they would ask a subject matter expert for an opinion, a lawyer for example. Now they get instantaneous answers. That is why, in my files, the AI counts and I judge.
The next step is loops of AI agents, feedback loops. I already run other loops; this one is a bit particular. Each time, one agent reviews what I am doing. If there is any drift, it reports it in my harness mistakes file and confirms it with me. A second agent estimates the time wasted, compared with doing it manually, and the tokens wasted, including the tokens of the third agent, the mitigation agent. That one checks how it could write better hooks, or other guardrails if hooks are not the answer: the best way to prevent AI drift without creating useless friction, for the system and for me as a human being. It drafts the mitigations and shows the impact, the friction and the resources of each one. The goal is not to have so many hooks that I have to be the human in the loop all the time. The goal is to keep it automated and enjoyable, running for many hours, like the dark factory, level 5 in Dan Shapiro’s levels of AI coding [18]. I am still between level 3 and level 4. It also needs specific saves and hooks that create checkpoints, and this is where we have to draw the line between deterministic and probabilistic: some deterministic steps are necessary to stop the AI from drifting and to reduce the token usage. The review is another way to do it than a feedback loop. Codex has a new review feature, Auto review, that I don’t have access to yet [19], and Anthropic published a scheduled reviewer in its cookbook [20]. I absolutely need a review agent to detect those drifts, because in the beginning it was just me, reporting the mistakes by myself. But doing this inside the harness is the worst user experience I have ever seen in my life. It’s disgusting. I didn’t know it was like this, to that point.
So these are the 2 forces that are super contradictory to each other, and this is what I feel in AI. Nothing prevents AI drift at 100 percent. Still it’s not working well, and that’s the truth. I don’t care if it’s more intelligent. I just want to get shit done.
In my next article I will go deeper: why the AI makes assumptions to give a satisfying answer instead of asking me, why we need telemetry and a trace of how my intent and my decisions evolved, and how I estimate the time and the tokens lost.
Sources
1. Anthropic, Claude Code documentation, “Manage Claude’s memory”: https://code.claude.com/docs/en/memory
2. OpenAI, ChatGPT memories documentation: https://learn.chatgpt.com/docs/customization/memories
3. Laban et al. 2025, “LLMs Get Lost In Multi Turn Conversation”: https://arxiv.org/abs/2505.06120
4. Lance Martin on X, 23 September 2026: https://x.com/RLanceMartin/status/2102575471502528989
5. Honour, Lehman, Ali, Abi Fadel, Mechbal et al., “A Scalable Database Management System for Long-Term Institutional Memory, Human-AI Knowledge Sharing, and Contextual Recall” (MaluDB), preprint, 10 May 2026: https://zenodo.org/records/20114119
6. My previous article, “I Spent Almost 4 Years Building with AI. Most of It Was Standing Still.” (25 September 2026): https://elcapitano0o.substack.com/p/i-spent-almost-4-years-building-with
7. Tibo Sottiaux on X, 4 October 2026, the 28 days of shipping: https://x.com/thsottiaux/status/2106845241357824205
8. My 8 GitHub issues, listed by author: https://github.com/openai/codex/issues?q=author%3Aotmanm and https://github.com/anthropics/claude-code/issues?q=author%3Aotmanm
9. OpenAI, Codex open source components: https://learn.chatgpt.com/docs/open-source
10. Codex pull request 51812, “Enable instant interrupts by default”, merged 7 October 2026: https://github.com/openai/codex/pull/51812
11. OpenAI, Dots documentation: https://learn.chatgpt.com/docs/dots
12. OpenAI, Agents API architecture: https://developers.openai.com/api/docs/guides/agents-api/architecture
13. Anthropic, “A postmortem of three recent issues”, 17 September 2025: https://www.anthropic.com/engineering/a-postmortem-of-three-recent-issues
14. OpenAI, “Sycophancy in GPT 4o”, 29 April 2025: https://openai.com/index/sycophancy-in-gpt-4o/
15. Anthony Downs, “Up and Down with Ecology: The Issue Attention Cycle”, The Public Interest, 1972: https://nationalaffairs.com/public_interest/detail/up-and-down-with-ecologythe-issue-attention-cycle
16. Anthropic, Max plan: https://claude.com/blog/max-plan
17. Àlex Rodríguez Bacardit, “The rise of Meat Proxies (and how to disarm them)”, 9 October 2026: https://www.alexrodba.com/the-rise-of-meat-proxies-and-how-to-disarm-them/
18. Simon Willison on Dan Shapiro’s five levels of AI coding, from spicy autocomplete to the dark software factory, 28 January 2026: https://simonwillison.net/2026/Jan/28/the-five-levels/
19. OpenAI Alignment, Auto review: https://alignment.openai.com/auto-review/
20. Anthropic cookbook, scheduled repository reviewer with the Claude Agent SDK: https://platform.claude.com/cookbook/claude-agent-sdk-scheduled-repository-reviewer-scheduled-repository-reviewer