INSIDE_CLAUDE_CODE: "1" - Indicates code is running inside Claude CodeBASH_DEFAULT_TIMEOUT_MS: "420000" - Default timeout for bash commands (7 minutes)BASH_MAX_TIMEOUT_MS: "420000" - Maximum timeout for bash commands (7 minutes)
- Skill Evaluation: Analyzes prompts and suggests relevant skills
- Script:
.claude/hooks/skill-eval.sh - Behavior: Matches keywords, file paths, and patterns to suggest skills
- Timeout: 5s
- Script:
- Main Branch Protection: Prevents edits on main branch (5s timeout)
- Triggers: Before editing files with Edit, MultiEdit, or Write tools
- Behavior: Blocks file edits when on main branch, suggests creating feature branch
-
Ruff Formatting: Auto-format Python files (30s timeout)
- Triggers: After editing
.pyfiles - Command:
uv run ruff format - Behavior: Formats code, suppresses output on success, shows feedback on failure
- Triggers: After editing
-
Dependency Installation: Auto-install after dependency changes (60s timeout)
- Triggers: After editing
pyproject.tomlorrequirements*.txtfiles - Command:
uv sync - Behavior: Installs dependencies, suppresses output on success, shows feedback on failure
- Triggers: After editing
-
Test Runner: Run tests after test file changes (90s timeout)
- Triggers: After editing
test_*.py,*_test.py, or*/tests/*.pyfiles - Command:
uv run pytest <file> -x -q - Behavior: Runs tests in modified file, shows last 30 lines of output, non-blocking
- Triggers: After editing
-
Pyright Type Check: Type-check Python files (30s timeout)
- Triggers: After editing
.pyfiles - Command:
uv run pyright - Behavior: Shows first 20 lines of errors only, non-blocking, exit 0
- Triggers: After editing
-
Ruff Linting: Lint Python files (30s timeout)
- Triggers: After editing
.pyfiles - Command:
uv run ruff check - Behavior: Shows first 20 lines of issues only, non-blocking, exit 0
- Triggers: After editing
{
"feedback": "Message to show",
"suppressOutput": true,
"block": true,
"continue": false
}$CLAUDE_TOOL_INPUT_FILE_PATH: File being edited$CLAUDE_TOOL_NAME: Tool being used$CLAUDE_PROJECT_DIR: Project root directory
0: Success1: Non-blocking error (shows feedback)2: Blocking error (PreToolUse only - blocks the action)