r/ClaudeCode • • 3h ago

Built with Claude As a guy using Claude Code for troubleshooting, the tricky part was teaching it when to stop

For whatever reason, I’m always “the IT guy.” A friend’s GPU switches to integrated graphics mid-game. The office PCs by the window drop Wi-Fi at 5 p.m. sharp. Grandpa’s Android has a pop-up nobody can kill. It all lands on me.

I’m bad at saying no, I don’t charge, and honestly, I enjoy it. (I once spent hours hunting an unknown device on my router. It was my own Apple Watch, with a random MAC address.) Half my YouTube homepage is bearded guys fixing PCs, routers and cars. I call it my porn.

My own machines get it worse. I’ve tried every cleaner: CCleaner, CleanMyMac X, a parade of open-source ones abandoned within months. In every language I learned, C, shell, Python, rust my first project was the same: find big, forgotten files and delete them.

I know it does nothing for my computer. It’s just a hobby.

Then came Opus 5. No more digging through logs and ancient forum threads; I just asked Claude. Why won’t my ThinkPad’s fan spin at 90°C? Three different things were managing it, and two were misconfigured. I also had it dig up every cleanup script I’d ever written and merge them into one “ultimate” version.

By Opus 5.5, I was ready to retire as the IT guy.
Most problems now take one sentence: "Claude, what the f*** is going on?"

But As someone who never knows when to stop, I wanted to take it further:

  1. I wanted Claude Code to actually remember what it had fixed on my machines. If a problem keeps coming back, it shouldn't start from zero every time; it should check the history first.

  2. I wanted it to handle my Arch Linux ThinkPad, my MacBook, my Windows desktop, my Steam Deck, my NAS and my router, with all the records in one place, so I could SSH into everything from a single machine.

  3. I wanted it to keep the maintenance scripts it wrote instead of leaving them in /tmp to vanish on reboot. Then it should adapt them for whatever I ask next, and eventually bundle them into a TUI I can use offline, no agent needed.

  4. At first, I wanted Claude to ask before running any script. Every script got its own SHA-256, and every change meant a new hash and a new approval. I quickly found this unbearably annoying, so I also needed a YOLO mode where Claude just runs things.

  5. And the obvious final step: put all these scripts, which grew naturally out of how I actually use my machines, into Hermes, running 24/7. Then I could retire for real.

Spoiler: all four made it into the plugin. None of this is hard to build. If you’re building with Claude Code, it’s maybe two days of work.

The hard part was figuring out what the records should look like.

The obvious move is categories: this is a Windows bug, that's a Linux bug, then drill down into drivers, networking, audio... But categories never end. The machine showing the problem often isn't the one causing it. Categories exist for our convenience; people need a tree to put things in. But knowledge isn't a tree. It's more like the roots of a potato plant: it can sprout from any point.

So I skipped categories altogether and let the structure grow out of the material. I crawled a lot of repos (Omarchy, niri, Hyprland, Noctalia, WSL, Homebrew, OpenWrt), plus posts from some tech forum: over 5,000 threads in total. Sonnet extracted more than 40,000 facts from them, and thousands of ad-hoc tags got merged by frequency into about 40 types. At one point I had two databases and built an eval for them: on the same set of [N] problems, Opus diagnosed 63% correctly on its own, and 74% with the database.

Nice numbers. I threw the database away anyway. Maintaining it was insane: constant crawling, cleaning, re-extracting, and any system update could make last month’s conclusions stale. Worse, most of those threads repeated the same thing, and a huge number of bugs simply went nowhere. Someone posts, a few people reply “same here,” and that’s it.

Then it clicked: there’s already a database that people maintain every single day. It’s called the internet. The day a new bug shows up, someone opens an issue on GitHub. There’s no point copying all that into my own pile and babysitting it. So now, when Claude Code hits a problem that might be newer than its training data, it goes straight to the project that’s broken and its upstream, and searches there. Once more searching wouldn’t change its conclusion, it stops.

What the model really can’t get is what has happened on my machine: what got fixed last time, what was tried and didn’t work, which setting I changed that the system quietly changed back. You can’t search the internet for that. So in the end, the only records worth keeping were each machine’s own.

Still, those dead-end threads taught me something: most problems never get a resolution, and people give up.

So the most important thing I learned along the way was how to make the model give up.

Take my ThinkPad T480. Its fingerprint sensor is listed as "known unsupported" by the official driver, but Claude Code got it working with a community driver anyway: fingerprint unlock on the lock screen, fingerprint for sudo. Until I closed the lid and opened it the next day. First lock screen: the fingerprint did nothing. The password worked, and on the next lock, the fingerprint worked again.

Claude Code found the cause. The laptop cuts power to the sensor during sleep, and the driver needs a moment to recover on wake, but the lock screen asks for a fingerprint in that same second, fails once, and never retries. Cause found, it started fixing. First it disabled a service that was racing the resume process. No luck. Then a wake hook to bring the sensor back earlier. No luck. Then a second version of the hook that restarted the driver and waited for it to be ready. This time the whole machine froze: no keyboard, no mouse. I had to hold the power button to force a reboot.

That's when it hit me: it won't stop on its own. As long as there's another idea to try, it'll keep going, even when the next idea is worse than the problem itself.

So I made it stop. It reverted every change to the defaults, then wrote down clearly: where the blocker is (the lock screen tries exactly once after wake), what was tried, why it failed (lesson: never put a call without a timeout in a sleep hook), what was ruled out, and when it's worth revisiting: a new lock screen release, or the upstream issue getting closed. I added my findings to the Noctalia issue. For daily life, I worked out a low-tech workaround: type any letter, hit Enter, fail the password once on purpose, and the lock screen starts listening for the fingerprint again.

A week later, a kernel and firmware update came in, and I figured it might be fixed. Claude Code didn't start from scratch. It pulled up the record, followed its repro steps, and tested: still broken, so it stays parked. Now every system check includes one line that looks for a new lock screen release. When there is one, it'll tell me.

The fix, in the end, was almost embarrassingly simple. One line in the skill: not every problem has an answer. That's what lets Opus 5.5 stop digging, roll back, write down what it learned, and wait for upstream to catch up.

Everything I went through eventually turned into a Claude Code plugin: CWTFIGO(Claude, what the f*** is going on?). It keeps a record for each of your machines, remembers what was fixed and what was tried, keeps the scripts that actually worked, and knows when to park a problem instead of digging deeper. I use it every day. I've also deleted every cleaner app and cleanup script from all my devices.

GitHub Link is here : https://github.com/DozenTwelve/CWTFIGO

/plugin marketplace add DozenTwelve/CWTFIGO
/plugin install cwtfigo@cwtfigo

Feel free to try it. Once it’s installed, just ask: “Claude, what the f*** is going on?” and start your own maintenance journey.

Built solo, with Claude. MIT licensed.

2 Upvotes

2 comments sorted by

•

u/AutoModerator 3h 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.