Skip to content

hooks-missing-script

Hook scripts must reference existing files

Error

Rule Details

This rule checks that hook commands pointing to relative script paths (starting with ./ or ../) reference files that actually exist on disk. It skips validation for inline shell commands (containing spaces or shell operators), commands with variable expansions, and absolute paths or commands expected to be in PATH. A missing script will cause the hook to fail at runtime, breaking the intended automation workflow.

Incorrect

Hook referencing a script that does not exist

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "*",
        "hooks": [{ "type": "command", "command": "./scripts/missing.sh" }]
      }
    ]
  }
}

Correct

Hook referencing an existing script file

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "*",
        "hooks": [{ "type": "command", "command": "./scripts/lint.sh" }]
      }
    ]
  }
}

How To Fix

Verify the script path is correct and the file exists. Create the missing script file if needed, or update the command to point to the correct location.

Options

This rule does not have any configuration options.

Resources

Version

Available since: v0.2.0