Back to Blog

Put 'Challenge My Assumptions' in Your CLAUDE.md

Fazm Team··3 min read
claude-mdai-agentsdeveloper-workflowcode-qualitybest-practices

Put 'Challenge My Assumptions' in Your CLAUDE.md

I put "challenge my assumptions before implementing" in my CLAUDE.md. Now it argues with me before doing anything. This is genuinely one of the most useful directives I have added.

The Problem with Obedient Agents

By default, AI agents do what you ask. You say "add a caching layer here," and they add a caching layer. You say "rewrite this in Rust," and they start rewriting. They do not ask whether you actually need a caching layer or whether Rust is the right choice for this particular component.

This is a problem because developers - especially when moving fast - frequently request solutions to the wrong problem. The real issue might be a missing database index, not a missing cache. The real bottleneck might be network latency, not language performance.

What the Directive Does

When you add "challenge my assumptions before implementing" to your CLAUDE.md, the agent pauses before executing. It asks questions like: What problem are you solving with this change? Have you considered alternative approaches? What are the tradeoffs of this approach versus the simpler option?

This feels annoying the first few times. Then it catches a bad decision and saves you a day of work. After that, you never remove it.

Practical Variations

You can tune the directive for your style. Some options that work well:

  • "Before implementing any architectural change, list three alternative approaches and their tradeoffs."
  • "If my request seems like it could be solved with a simpler approach, suggest the simpler approach first."
  • "Ask clarifying questions about requirements before writing code that touches more than 3 files."

The key is matching the agent's pushback to the stakes of the decision. You do not want it questioning every variable name, but you do want it questioning every new abstraction layer.

Why This Works

The agent has context you might not be thinking about. It has read your entire codebase, your tests, and your existing patterns. When it pushes back, it is often drawing on information you forgot or never noticed. The directive gives it permission to use that context proactively instead of reactively.

More on This Topic

Fazm is an open source macOS AI agent. Open source on GitHub.

Related Posts