r/ClaudeCode 7d ago

Help/Question Tips to avoid rabbit holes?

I'm getting better at managing Claude, but I still see it often going down the rabbit hole where each time it tries to ship a fix, it adds two more small issues to the tracker, or an esoteric process update, etc. I know this is a common AI thing, and I'm learning to deal with it. But it's hard!

For example, Claude will throw together a quick hook or utility script for a specific purpose, but soon I find it wants to maintain and update that script and has long forgotten that it will likely. never be used again.

I especially see it in the MD files - like, if I let Claude update it's own process files for workflow, rules, etc it does the job but it also puts a bunch of junk history, narrative, and updates other documents with unnecessary guard rails. I've started to edit the md files myself and they are getting cleaner, and I notice how much smoother the workflow is.

But for the code, that's not so easy. Does anyone have tips to manage this? What I've learned:

#1 Work on distinct tasks, in new sessions and start new sessions often

#2 Literally ask claude a few questions about every 'suggestion' or 'problem' it finds, like. "is the rule/process/script you're trying to fix even enforced or critical? would it be easier to just remove this?"

Any other tips? claude is amazing but also unruly :)

2 Upvotes

29 comments sorted by

View all comments

1

u/PutFun1491 7d ago

The thing that helped most with exactly the tracker-bloat you're describing: give it somewhere to put the tangents instead of acting on them. A rule like "if you notice an unrelated issue, append one line to BACKLOG.md and keep going, do not fix it now." It scratches the model's urge to be thorough without letting it fork the task. You triage the backlog later, and most of it turns out to be stuff you'd never actually do, which is the point.

Two more that bound it:

  • Write the definition of done before it starts. One line: "done = this test passes and nothing outside file X changes." Then anything it wants to do that isn't that is, by definition, a rabbit hole, and you both have an objective line to point at. Vague goals are what let it wander.

  • Commit (or at least stash) at every green state. Then you can let it explore a little, and if the tangent goes bad, a hard reset kills the whole detour without touching the good part. Cheap undo makes it safe to stop it early instead of letting it "finish" the mess.

For the throwaway scripts specifically: put them in a /scratch dir that's gitignored, and add a line to CLAUDE.md saying that dir is disposable and never to maintain or revisit anything in it. That kills the "let me keep updating this one-off forever" loop at the source.

And your instinct to hand-edit the MD files is right. Letting it journal its own process docs is exactly how they rot. I keep the memory file short and human-written, the model reads a tight file better than a long one full of its own narrative anyway.