Stop Telling Claude to 'Be Careful' — 3 Hook Tools That Fix What Prompts Can't

If you've been writing "Do not guess files, always read them before answering" into your CLAUDE.md, you've hit a wall. The developer behind the new npm tools Throughline, Caveat, and Spotter realized the same thing: all the problems that could be fixed by telling Claude to 'be careful' had already been fixed. What remained were issues that could not be fixed structurally.
What Changed — The Hook Realization
Claude Code has a hook mechanism that fires before sending prompts, after a tool runs, or when a session ends. The key insight: even if Claude itself doesn't notice a problem, you can observe the state from the outside and inject the necessary processing.
This changes what you can offload from CLAUDE.md. Instead of bloating your instructions with warnings Claude will skim, you let hooks enforce behavior automatically.
The Three Tools You Can Install Today
Throughline (Subtraction — Context Bloat)
Problem: Claude cannot notice when its context is bloated. It's decided at the moment the request is sent, so it can't see its own size.
Solution: Throughline offloads tool inputs and outputs to SQLite and removes them from the context. Once the AI has used a file read, grep result, or bash output to make a decision, its purpose is fulfilled. Yet it remains until the end, consuming tokens. Throughline strips them out and lets Claude retrieve them on demand.
Install: npx throughline — it hooks into Claude Code automatically.
Caveat (Accumulation — Past Traps)
Problem: Claude doesn't remember traps encountered in past sessions. Adding to CLAUDE.md makes it heavy and gets skimmed.
Solution: When you fall into a trap, write it in Markdown. Caveat automatically surfaces those notes during similar situations — when you send a similar prompt, receive a similar tool error, or when a "struggle signal" is observed at the end of a session. Relevant past notes get injected via hooks.
Install: npx caveat — works with your existing Markdown notes.
Spotter (Addition — Missed Tool Calls)
Problem: Claude doesn't notice when it forgets to call a tool. It doesn't know what it doesn't know.
Solution: Run another Claude (Haiku 4.5) side-by-side that has a perfect grasp of the tool catalog. It watches the user's input and final response. If it notices "You could have answered this by using web_search," it sends a pointer to the main Claude via a hook.
Install: npx spotter — requires a separate API key for the auditor Claude.
The Common Pattern: Expect Nothing from Claude

All three tools share a design that expects nothing from Claude itself:
Context bloat Context management Hook + SQLite Past traps Past memories Hook + past notes Missed tool calls Detection of missed steps Hook + separate Claude"Changes needed for Claude" is zero. You write prompts and CLAUDE.md as usual. You don't add more "be careful" warnings.
What This Means For You
If you've been fighting with Claude Code by adding more instructions, you're fighting the wrong battle. The problems that remain — context bloat, cross-session memory, tool selection accuracy — are structural. Claude itself cannot fix them because it cannot recognize its own limitations.
Stop asking Claude to be careful. Start reinforcing from the outside.
Try It Now
- Pick one problem you see daily: context bloat, repeated traps, or missed tool calls.
- Install the corresponding tool:
npx throughline,npx caveat, ornpx spotter. - Remove the corresponding instructions from CLAUDE.md. You don't need them anymore.
- Observe the difference. The tool handles it automatically, every time.
All three are on npm under MIT license. GitHub repos: Throughline, Caveat, Spotter.
What's Still Missing
The author identifies three structural problems not yet reinforced:
- Long-term role drift: Claude becomes soft after 20 turns in a session.
- Context loss through sub-agents: Task tool sub-agents don't inherit implicit parent context.
- Tool selection accuracy: Spotter detects missed calls but not wrong tool selection.
These are your next targets if you want to build your own hook tools.
Source: dev.to








