Hooks Validator
Validate hooks configuration in .claude/settings.json and hook scripts.
Validation Steps
1. Check settings.json
Verify hooks section exists and is valid.
2. Validate Hook Structure
{
"hooks": {
"PreToolUse": [...],
"PostToolUse": [...],
"UserPromptSubmit": [...],
"Stop": [...],
"SubagentStop": [...],
"SessionStart": [...],
"SessionEnd": [...],
"PreCompact": [...],
"PostCompact": [...],
"Notification": [...],
"Elicitation": [...],
"ElicitationResult": [...]
}
}
3. Validate Each Hook Entry
-
typeis "command" or "prompt" - If
type: "command":commandpath exists and script is executable - If
type: "prompt":promptstring is non-empty -
timeoutis positive integer if present (default: 60s command, 30s prompt) -
onceis boolean if present
4. Validate Hook Scripts
- File exists and is executable
- Outputs valid JSON
- Has appropriate shebang
Output Format
## Hooks Validation Report
### Configuration Status: VALID / INVALID
### Configured Hooks
| Type | Matcher | Script | Status |
|------|---------|--------|--------|
| Stop | * | auto-loop-stop.sh | OK |
### Script Validation
| Script | Exists | Executable | Valid Output |
|--------|--------|------------|--------------|
| auto-loop-stop.sh | OK | OK | OK |
### Issues Found
1. [Issue and fix]
Auto-Fix
- Make scripts executable
- Add missing shebang
- Create missing hook scripts