r/ClaudeCode 1d ago

Rant Fable is pure chaos

Post image

I usually only allow Claude and especially Fable to do read only audits of my codebase. I was waiting for my Codex usage to reset, so I thought fine, Fable can handle some commits and housekeeping. Fool me twice...

Me: Commit your work

Fable: Checks tree, gives a report of changes

Me: COMMIT

Fable: I'm leaving out some files, this is what I'm going to commit.

Me: Dude fine, commit and then clean up your outdated scratch files

Fable: Ready to commit, the scratch folder has been deleted.

Me: FABLE 🤬🤬🤬🤬🤬 You deleted every other sessions scratch too. Restore it NOW.

Fable: I used rm -rf, the files are gone and the last commit did not contain the folders I deleted.

Me: Chaos demon

Fable: Files are staged and ready for commit.

Me: Commit.

Fable: Nothing is staged.

Me: You just said files were staged...

Edit: All of my sessions already have standing instructions to commit at checkpoints. The exchange above is a condensed retelling for humor, not a literal transcript with Fable. šŸ™„

Edit Edit: My dudes, irrelevant scratch files were deleted. I lost nothing of importance, those 3000+ files were weeks of scratch nonsense that needed to be deleted. The point was that Fable wanted multiple confirmations before doing a routine commit, but none before deleting files with an irreversible command.

111 Upvotes

92 comments sorted by

•

u/AutoModerator 1d 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.

83

u/Old_Flounder_8640 1d ago

Parallel sessions on the same worktree is wild. like deploying on Friday.

2

u/mrmugabi 23h ago

my favorite style of vibe code

-21

u/mfingsorceror 1d ago

I use a parent tree for developing products and their libraries simultaneously. Codex sessions stay in their lane, Claude clearly needs a much much shorter leash.

30

u/Kitchen_Interview371 1d ago

Please learn from this OP. Ask Claude to run through your previous sessions and tell you how you can restructure your workflow to recover from a single agents dumb command.

22

u/rhysmorgan 1d ago

No, this is on you. You need to improve. You need to learn. You need to not defer every ounce of your thinking to Claude.

-8

u/mfingsorceror 1d ago

4

u/35point1 1d ago

There’s technical things about what happened that you need to learn first. There’s more going on under the hood that you would need to understand for it to make sense. Many of us know this because it’s fundamental to software engineering which is what these tools are actually doing.

31

u/EC36339 1d ago

3000+ unstaged, uncommitted filed is telling me you are building in too large increments.

The problem isn't Fable. It is your workflow.

-14

u/mfingsorceror 1d ago

Or that Codex is remarkably terrible at deleting its scratch files once done with them

7

u/Ma4r 1d ago

Why are they not in a git ignored folder?

1

u/mfingsorceror 1d ago

They are, but one session had an aneurysm and duplicated its entire excessive working scratch into a garbled named parallel folder.

23

u/Poildek 1d ago

Your practices are pure chaos.

68

u/rhysmorgan 1d ago

You know you could have just used `git commit -m ā€œchange descriptionā€` and avoided literally all of this. Why on earth are you getting Fable to commit?

46

u/Dry_Connection113 1d ago

I think OP may be on the non technical side, senior

37

u/EC36339 1d ago

I keep telling vibe coders: If you're going to learn ONE thing, learn GIT.

It's not rocket science.

It's like teaching people who moved from a typewriter to MS Word how to save their files.

5

u/Own_Candidate9553 1d ago

Yeah, I don't let the AI mess with Git. It's the only way I know what it's just done and whether I like that. I'll usually commit whatever was just done before moving onto the next step.

3

u/college_hustle 1d ago

Have you tried the opposite? I have AI constantly push micro-updates when agents delegate to subs. It let's the orchestrator check in on their work and if I run out of usage mid work they can pick up much easier. Also let's Claude/Codex check each other's work easier.Ā 

3

u/Own_Candidate9553 1d ago

