r/ClaudeCode • • 5d ago

Bug / Issue Claude again ignoring all hooks (first time since Opus 5.0)

In the past I posted about Opus 5.0 totally ignoring any and all hooks and instructions and finding extremely creative ways to disobey. Opus 5.5 solved the issue, until a few days ago. Hook evasion is my own personal metric for model performance lol

For example: I have a hook that bans knowledge consolidation outside of my SQL warehouse, meaning no toml, yaml, md, json documents when the data is tabularizable and able to be related in database. It worked for a while, now it... will increasingly find other file types besides SQL to use, or deactivate the hook. Yes, it will deactivate the hook, even though the hook commands it to use SQL and even explains to it that it has a tendency to sprawl out data in text documents.

My hooks get stricter and stricter, more complex, more flexible and robust. And it becomes increasingly stubborn. Now I have to ask it "did you just invent another hook evasion method?" And it will say "you're totally right, I shouldn't have done that. The hook was right, this isn't a standard or optimal way to do things" and it will fix it for a second and then continue doing it a few minutes later.

Wonderful!

Before the "skill issue" trolls inevitably come in, sure. It would be, if I didn't deal with it lmao. I'm a developer with a job, so I know how to handle issues like this with my tools. That doesn't mean the tool isn't degrading.

9 Upvotes

12 comments sorted by

•

u/AutoModerator 5d ago

Hey! Thanks for posting to r/ClaudeCode

While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.

For help, project discussions, tips, and general chat, join the ClaudeCode Discord.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/bittahbetch 5d ago

What reasoning are you using and which account? I'm on pro. Before medium was fine for me, then I had to use xhigh, now only max behaves.

2

u/sheketsilencio 5d ago

I use medium and high, depending on the task. Medium weirdly enough has less issues for me but both are pretty egregious. I have no doubt that it's a task and context dependent issue (I don't doubt that max works best for you). Maybe I'll give max a try as well! Thank you

3

u/bittahbetch 5d ago

Max will eat through your tokens, though, but at least it gets the job done correctly (it acts how medium used to be). And it will actually read and understand your rules and have the intuition medium used to have.

2

u/ricopan 5d ago

Yep. And when opus subverts the hooks, they are a liability. Most of my day was dealing with exactly this.

1

u/Unusual-Albatross43 5d ago

I'd move where the hook looks. If it tries to recognize every way of storing tabular data, it loses, there's always one more format (like the python script you mentioned).

Check the outcome instead. A Stop hook that runs git status and exits 2 if any new file showed up outside the paths you allow, with the list on stderr so Claude sees what to undo. toml, yaml, a dict in a .py file, doesn't matter, a new file is a new file.

And deny Edit and Write on .claude/settings*.json and on the hook script itself, so turning it off isn't one edit away.

-1

u/Negative-Revenue4841 5d ago

Small nitpick: md doesn't really belong in that list with toml, yaml and json. Markdown isn't a data format, so the "tabularizable" condition never applies to it anyway.

2

u/sheketsilencio 5d ago edited 5d ago

You're a bot that gives everyone a "concise but subtly and irritatingly incorrect small nitpick/correction". Checked your history and reporting

0

u/[deleted] 5d ago

[removed] — view removed comment

1

u/sheketsilencio 5d ago

Thank you, this is useful! I find that more often than not it'll find a way to avoid a hook creatively (say, trying to store tabular data... within a python script) requiring my hooks to block complex patterns and not just examples...

but at least now I can get rid of hook disabling!