{ "description": "Strict enforcement - block on all failures. Supports convention-based context injection.", "comment": "Context files in .claude/context/ auto-inject without configuration. See CONVENTIONS.md", "gates": { "check": { "description": "Quality checks must pass", "comment": "Examples: 'npm run lint' | 'cargo clippy' | 'mise run check'", "command": "mise run check", "on_pass": "CONTINUE", "on_fail": "BLOCK" }, "test": { "description": "All tests must pass", "comment": "Examples: 'npm test' | 'cargo test' | 'mise run test'", "command": "mise run test", "on_pass": "CONTINUE", "on_fail": "BLOCK" }, "build": { "description": "Build must succeed", "comment": "Examples: 'npm run build' | 'cargo build' | 'mise run build'", "command": "mise run build", "on_pass": "CONTINUE", "on_fail": "BLOCK" } }, "hooks": { "PostToolUse": { "enabled_tools": ["Edit", "Write", "mcp__serena__replace_symbol_body"], "gates": ["check"] }, "SubagentStop": { "enabled_agents": [], "gates": ["check", "test", "build"] } } }