fix(claudecode): never install a Claude hook with an empty command
Commit

The tool-hook commands became a runtime lookup (specCommand) that returns "" on a miss, and the installer then wrote that empty command into the user's .claude/settings.json. Skip an empty command, and pin that every spec in entireHookSpecs is installed with a non-empty command, which restores the check the compiler used to give.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M3N82X1DTH39YCSMKNZKXKQP
Checkpoints
Checkpoint 1