Prompt hook billing undocumented + design consideration for quality enforcement
The gap
Hook billing is not documented anywhere (checked hooks.md, hooks-guide.md, costs.md). Users building quality enforcement systems with prompt hooks cannot determine the cost impact.
The design consideration
Prompt hooks default to Haiku, but sophisticated evaluations (governance decisions, claim verification, contradiction detection) require Opus-level reasoning. This creates a paradox:
- Use Haiku → evaluations are unreliable (smaller model policing a larger model's judgment calls)
- Use Opus → user pays double per response (Opus for conversation + Opus for policing)
- Use
commandhooks → free but limited to pattern matching, misses judgment calls
For users investing in automated quality enforcement (which Anthropic encourages via the hook system), the current model creates a penalty for good governance practices.
Context
We're building an 11-officer automated quality enforcement system using Claude Code hooks. Officers police claims, governance tiers, security, delegation quality, and more. The evaluations they need to perform are complex judgment calls — not simple keyword matching.
Pattern-matching (command hooks) covers ~70% of cases for free. The remaining ~30% requires reasoning about whether claims are verified, whether governance tiers were followed, whether contradictions exist in a response. These are Opus-level evaluations, not Haiku-level.
Questions
- How are prompt hook tokens billed on API-key plans with auto-recharge?
- How are prompt hook tokens billed on Max subscription plans?
- Is there consideration for including governance/policing hooks in the subscription cost — given that quality enforcement benefits both the user AND Anthropic's mission of safe, reliable AI?
Suggestion
Consider a "governance tier" for hooks — a way to run quality enforcement evaluations without doubling the user's cost. Users who invest in building safety systems around Claude should be rewarded, not penalized.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