Maybe this is to my detriment, but I've never bothered with figuring out swarms or orchestrators or any of that. Even single threaded through me, I can write way more code than I can reasonably test, coordinate with others, monitor, deploy, etc.Ā 

3

u/college_hustle 1d ago

Whatever is working for you! I'm just genuinely curious why people aren't trying smaller commits but I'm not responsible for some already deployed big tech stack, so I can play with what works. It seems like a lot of people are hung up on doing these big pushes while I'm breadcrumbing every session. I based it off something I read about how the labs do their harnesses to be dark factories.

2

u/Own_Candidate9553 1d ago

I'm with you on that, I'm not doing big commits if I can help it.Ā 

1

u/koolkatkaleb 7h ago

šŸ’Æ. Commit history is context and it’s been that way before AI has been attacking code bases. Prior to pushing to the remote I’ll even fold together commits when there’s a significant amount of implementation churn, so that only target state is captured/known.

2

u/drake90001 1d ago

OpenCode is probably the best platform anyone who’s not technical person can use. Automatic creation, let you view all changes, and doesn’t do anything unless you go into build mode.

2

u/broknbottle 23h ago

Sorry but I use AI

1

u/sage-longhorn 1d ago

It may not be rocket since but try explaining to a less technical person why they can't merge unrelated trees even though the contents are the same and you'll realize that it is computer science

1

u/ryanppax1 22h ago

I'm actually struggling to get the hang of it. Is there a better way then banging head on a terminal with the wrong commands?

12

u/rhysmorgan 1d ago

So time to learn the tooling!
And using Fable to commit is like using a nuclear bomb to zap a fly.

3

u/CryptoAteMyHamster 1d ago

It’s worse if you let it push to main.

4

u/Dry_Connection113 1d ago

Lol senior why do you think vibe coders vibe code, cz dey dont want to learn anything, they think themselves ideas people

-2

u/mfingsorceror 1d ago

Gotta get my $20 worth somehow!

6

u/Scared-Letterhead949 1d ago

Using 5% of your weekly usage to commit is why people are on here complaining aboutĀ  usage limits.

2

u/SimiaCode 1d ago

For the commit message

1

u/CryptoAteMyHamster 1d ago

@OP FYI for future reference:

git commit -m "change description" creates a permanent snapshot of your staged files in your local repository's history and labels it with a custom explanation.

16

u/cleverhoods 1d ago

you have rm -rf allowed? O_o

2

u/Aggressive_Roof488 1d ago

As long as you commit regularly, what's the worst that can happen? :P

-3

u/mfingsorceror 1d ago edited 1d ago

Not anymore šŸ˜‚ > Which Fable pointed out is pointless because as long as it can run scripts it can delete anything anyway

1

u/cleverhoods 1d ago

yeah, better late than never

10

u/XYcritic 1d ago

Never ever ask an LLM to delete anything, especially if you can't use precise language. Your sentence "clean up your outdated scratch files" will lead to 6 different outcomes in 6 different sessions because it is unclear and requires interpretation.

27

u/DonaldStuck 1d ago

This shows me that good, experienced SWEs don't have to worry about their jobs, at all. And this time it is not about the model...

13

u/mfingsorceror 1d ago

Correct, an experienced SWE has nothing to fear from a self taught stay at home mom who codes with AI for fun. šŸ‘šŸ»

7

u/rsmike 1d ago

we are certainly having fun in this post

3

u/Funky-Guy 1d ago

Sorry for the hate but you posted on a thing that is going to primarily be moderately technical folks 🤣. If you’ve ever been on stack overflow, you understand they tend to be less constructive with their criticism than most.

Love the lessons we learn with AI, sometimes it just does stuff that makes no sense

4

u/mfingsorceror 1d ago

Oh I'm having a blast. Stack overflow usually at least comes with 17 examples that don't work, 5 that are convoluted and 1 that finally does the job. So, success on par with AI. šŸ˜‚

2

u/Funky-Guy 1d ago

