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

Developer Creates Practical Claude Skills for Kotlin Multiplatform Projects
A developer built a public repository of Claude skills specifically for Kotlin Multiplatform work after finding existing skills too generic, opinionated, or thin. The skills cover architecture reviews, feature implementation, modularization, Compose Multiplatform UI, navigation, platform bridges, deep links, adaptive UI, testing, and build governance.

Homebutler: OpenClaw Skill for Homelab Management via Telegram
Homebutler is a single Go binary (~13MB, zero dependencies) that works as an OpenClaw skill to manage homelabs from Telegram chat. It monitors servers, restarts Docker containers, wakes machines, scans networks, and alerts on resource spikes without SSH sessions or dashboard logins.

Claw Code Agent: Python Reimplementation of Claude Code Architecture for Local Models
Claw Code Agent is a Python reimplementation of the Claude Code agent architecture that runs with local open-source models through OpenAI-compatible backends like vLLM and Ollama, featuring tool calling, slash commands, and tiered permissions.

Tangent: Chrome Extension for Branching Claude Conversations
A free, open-source extension that lets you open side threads on Claude without losing your place.