Skip to content

🌐 日本語

Why Not Show LLMs? ​

NOTE

Design rationale for placing settings.json and Hooks outside context.

Core Question ​

"If you just teach the LLM the rules, why bother placing them outside the context?"

The answer boils down to three structural problems.

1. Resilience to Instruction Decay ​

Even if you instruct an LLM to "run tests every time," compliance degrades over long conversations (average 39% performance drop). Hooks aren't in the context, so they're unaffected by Instruction Decay.

2. Resilience to Sycophancy ​

LLMs may skip judgment due to following tendency ("tests should be fine"). Hooks execute mechanically without LLM judgment, leaving no room for following along.

3. Saving Context Budget ​

"Run lint every time" "run tests every time" "format every time" — Writing these in CLAUDE.md constantly consumes context. Moving to Hooks means zero budget consumption.

Decision Criteria ​

Principle ​

Place rules requiring judgment in CLAUDE.md / Rules; place mechanically enforceable rules in Hooks.

WARNING

There is one trap in this flow. If the Hook itself judges via an LLM (Prompt Hook / Agent Hook), Instruction Decay, Sycophancy, and non-determinism all move straight into the gatekeeper. What makes a gate deterministic is not "we moved it to Hooks" but "we made it a Command Hook." For what happens when a verdict is delegated to an LLM, see Judgment Drift.


Previous: Hooks Lifecycle

Part 7 Complete → Next: Part 8: Session Management and Memory Persistence

Released under the CC BY 4.0 License.