No Excuses - 6 hooks that stop Claude Code from faking "done"

byβ€’
Claude Code's #1 problem: it says "βœ… Done!" but never ran the tests. CLAUDE.md rules get ignored β€” they're just suggestions. No Excuses is 6 Node.js hooks that ENFORCE: πŸ›‘ finish-gate β€” blocks "done" until tests pass πŸ“‹ task-gate β€” no stopping with unfinished steps β›” rule-guard β€” blocks rm -rf, force-push, .env edits πŸ“‰ read-guard β€” stops token waste 🧠 context-keeper β€” memory survives compaction πŸ”’ audit-guard β€” blocks secret leaks Works on Windows. Zero deps. 2-min install.

Add a comment

Replies

Best
Maker
πŸ“Œ
I built this after Claude Code told me "done" for the tenth time β€” with failing tests it never ran. CLAUDE.md rules didn't help (it ignores them), so I moved enforcement to hooks. An exit code can't be talked past. The finish-gate is my favorite: when Claude tries to stop, it runs your tests. Fail = it's blocked and sent back to fix them. "Done" finally means done. Happy to answer any questions about how the hooks work!

I built this while shipping my own SaaS (BillReach) almost entirely with Claude Code β€” after the tenth time "Done!" meant "tests failing."

rules didn't help (Claude ignores them), so I moved enforcement to hooks. An exit code can't be argued past.

finish-gate is my favorite: Claude tries to stop β†’ it runs your tests β†’ fail = blocked, sent back to fix. "Done" finally means done.

Happy to answer any questions about how the hooks work!

the rule-guard hook saved me from a force-push i almost did on main, install took about two minutes and it just worked. finally something that actually blocks me instead of just suggesting

honestly the finish-gate hook alone sold me, claude kept claiming tests passed when they obviously didn't. set this up in like three minutes and the rule-guard already saved me from a sketchy env file edit. solid stuff.

finally something that actually holds claude accountable instead of just taking its word for it. the rm -rf block alone has probably saved me a few weeks of my life at this point

Love the rules-enforcing hooks, this feels like the missing guardrails for Claude Code. One thing I'd love to see added is a quick `npx no-excuses status` command (or similar) that shows which hooks fired and how often in the last session, so you can spot which rules you're tripping the most and tighten things up. Would make tuning the ruleset way easier than grepping logs.

The hooks sound like a lifesaver for keeping Claude honest, especially the finish-gate since lying about passing tests is exactly what wastes my afternoon. One thing that would help me a lot is a "dry-run mode" where the guards log what they would have blocked without actually stopping the work, so I can tune the rules for a new project without fighting the assistant mid-task.

The finish-gate idea is genuinely useful, especially the part about blocking "done" until tests actually pass. One thing that would make this a no-brainer for my team though is a dry-run mode where the hooks log what they would block without actually blocking, so we can test the guard rails safely before rolling them out to everyone without worrying about it getting in the way during evaluation or experimentation.

Finally something that actually catches Claude when it skips the test step, the finish-gate alone has saved me from shipping broken stuff twice this week. Wish I'd had the rule-guard earlier too, almost lost a config file last month.

finally something that actually forces claude code to stop bullshitting me, the finish gate alone is worth it honestly