u/larrygfx

I don't know if this helps anyone, but I made a plugin that "gaslights" Claude into double-checking it actually did everything you asked
▲ 21 r/claudeskills+1 crossposts

I don't know if this helps anyone, but I made a plugin that "gaslights" Claude into double-checking it actually did everything you asked

The more I've been using Claude Code, the more I've noticed that for long or complex tasks it loves to report something as "done" with absolute confidence while, in fact, it missed a part of the implementation, or introduced a bug (even after resuming from a plan, regardless of how explicit the plan was). Lately I had been getting into the habit of whenever Claude stopped, asking it to double-check for completeness and more often than not it found out that it had missed something; sometimes critical, sometimes minor, but almost always something.

Prompting it to double-check its work got old pretty fast, and the progression of what I was typing went something like this:

-> "Are you completely certain that during this session you completed all the tasks and that we haven't missed any of the requirements?"

-> "Can you guarantee that you've done everything that was asked?"
-> "you 100% sure?"

So I made a plugin to avoid having to prompt it again.

https://github.com/LarryGF/gaslighter

It's pretty simple: a hook that fires when Claude think it has finished and prompts it to cause it to doubt its work just enough to go and double-check. It has 3 modes:

- **off**: in case you don't want to use it for the moment, but keep it installed

- **lite**: the hook triggers but only sends a nudge to the model (less aggressive)

- **full**: the hook triggers but it's blocking, it doesn't let the model ignore it (more aggressive)

I named it "Gaslighter" because ... you know... it's in the title (yes, I know, I am a very original person and really good at naming things)

I wanted to be sure I wasn't "gaslighting" myself (yes, I know, I am also great at puns) so it has a way for you to benchmark it. There's an `eval` skill that launches multiple headless Claude sessions on tasks designed around the typical scenarios where the model tends to lose track of its work. For each task the `eval` runs five arms: `baseline` (no plugin), `nudge-prompt` (no plugin, but an initial prompt telling the model to double-check its work) plus `gaslighter-off`, `gaslighter-lite` and `gaslighter-full`. Each run gets a deterministic score first, and then it loads a `judge` skill that launches one sub-agent per task to grade all the runs.

I'm not made of money so I've only been able to test it on around 900 runs using `haiku` and `sonnet`, and gotten pretty good results (see the attached image). Surprisingly, the `nudge-prompt` performs worse than just `baseline`, so it looks it's more about *when* you remind Claude to check its work than *how* (and even more surprising, just having the plugin present is enough for it to have slightly better results, still trying to figure that one out, maybe it will even out with more eval runs).

One thing to point out, and it's expected (especially when running it in full mode), the extra "completeness" comes at the cost of extra turns. Maybe with a better prompt I can reduce the number of extra turns, but that's for later.

I've been using it for a while and I'm quite happy with it, so I figured I might as well share it with y'all. It's still going to be under heavy development for a while, so any suggestions/feedback/criticism are welcome.

u/larrygfx — 1 day ago