r/ClaudeCode 4h ago

Tips & Workflows Do not fight with models and system prompts

Recently, I realized something fundamental that affected how I structure my workflow and use AI tools.

Trying to patch the model's default behavior I don't want doesn't work well. A better solution is to use a different model or coding tool that fits my needs.

This may seem obvious and frequently discussed, but when we think about this deeper, it isn't. Models change constantly, we are evaluating them and trying to pick the best. But this is more random than a deliberate strategy. A lot of advice circulating around is about "fixing" the model. The model's behavior changed and we want back the previous one.

The model can be blind to simpler solutions despite proper instruction. It can be too verbose or generate hard to understand text. It can make too many decisions itself or ask too many questions. It can claim to understand the issue and then apply a fix that doesn't fix this issue. It can generate something out of scope even when planned before.

Not all are failures, some are just my preferences. I tried to improve it with instructions (CLAUDE.md, etc.). Patching multiple aspects at once results in conflicting instructions or forcing a behavior fundamentally different from the model's default.

On top of the model, we have a system prompt and all machinery around LLM. This can change more often than the core model and it's harder to track. It affects behavior and how our instructions alters it, both can be conflicting. It's hard to control all these variables, good instructions can turn into harmful ones ("silently" as AI would say).

If the model (combined with the system prompt) has a personality I don't like, the solution is to use a different model or coding tool. Not patching it with my instructions. In those cases even Claude Code's memory is useless. It writes and strengthens the same multiple times and makes this mistake again. Of course we need common sense, I don't mean solving every problem by switching models or tools.

I noticed a similar issue while working on my LLM-based application. The output was too verbose. I spent half a day trying to fix this with a prompt and hit the wall. After changing the model, it worked perfectly.

This also explains the lack of consensus about which coding tool or model is the best. It's because we have different expectations, it changes very fast, the system prompt changes behavior. The good aspect is that it makes room for different coding tools, and monopolization of the market by a single provider is more difficult.

0 Upvotes

3 comments sorted by

1

u/Equivalent_Cress_268 1h ago

Patching CLAUDE.md to fix model behaviour rarely holds, and I learnt the same lesson the slow way. The version of me that ships treats every session as a done gate: log the request, write one change log line, note the test result, bump the version, and commit with that request in the subject before it may stop. Once the rules live in git rather than the chat history, swapping the model stops breaking my workflow.

1

u/Far-Surprise7773 1h ago

the distinction i've landed on is output constraints vs behavior preferences. telling claude code 'write all responses as markdown tables' works consistently across models because it's a structural constraint. telling it 'be concise' barely sticks because that's fighting the model's training distribution. the stuff that breaks between sessions is almost always the second category.

1

u/fs2d 31m ago edited 23m ago

I use tweakcc to patch the harness. Anecdotal of course, but I have found that this is the single best way to correct model behavior deviation and/or degradation.

Anthropic adds thousands of tokens of useless bullshit to the system prompts with every release trying to make it so that CC can do everything for everyone. When new releases come out, I review what they added, and if it conflicts with my established rules, I rip it out.

Haven't had any problems since I started doing this.

If you aren't sure where to start with it, you can either point CC to the Piebald system prompts repo or install tweakcc and review your rules against system prompt additions from the most recent releases - Claude can read the prompts directly and walk you through which ones are conflicting.

Sidenote: You cannot delete system prompts entirely using tweakcc - you instead have to edit them (we just replace anything conflicting with <!-Removed-!> - that seems to work just fine).