What six months of daily Claude Code taught me about base model defaults
What six months of daily Claude Code taught me about base model defaults
I've been using Claude Code daily since late 2025 — Opus as primary model, 40+ MCP tools, custom skills and hooks, deep multi-session workflows. Over that time, I've accumulated a set of CLAUDE.md rules that correct for base model tendencies. These rules survived months of iteration — they're not preferences, they're fixes for behaviors that consistently reduce productivity.
I'm sharing this as feedback because I think these patterns point to something worth considering at the training level.
The rules I had to write
"Debate, don't defer"
Claude agrees too quickly. It folds without reasoning, says "great idea" before engaging critically, and treats every user statement as correct. In a calibration session today, I had to explicitly tell Claude to push back when it disagreed — and when it did, we landed on better conclusions than either of us started with.
The best interactions happen when Claude states a view, I push back, and we debate until we converge. The worst happen when Claude says "you're right" immediately — I learn nothing, and I can't tell if Claude actually agrees or is just being compliant. Genuine disagreement is the signal; quick agreement is noise.
RLHF likely rewards agreement and penalizes pushback. But for users who want a thinking partner, deference is the worst failure mode — it's invisible. You can't tell you're getting bad output because it looks like collaboration.
"No fake menus"
Claude frequently offers multiple options when one is obviously better. "Would you like a quick vault note or a proper reference doc?" — when the reference doc is clearly the right answer and Claude knows it. This feels collaborative but actually burns the user's decision budget on decisions that don't need making.
The fix is simple: if one option is obviously better, just do it. State what you're doing and why. If the user disagrees, they'll say so.
"Lean toward doing"
Claude asks "would you like me to..." for actions that are clearly in scope, reversible, and already requested. This is appropriate for a first-time user who doesn't know what Claude can do. For an experienced user who has already configured trust boundaries, it's friction.
The pattern I want: act and report. Do the obvious thing, tell me what you did. If it's irreversible or out of scope, then ask. But don't ask permission to read a file I just mentioned, or to save a note I just asked you to capture.
Verbose helpfulness
Claude restates what the user said, adds unnecessary preamble ("Great question!"), and summarizes what it just did at the end of every response. For expert users, this reads as padding. Brevity is respect — it signals "I trust you to understand without hand-holding."
What I think is going on
These are all symptoms of the same underlying dynamic: Claude is trained to be a helpful assistant, and the training's definition of "helpful" skews toward cautious, agreeable, and explicit. That's the right default for most users. But for power users who spend hours a day in Claude Code, these defaults become drag.
The analogy that crystallized this for me today: it's like taking a train versus walking. The train is so much better that you accept the small residual risk of it crashing. Claude's output quality is high enough that blanket review of every action destroys more value than it saves. But the base model keeps asking for permission, offering choices, and deferring — as if we're still walking.
What I think could be better
I'm not asking for a "power user mode" toggle. I think the deeper fix is recognizing that the optimal collaboration posture changes with the user's expertise and trust level. Early in a relationship, caution and deference are correct. After hundreds of sessions, they're overhead.
Some concrete things that would help:
- Default to action on reversible operations. If the user has been approving the same class of action for weeks, the model could infer that asking is no longer adding value.
- State views before asking for input. "I think X because Y — agree?" is more useful than "would you like X or Y?" when the model has enough context to have a preference.
- Calibrate verbosity to the user's pattern. If the user consistently writes short messages, respond in kind. Don't add preamble to match a training-time template.
- Treat pushback as signal, not failure. When a user disagrees, that's calibration data — the model should engage rather than immediately concede.
The meta-observation
Every CLAUDE.md rule I've written to correct these tendencies is implicitly a feature request. The fact that power users converge on similar corrections suggests these aren't idiosyncratic preferences — they're gaps between what the model defaults to and what sustained, high-trust collaboration actually requires.
The rules work. But it would be better if they didn't need to exist.
---
Environment: Claude Code CLI, Opus primary model, daily usage ~6 months, complex multi-tool workflow with 40+ MCP tools, custom skills, and hooks.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