Four Claude Code Hooks Enforce Voice and Tone Consistency in AI-Written Copy

A developer has implemented a system using four Claude Code hooks to enforce voice and tone consistency when AI agents write copy. The approach addresses the problem where AI-generated content gradually drifts off-brand through hedging phrases and generic language.
Hook Implementation
The system uses four specific hooks:
- UserPromptSubmit hook: Detects VOICE-AND-TONE.md files and injects an instruction to delegate to a reviewer agent before editing any copy file
- PreToolUse hook: Blocks Edit/Write calls to copy-bearing files (.tsx, .md) unless a session marker exists
- PostToolUse hook: Creates the session marker after the reviewer completes its work
- Stop hook: Removes the marker after each response, so the next turn starts locked and requires a fresh review
Reviewer Agent Design
The reviewer is a Claude Code agent with read-only tools (Read, Glob, Grep). It reads the voice guide, reads the proposed copy, and reports violations with:
- The offending text
- The rule it breaks
- A suggested fix
The reviewer cannot edit files directly, maintaining separation of concerns.
Key Design Philosophy
The system functions as a gate rather than a nudge. A missed voice review means off-brand copy could ship to production. The developer notes that the cost of one agent call before editing is lower than the cost of finding and fixing drift after the fact.
The full implementation includes hook code, agent definition, and a starter template for voice guides. The developer asks whether others have built similar hooks for non-functional constraints like accessibility or coding standards.
📖 Read the full source: r/ClaudeAI
👀 See Also

Freddy CLI: Connect Health Data to AI Agents via MCP
Freddy publishes an open-source CLI to connect wearable health data (Oura, Polar, Withings, etc.) to AI coding agents via MCP. Commands for OAuth device flow, data querying, and token refresh.

VTCode: A Rust TUI Coding Agent That Aggressively Trims Context with AST-Level Chunking
VTCode is an open-source Rust TUI coding agent that aggressively trims context using AST-level chunking via ripgrep and ast-grep. It supports custom OpenAI-compatible providers, sandboxing with macOS Seatbelt and Linux Landlock, and tree-sitter-bash validation on generated commands.

CostClaw: Free Local Cost Tracking Dashboard for OpenClaw Agents
CostClaw is a free, local plugin that captures every LLM call via OpenClaw's native hooks and provides a dashboard showing model breakdowns, per-session costs, and hourly spend charts. The developer discovered their heartbeat agent was running Claude Sonnet every 3 minutes 24/7, costing $60/month, and switching to Haiku cut their bill by ~65%.

AgentCall: Let Claude Code Join Google Meet, Zoom, or Teams Calls as a Teammate
AgentCall.dev pipes your existing Claude Code, Codex, or Cursor session into Google Meet, Teams, or Zoom with voice, screen sharing, and chat — no desktop grab, no third-party data in direct mode.