diff --git a/.claude/hooks/block_git_no_verify.py b/.claude/hooks/block_git_no_verify.py old mode 100644 new mode 100755 diff --git a/.claude/settings.json b/.claude/settings.json index ddeb2d22..74e635ec 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -124,5 +124,51 @@ "alwaysThinkingEnabled": true, "feedbackSurveyState": { "lastShownTime": 1754095752135 + }, + "hooks": { + "PreToolUse": [ + { + "comment": "Block git --no-verify and HUSKY=0", + "matcher": "tool_name == 'Bash'", + "hooks": [ + { + "type": "command", + "command": "python3 .claude/hooks/block_git_no_verify.py" + } + ] + }, + { + "comment": "Run Quality Gates before git commit/push", + "matcher": "tool_name == 'Bash'", + "hooks": [ + { + "type": "command", + "command": "python3 .claude/hooks/pre_git_quality_gates.py" + } + ] + }, + { + "comment": "Run AI review (Codex + Gemini) before ExitPlanMode", + "matcher": "tool_name == 'ExitPlanMode'", + "hooks": [ + { + "type": "command", + "command": "python3 .claude/hooks/pre_exit_plan_ai_review.py" + } + ] + } + ], + "PostToolUse": [ + { + "comment": "Run AI review (Codex + Gemini) after PR creation", + "matcher": "tool_name == 'Bash'", + "hooks": [ + { + "type": "command", + "command": "python3 .claude/hooks/post_pr_ai_review.py" + } + ] + } + ] } }