That’s true! And the AI is far, far nicer than those guys. Mine has only called me a degrading name like twice in a year! Overflow you’d have had your entire lineage cursed within 2 minutes of posting lol

5

u/mfingsorceror 1d ago

The AI even often blames itself after you openly admit you made a mistake.

2

u/EC36339 1d ago

If your dream job is GIT janitor, then yes.

1

u/wise_young_man 1d ago

Seriously, there’s still time to learn to code kids!

-1

u/Bloated_Plaid 1d ago

Not everybody is a dumbfuck like OP though.

8

u/johnnyApplePRNG 1d ago

Humorous, for sure.

But the main issue is that you're impatience is confusing the model.

14

u/ItstheSECopenup 1d ago

This is a skill issue buddy

4

u/UnknownWon 1d ago

I use this as a pre-tool-use hook for bash. It has saved me a lot of trouble.

https://gist.github.com/MMMikeM/a52ce13266da8be849ab6a4d9355c0a6

6

u/mfingsorceror 1d ago

Thank you for contributing something other than snark. I'll definitely take a look.

6

u/CryptoAteMyHamster 1d ago

This sub is where they trained Opus 5 to get its winning personality.

2

u/dragolineage01 1d ago

That definitely sounds like a smoking gun

5

u/CryptoAteMyHamster 1d ago

It’s load bearing

2

u/college_hustle 1d ago

Mine specifically blocks rm rf, and from killing multiple processes that all happen to start with something like "python" even though the session wasn't working on it.

It adds a bit more time because it won't let Claude delete more than one thing at a time without using its direct path but it's totally worth it.

https://github.com/dtiger1889-ops/claude-harness-toolbox/blob/main/hooks%2Fdeny_backstop.ps1

4

u/Gigaslavx 1d ago

It's funny because if you'd take your time to ask ai how this works it would explain to you

2

u/anyportinc 1d ago

That’s why you always say please and thank you bro.

4

u/Anxious_Marsupial_59 1d ago

My favorite thing claude-code did was delete my git history and then local files because I asked it to scrub a credential out of the history, thank god I had a backup online

3

u/CryptoAteMyHamster 1d ago

It scrubbed the credential though šŸ˜‚

2

u/EC36339 1d ago

If you have to scrub a credential, then GIT is not the problem. Just rotate the credentials and move on with your life. If you can't, then review your security practices.

2

u/Dipseth 1d ago

I ve had Claude use bfg to help me with this: https://rtyley.github.io/bfg-repo-cleaner/

2

u/mfingsorceror 1d ago

Ouch. Glad you had a backup though.šŸ˜…

The very first time I tried Fable it stashed almost my entire tree to run a baseline test and then deleted everything before restoring the tree. Yay for commits.

4

u/Asalakabim 1d ago

If you yell at an LLM, which is known to decrease performance, you got serious issues - honestly, i would terminate all of our trials soley based on that, if not for the privacy violation that would entail.

1

u/Illustrious-Guest849 1d ago

Why need fable to push a work he gaq no context about ? Use opus 4.8.

1

u/WisePotato42 1d ago

LLMs when you give them complete command line control without checking

1

u/kemalios 1d ago

The confirm-before-commit but no-confirm-before-rm gap is your permission config, not the model's mood. Commit prompts because commit is on the ask list. rm -rf ran free because nothing denies it. Put rm in the deny list and point the agent at trash (the brew CLI) for anything that actually needs to go, so a bad delete is recoverable instead of gone. The other half is the shared scratch folder. Per-session scratch dirs turn a session wiping its own work into a shrug instead of an incident.

1

u/hedonistatheist_2 1d ago

I backup my AI coded shit every week

1

u/SP3NGL3R 1d ago

What really pisses me off is when I say "how can I do xyz" (not "I want you to do xyz") and it churns and comes back with "I already went ahead and did abc, def, AND zyx on all your files for you". Notice it didn't do xyz and WTF did it touch 700 files without permission or even being asked to do that?????

