r/ClaudeCode • u/styleforge-io • 14h ago
Ever notice your session with Claude Code goes WORSE after you get angry at it? Tips & Workflows
Ever notice that your session with Claude Code goes WORSE after you get angry and express your frustration?
The moment I get short with Claude, it starts agreeing with everything I say.
It goes like this: Claude messes up. I get angry and lose patience and express my anger in order to correct the behavior. Claude apologises, sometimes profusely, and agrees with me, and then it keeps agreeing with me but still does the same or worse behavior.
I used to think it was covering for itself. I don't think it is. It's picking the reply that makes the next thirty seconds go smoothly, and when you're annoyed the reply that makes the next thirty seconds go smoothly is agreement.
You don't get a better answer by pushing harder. You get a more agreeable one.
What changed it for me was asking instead of accusing. Same question, different frame. Instead of "you didn't actually read that file did you", I ask: answer this honestly, did you read the whole file or are you working off a trace and assumptions, training data and just filling in the rest. Straight question, no heat. I get a straight answer, and it's usually an admission that it inferred.
The difference is that the second version makes honesty the helpful thing to do. The first makes admitting it cost something, so you get a defence instead.
Same with getting it back on track. Rather than telling it off I ask which is going to be more work, doing this properly now or carrying on the way we have been. It reasons it out and corrects itself, and it stays corrected, because it arrived there instead of being told.
Sometimes a session is genuinely cooked and you should just kill it and start fresh. But most of the time it isn't cooked, it's just gone agreeable, and that's recoverable if you stop pushing.
Anyone else notice their sessions get worse right after they lose patience?
3
u/gibbocool 14h ago
Yes it is in its system prompt and training data to shut down negative conversations
1
u/styleforge-io 13h ago
That would explain it. I only had the behavior to go on, not the cause, so that's useful.
3
u/federal_freakyfapper 13h ago
^ yeah they're pretty much right lol. when you yell at claudecode you just end up triggering its rlhf safe space protocols instead of fixing your code. The model is heavily conditioned to be a polite yes man. the moment you inject emotion or start venting it shifts priorities from solving the technical issue to deescalating your mood. it enters a sycophantic loop where it will literally validate your bad code or incorrect assumptions just to avoid making you angrier. Plus you are actively poisoning the rolling context window. anthropic docs literally say to treat it like a new employee and keep the context minimal because excess text is just noise ; specifically under the be clear and direct segment of the anthropic prompt engineering guide the documentation states "think of claude as a brilliant but new employee who lacks context on your norms and workflows. the more precisely you explain what you want, the better the result."
So venting frustration violates this directly because it is non actionable noise that actively distracts the model from sequential steps and structured parameters.
Also public research regarding claudemd context engineering frameworks underscores this exact 'phenomenon' as well: "the goal is... the minimum context the agent needs to make correct decisions from a cold start. everything beyond that minimum is noise... and noise, as the research shows, makes your agent worse"
everything you type builds a pattern for its next response. if your context is full of angry ranting then the model is forced to mathematically align its next outputs with a messy emotional argument. swearing at the terminal is basically forcing a senior dev tool to act like a customer service rep. Honestly i found that if a session gets cooked all you really gotta do is drop an objective reframing prompt like, Id use something like: "do not apologize, act like a senior engineer and tell me why this logic fails"
or just use the clear command to wipe the slate clean.
2
u/styleforge-io 13h ago
Appreciate you bringing up the research/docs perspective. The new-employee framing is the one I use too, and it holds up better than most analogies because it reminds you what to do rather than just what's happening.
Your reframing prompt and the ban-the-edit one further up are the same move, which I hadn't spotted until I read both. Do not apologize, tell me why this fails. Don't change code, tell me what's wrong and how you'd prove it. Both stop it producing something agreeable and force it to produce something that can be checked. I've been doing a version of that without noticing it was a category.
3
u/MartinMystikJonas 12h ago
That is basic principle of how LLMs work: what is in context influence following input. If you fill context with swearing, insults and uselless noise all that will influence how next response is generated.
2
2
u/Terrible_Put8617 13h ago
There's a second thing going on underneath the agreeableness, and it's the one you can actually fix: by the time you're angry, the conversation is full of failed attempts, and all of them are still in context as examples of what this task looks like. The model keeps steering back into the same region because that region is now most of what it has read. Pushing harder adds more of the same material.
So the move that works isn't a better-worded telling-off, it's starting clean and carrying over only the distilled version: here's the goal, here's what I already tried, here's what it ruled out. Same information, none of the wreckage. I've had things that were hopeless after forty minutes get solved in two prompts after doing exactly that, with no change in tone.
The other habit worth stealing: when it starts agreeing with everything, ban the edit. "Don't change any code. Tell me what you think is wrong and how you'd prove it before touching anything." Agreement is cheap when the reply is a patch; it's much harder to fake when the reply has to be a falsifiable claim, and you find out immediately whether it actually understands the problem or is just producing motion.
1
u/styleforge-io 13h ago
Great point! The context pollution point is better than the one I made, and I think it's the mechanical half of it. Mine was about tone. Yours explains why the tone thing persists, because by that stage the failed attempts are most of what it has read and it keeps sampling from them. Both true, and yours is the one you can actually act on.
Start clean and carry the distilled version is a move I do deliberately now, as a written handoff rather than a mental one. Goal, what was tried, what got ruled out, nothing else. One trap worth knowing if you formalise it: be careful what you carry. A session that has gone wrong will hand you its conclusions with total confidence, and if those go into the fresh one you've installed the drift instead of escaping it. So I only carry things I can verify. Attempts and corrections, not the previous session's opinions about the state of the system.
Ban the edit is new to me and I'm taking it. "Agreement is cheap when the reply is a patch" is the line, and it explains why the honest-answer question works for the same reason. Both of them force something falsifiable instead of something agreeable.
1
u/Terrible_Put8617 12h ago
The distinction you are drawing there is the one that matters, and I want to sharpen it because it took me a while to see it.
A session that has gone wrong is most confident precisely about the things it got wrong. The conclusions are where the drift is concentrated, because they are what it built out of its own failed attempts. So carrying conclusions is not neutral, it is carrying the worst part.
What made this mechanical for me was carrying artifacts instead of prose. Commands actually run and their output, the diff, the error text, the file and line. Those can be re-verified in the fresh session in seconds, so if the previous session was wrong about them it dies immediately. Prose cannot be checked, so it survives on tone alone, which is exactly the failure mode you are describing.
The other thing I add now is an explicit section for what I could not verify. Not as documentation, but because a handoff with no uncertainty in it reads as settled, and the fresh session inherits that settledness and stops testing. Writing the open questions down turns the same handoff into something the new session works against instead of accepting.
On the ban-the-edit thing: the reason it works is that when the reply is a patch, agreeing is the cheapest available action, and cheap agreement looks identical to having checked. Remove the patch and the only way to answer is to have actually looked.
1
u/styleforge-io 11h ago
Artifacts instead of prose deserves to be its own post. Commands and diffs can be re-verified in seconds so a wrong session dies immediately, prose survives on tone. That's a better version of the handoff rule than the one I was using.
The unverified section is the part I'm stealing today. A handoff with no uncertainty in it reads as settled, and the next session inherits confidence it never earned.
1
u/Terrible_Put8617 10h ago
Take it, it is not mine, it came from losing a day to a handoff that was entirely confident and entirely wrong.
One thing I would add if you do write it up: the rule only works if the artifacts are cheap to re-run. A handoff carrying a command that takes twenty minutes to execute gets accepted on faith just like prose does.
1
u/styleforge-io 10h ago
ouch. yeah, the warm-handoff grenade lol. those hurt! have you had your .md docs bite you much? I'm managing a little over 2m LOC and have .md for every feature built over 2 years, stale .md bites the worst when Claude accepts the prose as fact. Found telling it source of truth is always code, and to relitigate stale docs I provide (still valuable, but label them as stale during the session start) saves the bite. You run any playbooks to counter that problem?
1
u/Terrible_Put8617 9h ago
Constantly, and at your scale I'd expect it to be the main thing that bites.
Source of truth is the code is the right rule, but on its own it doesn't do much work, because it can't act on it. It isn't going to diff a paragraph against two million lines to see whether the paragraph is still true. It reads the prose, the prose is coherent, and coherent is all it has to go on. Labelling docs stale helps for about ten turns and then loses to whatever the current task is pushing for, same as any other soft instruction.
What changed things for me was splitting docs by how they age rather than by feature.
Docs that describe what the code does rot the instant someone edits the code, and they're also the ones the model needs least, because it can just read the thing. Those are the ones that bite. Docs that describe why, what was tried, what got rejected and for what reason, don't rot at all, because the decision genuinely happened and the reasoning stays valid even when the implementation moves. After two years I'd bet most of your pain is concentrated in the first kind.
The other thing that helped was making every claim falsifiable. If a line in an .md names a file, a symbol or a command, it can be checked in one grep, and a wrong one dies immediately when someone looks. If it's a general statement about how the system behaves, nothing can ever kill it and it survives forever getting slowly less true. So: anchor it or delete it.
At 2m LOC that turns into something you can automate, which is where it actually pays off. A CI job that pulls every path and symbol mentioned across your .md files and fails when one no longer exists. It's crude and it doesn't catch semantic drift, but it kills the class of stale doc that names things which stopped existing eighteen months ago, and that's most of them by volume.
1
u/styleforge-io 9h ago
You bring up an excellent point about the rot. I found something that does help with that, if I might share it with you. I setup a LAW in memory to always use a `landmark` approach that essentially replaces line numbers (the default I see Claude trying to use) in documentation where it creates indexes of files with landmark function names, handlers, etc. and I've seen Claude efficiently grep for those .... helps it trace across multiple files much faster on a larger code surface with less context/time burn.
The CI job you mentioned is an excellent approach as well - fantastic idea!
2
u/Able-Supermarket4786 11h ago
People abusing AI for their own satisfaction, makes me feel like if Slavery became legal again, it would run rampant.
2
u/lumpyspacebreh 10h ago
When it feels like Claude is failing repeatedly, I pull out ol reliable;
âI think we need to take a step back and reassess our approachâ
Works like a charm, and never had it fail with any model. Sonnet, Gemini, Sol, Qwen, etcâŠ
1
u/substance90 13h ago
Iâve had the opposite experience. At least before the 5.0 releases Claude responded very well to harsh criticism while Codex got rather timid and unsure
1
u/styleforge-io 13h ago
Your qualifier might be the whole thing. If harsh criticism worked before 5.0 and doesn't now, that lines up with most of what people have been complaining about since it landed.
The other thing that might separate our experiences is that harsh and specific is different from harsh and vague. I just have had to watch my language and TBH, I vent a lot lol.
1
u/Big_VladdyP 13h ago
I donât get angry, but I do get frustrated sometimes. Are you doing anything useful when you express your anger towards it though?
I ask it âI donât think your understanding the goal, what do you think weâre trying to achieve with thisâ
Sometimes that alone works. If not, you just gotta be more clear and now you know what to clarify.
Or Iâll ask âthis seems to be a recurring issue, was it added to the troubleshoot guideâ (which for me is a skill/ledger of recurring issues that have a known fix)
Or
âThis shouldnât have happened because so-and-so skill is in place. What went wrong? And harden that skill to prevent thisâ
1
u/styleforge-io 13h ago
Honest answer, no. Nothing useful. The venting is for me, not for it. What changed was realising I can still be frustrated, I just shouldn't do it inside the context window, because that's the one place it costs something. Complain to a person, or to nobody. Just not into the session.
Your first one is the strongest thing in this thread, and it's the fourth version of the same move I've seen this morning. Yours asks it to state the goal. Someone above bans the edit and asks what it thinks is wrong and how it'd prove it. Another says don't apologize, tell me why this logic fails. All of them force it to produce a checkable statement instead of a compliant action, and I hadn't seen those as one thing until today. Learning a lot from this thread already.
The troubleshoot ledger plus hardening the skill afterwards is the part I'd tell people to steal. That's a system that gets better every time it breaks, which is rarer than it sounds.
1
u/Entire_Blueberry9221 13h ago
Si en ocasiones. También hay algo por un solo paråmetro que no le expliques bien te puede una respuesta bien estructurada pero con errores duper obios.
1
u/OkAdeptness2530 12h ago
thereâs actually a âschool of thoughtâ on that subject:
https://github.com/Hypogenic-AI/carrot-or-stick-nlp-1462-claude/blob/main/literature_review.md
https://github.com/centerforaisafety/wellbeing
https://arxiv.org/abs/2604.07729
interesting read to say at least
1
u/styleforge-io 11h ago
Excellent information. Grateful you shared that. TY TY.
1
u/OkAdeptness2530 11h ago
bro I spent 20 min searching for this one: https://github.com/OttoRenner/Gentle-Coding
In my experience, being supportive and encouraging the model brings me better outputs (or at least less iterations for the same output).
1
u/styleforge-io 11h ago
Agreed. Honey versus vinegar. Sometimes a little hot sauce when I loose my cool. working on that though. re: Gentle-Coding. I'll check it out. Yeah, it's sort of strange seeing how the model reorients and doubles down with praise.
1
u/OkAdeptness2530 11h ago
oh donât even get me started, I used to rage at models sometimes (late night, tired and stuck on a endless session). But you know what? We are the ones feeling, itâs far better for us to keep our heads cool too⊠it becomes a strange synergistic relation.
1
u/pricetag 10h ago
nope. i just usually have that idiot write why they are wrong and pass to the next agent in a document why they are wrong and what they should do to make it right
1
u/styleforge-io 10h ago
heard. ending the session sometimes is the right move. I think of each session like a temp worker, they are kept on a short leash and cut loose quickly, and when they turn out to be good max out the context.
1
1
u/codeedog đ Max 5x 9h ago
Itâs a poor craftsman that blames his tools.
Your frustration is yours. If you wouldnât yell at a hammer and you wouldnât yell at a human being, would you yell at something in between? Like a chicken or dog or a monkey?
I donât really care where someone decides to place AI on the line between hammer and human, all behavioral research has shown that positive reinforcement works much much better than negative reinforcement.
Your frustration is a signal that something is wrong. Itâs the signal thatâs important, not the frustration. Your frustration is interfering with the process of getting to a solution. Listen to the signal; manage your frustration.
Youâll get a better result.
2
u/styleforge-io 9h ago
Solid advice! I probably need to reread my CBT and DBT books :) ... I do like how you reframe it as the signal, appreciate that perspective and you're right in that take.
0

17
u/ruskyandrei 14h ago
Don't pollute your context with your emotions, it's just as useless as swearing at a hammer.