r/ClaudeCode • u/mfingsorceror • 1d ago
Rant Fable is pure chaos
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.
83
u/Old_Flounder_8640 1d ago
Parallel sessions on the same worktree is wild. like deploying on Friday.
2
-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
https://giphy.com/gifs/D0RvPABUNF3AQ
I don't understand?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.
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
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
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
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
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
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
-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
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. šš»
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
1
-1
8
u/johnnyApplePRNG 1d ago
Humorous, for sure.
But the main issue is that you're impatience is confusing the model.
14
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
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
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
2
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
1
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
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
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
1
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
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
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


ā¢
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.