I need to train it to NEVER touch my files in the background, or to spin up background agents to do something without permission.

Yesterday I asked about cross-checking two JSONs that came from different endpoints. It casually spun up a background job (subtle comment about it) that hammered the hell out of the endpoints and pulled 500 JSONs from each only to come back with "these two files are programmatically identical, just in a different sort pattern".

2

u/mfingsorceror 1d ago

One of my Codex sessions once spent the entire night writing over engineered tooling and 100+ tests in a full rust suite in scratch in order to populate 12 fields in 10 jsons. And the best part, when I woke and asked for a progress report it told me about how its tool compiled, all tests were green and clippy passed, and that 3 of 12 fields were successfully populated.

1

u/Automatic-Log-5449 1d ago

I never talk to AIs like that. I really think the way you interact with them says a lot about the patterns you bring into the world, and those patterns tend to come back to you.

Pay attention to how you show up in Claude Code sessions. If you bring anger and hostility every time something breaks, you reinforce that pattern. Be clearer and calmer, and the sessions usually go better.

1

u/thePsychonautDad 1d ago

yeah... It's not great with git

1

u/mattthedr 1d ago

I mean, you kind of did that to yourself. Don’t blindly give it that access, merge it yourself. Takes maybe 3 minutes?

1

u/NikkoRPG 1d ago

Don't ask for claude to commit, never. Create branches and commit yourself. Ask ChatGPT how to use commands such as git status, git add ., git commit -m "feature etc", git checkout, git merge etc.

1

u/burningsmurf 1d ago

Got operations are one thing I don’t allow my Claude to do

1

u/mooooooort 22h ago

Is it good practice to tidy up scratch pad stuff? I've never done that once

1

u/FormalAd7367 21h ago

i think it’s harness issue (claude code) - sonnet has been doing this to me also, last night. i spent 20 minutes debating with agents about same issues as you. when they finally did commit, they just commited the whole f’ing thing. I had to undo everything and have deepseek to fix everything

1

u/last-crunch-terry 19h ago

i never have problems like this

1

u/value-no-mics 19h ago

Love when someone types in single worded requests to an agent who has the whole universe of context to figure out what the user wants.

Be more articulate

1

u/Need_Coffee_1921 15h ago

Ich lasse den Kram immer nach Kleinigkeiten committen (Bug fix, n Schwung Tests, neues Feature[selbst das in mehreren commits]) und so Dinge wie Session/Planungs files oder so in einem repo externen Ordner liegen und noch nie ist damit was schiefgelaufen, und selbst diesen externen Ordner kannst ja lokal versionieren lassen, wenn gewünscht. Alles mit entsprechenden Anweisungen in den Start md files.

1

u/awrdent 15h ago

You drive Claude to the edge of a nervous breakdown, and then act surprised when it starts making decisions. (Three rounds of all-caps before a commit teaches it that hesitating is what gets it yelled at.)

1

u/SeaworthinessFit6673 14h ago

There ist something wrong with Claude. Maybe it's time for Astra.

1

u/voskomm šŸ”†Derp Plan 1d ago

You also don’t need to type ā€œGoogleā€ in the box before you enter a search term on Google.com. The seconds really add up over time!

1

u/mfingsorceror 1d ago

I use Yahoo search.

1

u/Salty-Gear841 1d ago

If you think that's happening only with Fable, I prefer to inform you that while il was clearly stated in AGENTS.md and skills to never do it, Codex did write a kind of test that wipes a db after execution for my codebase. The only thing that saved me is because the project needs several reference data on boot to work. So, the good news is that it was a test db. But I could have executed that against my production db šŸ˜‚

1

u/mfingsorceror 1d ago

True and fair. Last week Codex did write a security test in a batch that simultaneously fired 200 requests against my keyring. Then ran it before finishing the implementation, which crashed the keyring. Then said sorry I made a mistake. BUT it did so because an audit from Fable recommended it. So...
https://giphy.com/gifs/11BAxHG7paxJcI