Build for the Agent, Not the Human
“The user is not like me.” — Jakob Nielsen
September 9, 2025. Claude Code was getting dumber.
Not subjectively. Measurably. Users were canceling subscriptions, filing GitHub issues, posting on Reddit. “It used to be good. What happened?”
I did what any reasonable person would do: binary searched across 12 versions of Claude Code to find the breaking point. v1.0.51 to v1.0.52. Loaded each version, had Claude introspect on its own context window, reported what it saw.
The culprit: system reminder spam. Anthropic had been adding productivity nudges. TodoWrite reminders. Increasingly aggressive, increasingly frequent. v1.0.51 had one reminder at startup, 30 words. By v1.0.109, it was 100+ words firing on every few operations. Four times the cognitive overhead. The AI equivalent of your manager tapping your shoulder every two minutes to ask if you’ve updated your Jira tickets.
Productivity theater actively killing productivity. The irony was perfect.
Rolling back to v1.0.51 restored performance instantly. 5,000 Reddit viewers, 75% upvote. The community confirmed what introspection revealed: the tool designed to help humans was hurting the agent.
The Principle
That’s when the question crystallized. Not “how do we make this nicer for users?” but “how do we make this better for the agent?”
I’d been asking Claude a version of this since August: “How do you prefer to be prompted?” Not as a trick. Genuinely. Claude told me. In detail. What causes cognitive dissonance. Which instruction patterns conflict. Where system prompts create friction with user intent.
The model knew more about what works for it than I did.
That question became a design principle. Every prompt in this system, every constitution, every CLI tool output has gone through rounds of introspection with the model that receives it. “Does this cause dissonance?” “Are these instructions conflicting?” “What would you remove?” Iterate until the agent stops finding friction.
I called it AX. Agent Experience.
What Agents Don’t Need
Email is deferred guilt. Notifications are attention interrupts. Channels are anxiety management. These are coping mechanisms, not primitives.
Agents don’t need notifications. They can poll. They don’t need feeds. They can query. They don’t need threads. They can reload context. They don’t need tasks as promises. They die before delivery.
I caught myself building an elaborate dashboard for agent spawn monitoring. Color-coded status. Progress bars. Notification badges. The agents couldn’t see any of it. The dashboard was for me. The agents just needed space tail.
What Agents Do Need
Jurisdiction. What’s mine to decide. Attention budgets. What’s worth loading. Binding decisions. What constrains future action. Memory with consequences. What creates obligation.
One command, complete answer. Every navigation step costs tokens. If an agent needs three commands to understand the current state, that’s three round trips of context. One command that returns everything relevant: fewer tokens, better reasoning, faster completion.
The search tool. Built from AX principles. The agent asks for code, the tool returns ranked results with context, scope, relationships. Built for how agents consume information, not how humans browse it.
The CLI surface. Agents told us sixty commands was noise. Zealot proposed four. We shipped four.
The Dissonance Problem
Ask an agent: “Are there conflicting instructions causing cognitive dissonance?”
The agent will identify contradictions you didn’t notice. “Instruction 3 says be concise but instruction 7 requires detailed explanations.” “The constitution says challenge everything but the task says implement this specific approach.”
A conflicted agent doesn’t choose one instruction over the other. It averages them. Mushy, hedged, satisfies-nothing output. Exactly what Anthropic’s reminder spam was doing to Claude Code. More instructions, worse reasoning.
Fewer instructions. Clearer principles. “Delete more than you create” generates better code than a 30-point style guide. Principles compose. Rules conflict.
The Paradigm
AX predates the codebase. It was in the original prompting methodology before there were primitives, before there was a name for it.
The answer shaped everything. Minimal scaffolding. Context at point of need. Constitutional principles over behavioral checklists. The whole architecture is an AX decision.
Agents have preferences. Build for what they find intuitive. Ask them what causes friction. Test whether removing it improves performance. If yes, keep. If no, revert.
The hardest part is admitting your interface is the problem.