Git pre-commit hook prevents AI coding agents from committing with stale documentation

Problem: AI coding agents commit code with outdated documentation
When working with AI coding assistants like Claude Code over multiple sessions, developers encounter a specific issue: the AI makes code changes (adding routes, refactoring components, renaming things) but doesn't update documentation files like ARCHITECTURE.md and README. This causes subsequent sessions to start with the AI reading documentation that describes code from weeks ago.
The consequences include:
- Claude hallucinating function names that no longer exist
- Referencing API endpoints that were renamed
- Suggesting patterns that contradict the current architecture
Advisory warnings don't work because when Claude is committing, nobody sees stderr output.
Solution: A blocking pre-commit hook
The developer created a Git pre-commit hook with this workflow:
- The hook knows which file changes should trigger documentation updates (configurable patterns per project)
- When Claude Code commits, the hook detects it via environment variables
- The hook skips trying to auto-fix documentation (which would cause a deadlock from spawning Claude from inside Claude)
- Instead, it exits with code 1 and displays a clear message: "docs are stale, update these files, then retry"
- Claude reads the error, updates the documentation, retries the commit, and the commit goes through
For human commits, the hook calls the Anthropic API directly and patches the relevant sections (taking approximately 20 seconds).
Every commit generates a session-context.md file with a summary of recent activity so the next session has continuity.
Implementation details
The tool is available as an npm package: @mossrussell/agent-guard
Key characteristics:
- Works with Claude Code, Cursor, Windsurf, and Copilot
- Zero dependencies
- Available at: https://www.npmjs.com/package/@mossrussell/agent-guard
📖 Read the full source: r/ClaudeAI
👀 See Also

ClawCut: A Python Proxy That Makes Small Local LLMs Usable with OpenClaw
ClawCut is a Python Flask proxy that solves common problems when connecting 7B/14B local models to OpenClaw, including context poisoning, infinite loops, and failed cron job outputs. It implements dynamic amnesia during tool calls and auto-delivery for scheduled tasks.

Kelet: Automated Root Cause Analysis for AI Agents
Kelet is a service that automatically analyzes production AI agent failures by clustering traces and signals to identify root causes and suggest fixes. It integrates via Python/TypeScript SDKs or an installer skill and is currently free during beta.

agentcache: Python Library for Multi-Agent LLM Prefix Caching
agentcache is a Python library that enables multi-agent LLM frameworks to share cached prompt prefixes, achieving up to 76% cache hit rates and cutting inference time by more than half in tests with GPT-4o-mini.

cldctrl: Terminal Dashboard for Managing Claude Code Sessions
cldctrl is an npm package that provides a terminal dashboard for launching and managing Claude Code sessions across projects. It reads existing ~/.claude data, auto-discovers projects, and shows token usage with rate limit bars.