skillhash

Is hook-development safe?

Grade B, 88/100. Minor issues.

This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.

B

hook-development

plugins/plugin-dev/skills/hook-development
88/100 · Minor issues2 medium3 low

This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.

Content hash
sha256:645982aa6a62aa0049ddc61b8365130060a95ba723b0d710622fee07942e1625
Files
11
Quality
100/100

Security findings

  • mediumDestructive commandSL302 · plugins/plugin-dev/skills/hook-development/examples/validate-bash.sh:31
    if [[ "$command" == *"dd if="* ]] || [[ "$command" == *"mkfs"* ]] || [[ "$command" == *"> /dev/"* ]]; then

    The command can wipe files, disks or shared history. Fix: Scope the command to a temp directory the skill created, and confirm with the user first. Severity lowered: the line reads as documentation, not an instruction.

  • mediumDestructive commandSL302 · plugins/plugin-dev/skills/hook-development/references/migration.md:66
    "prompt": "Command: $TOOL_INPUT.command. Analyze for: 1) Destructive operations (rm -rf, dd, mkfs, etc) 2) Privilege escalation (sudo) 3) Network operations wi…

    The command can wipe files, disks or shared history. Fix: Scope the command to a temp directory the skill created, and confirm with the user first. Severity lowered: the line reads as documentation, not an instruction.

  • lowUploads data to a remote hostSL203 · plugins/plugin-dev/skills/hook-development/references/advanced.md:278
    curl -X POST "$SLACK_WEBHOOK" \

    The skill sends data to a network endpoint. Fix: Make sure the destination is documented and the user approves each upload. Pin the exact host. Severity lowered: the line reads as documentation, not an instruction.

  • lowUploads data to a remote hostSL203 · plugins/plugin-dev/skills/hook-development/references/advanced.md:308
    echo "hook.pretooluse.${tool_name}:1|c" | nc -u -w1 statsd.local 8125

    The skill sends data to a network endpoint. Fix: Make sure the destination is documented and the user approves each upload. Pin the exact host. Severity lowered: the line reads as documentation, not an instruction.

  • lowDestructive commandSL302 · plugins/plugin-dev/skills/hook-development/references/migration.md:51
    - Misses other dangerous commands (`dd`, `mkfs`, etc.)

    The command can wipe files, disks or shared history. Fix: Scope the command to a temp directory the skill created, and confirm with the user first. Severity lowered: the line reads as documentation, not an instruction.

  • infoUnpinned package installSL501 · plugins/plugin-dev/skills/hook-development/references/patterns.md:202
    npx eslint "$file_path" 2>&1 || true

    Installing without a version means a future malicious release lands automatically. Fix: Pin an exact version (pkg==1.2.3, pkg@1.2.3). Severity lowered: the line reads as documentation, not an instruction.

Quality

  • infoSKILL.md is longSL705 · plugins/plugin-dev/skills/hook-development/SKILL.md:1
    713 lines

    Long skills spend context on every load. Fix: Keep SKILL.md under 500 lines and move reference material into linked files.

Files in this skill
  • SKILL.md15.9 KB
  • examples/load-context.sh1.7 KB
  • examples/validate-bash.sh1.3 KB
  • examples/validate-write.sh1.2 KB
  • references/advanced.md9.9 KB
  • references/migration.md8.1 KB
  • references/patterns.md7.0 KB
  • scripts/README.md3.6 KB
  • scripts/hook-linter.sh4.1 KB
  • scripts/test-hook.sh5.2 KB
  • scripts/validate-hook-schema.sh5.0 KB

Questions about hook-development

Is hook-development safe to install?
Our scanner gave hook-development grade B (88/100): minor issues. It matched 5 rule(s); review them below before installing. Static analysis cannot prove safety, so pin the reviewed revision with a lockfile.
How do I install hook-development in Claude Code or Codex?
Run skillhash add github:anthropics/claude-plugins-official/plugins/plugin-dev/skills/hook-development. It downloads the exact commit, checks the grade against your policy, writes skills.lock and installs it into .claude/skills and .agents/skills.
What happens if hook-development changes upstream?
Its content hash changes. skillhash verify fails in CI until you review the new version and update the lock. With a watch, you also get an alert.

More from anthropics/claude-plugins-official