10 Claude Code Settings You Need to Fix Today
Photo by Arnold Francisca on Unsplash

As you read, If you noticed Claude getting significantly worse at coding recently, it was not the model.

Anthropic silently altered the default configuration parameters.

In March and April 2026, the developer community collectively noticed a drop in Claude Code’s performance.

The agent was thinking less, writing worse syntax, making fewer tool calls, and stripping out comments.

A couple of developer wrote their comments, revealing that the model itself had not degraded. Anthropic had simply lowered the default execution effort from “high” to “medium” without an explicit announcement.

When I was building the predictive pipelines for BoutPredict, I had experienced this exact friction. I had moved to Codex.

The agent started taking shortcuts on complex Python data transformations.

The problem was not the LLM. The problem was my local configuration.

So, what are the 10 hidden settings most developers never touch, and the exact architecture required to reverse the March/April 2026 nerf and turn Claude Code back into an enterprise-grade execution engine.

The Compute Engine (Reversing the Nerf)

1. The Effort Parameter

Because the default effort was throttled in March, the agent actively avoids deep reasoning.

You must force the engine to utilize its full compute allocation.

The Fix: You can type /effort high mid-session, but the structural fix is to lock it in your shell configuration (.zshrc or .bashrc).

export CLAUDE_CODE_DEFAULT_EFFORT=high

2. Adaptive Thinking Disabler

Since February 2026, Claude autonomously decides how much compute to allocate per turn. On tasks it flags as “easy,” it bypasses the thinking step entirely, leading to catastrophic downstream bugs.

The Fix: Force a fixed reasoning budget for every single turn.

export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1

The Permission Architecture

3. Default Permission Mode

The default installation asks for human permission for nearly every tool call. One developer tracked 47 confirmation prompts in a single morning. You are acting as human middleware.

The Fix: Open your settings.json and change the default mode to acceptEdits for trusted repositories, or plan for unfamiliar codebases.

{ "permissions": { "defaultMode": "acceptEdits" } }

4. Allow and Deny Rules

Without explicit rules, Claude will pause to ask permission for basic commands like git status, or worse, it will silently read your .env and .ssh directories.

The Fix: Hardcode your boundaries in settings.json.

{
"permissions": {
"allow": ["Read", "Glob", "Edit", "Bash(git status)", "Bash(npm run *)"],
"deny": ["Read(**/.env*)", "Read(**/.ssh/**)", "Bash(sudo *)"]
}
}

Token Economics & Routing

5. Mid-Session Model Routing

Using Opus for a simple regex question burns capital. Opus costs five times more than Sonnet.

The Fix: Route dynamically. Use /model sonnet for 80% of your daily coding. Switch to /model opus only for complex architectural refactors, and drop to /model haiku for rapid formatting.

6. Targeted Compaction

When context windows fill up, running /compact generically summarizes the session. Critical architectural decisions are immediately lost.

The Fix: Direct the compaction mechanically.

/compact preserve all architecture decisions, file paths mentioned, and error messages

Photo by Sunil kumar on Unsplash

7. Persistent Project Memory

If you re-explain that your project uses pnpm every morning, your workflow is broken.

The Fix: Use /memory add "this project uses pnpm, not npm". This persists locally and is read at the start of every session for that specific project.

8. Cap the MCP Token Bloat

Model Context Protocol (MCP) servers are powerful, but each connected server loads over 18,000 tokens of overhead per turn. If you have five idle servers attached, you are burning 90,000 tokens before you even type a prompt.

The Fix: Run /mcp and aggressively disconnect servers you are not actively using for the current sprint.

Automated Filesystem Hooks

9. Post-Tool Auto-Formatting

If Claude writes code and you manually run Prettier afterward, your execution loop is inefficient.

The Fix: Add a PostToolUse hook in settings.json to automatically format .ts files the moment the agent finishes writing.

{
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.ts)",
"hooks": [{ "type": "command", "command": "npx prettier --write $file" }]
}
]
}
}

10. Pre-Tool Log Grepping

If you command Claude to read a 10,000-line server log, it will consume massive context and likely lose the plot.

The Fix: Use a PreToolUse hook to pipe the file through grep first.

{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash(cat *log*)",
"hooks": [{ "type": "command", "command": "grep -n 'ERROR\\|WARN' $file | head -50" }]
}
]
}
}

The difference between Claude Code working for you and working against you comes down to two environment variables and one JSON file.

Take 60 seconds to export the high-effort parameters to your shell, map your allow and deny lists, and set up your formatting hooks.

Stop blaming the model and start engineering your environment.

In case we are meeting for the first time, come over here, it’ll be worth the roller coaster of articles that are gonna come up in the next few weeks.

I swear tracking these updates is a job in itself, lately.

Here’s the list which I’ve built and keep adding on.

And If you need help for analyzing UFC fights, please check out BoutPredict :)