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.
Bhook-development
plugins/plugin-dev/skills/hook-development88/100 · Minor issues2 medium3 low
hook-development
plugins/plugin-dev/skills/hook-developmentThis 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/"* ]]; thenThe 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 8125The 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 || trueInstalling 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 linesLong 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
- A
claude-automation-recommender
43kanthropics/claude-plugins-official
Analyze a codebase and recommend Claude Code automations (hooks, subagents, skills, plugins, MCP servers). Use when user asks for automation recommendations, wants to optimize their Claude Code setup, mentions improving Claude Code workflows, asks how to first set up Claude Code for a project, or wants to know what Claude Code features they should use.
No security findings - A
access
43kanthropics/claude-plugins-official
Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.
No security findings - A
siege
43kanthropics/claude-plugins-official
Work on one hard mathematics problem in rounds: each round a judge writes a few self-contained questions, independent workers answer them, and the judge keeps a ledger of what is proved, refuted and open, until the judge concludes or the rounds run out, and then a proof.md says plainly what is and is not proved. A run takes hours and dozens of worker runs. Usage: /math-proof:siege [NAME=value settings] <the problem, stated in full, or the path of a file holding it>.
No security findings - A
access
43kanthropics/claude-plugins-official
Manage iMessage channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the iMessage channel.
No security findings - A
configure
43kanthropics/claude-plugins-official
Check iMessage channel setup and review access policy. Use when the user asks to configure iMessage, asks "how do I set this up" or "who can reach me," or wants to know why texts aren't reaching the assistant.
No security findings - A
access
43kanthropics/claude-plugins-official
Manage Telegram channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Telegram channel.
No security findings - A
configure
43kanthropics/claude-plugins-official
Set up the Telegram channel — save the bot token and review access policy. Use when the user pastes a Telegram bot token, asks to configure Telegram, asks "how do I set this up" or "who can reach me," or wants to check channel status.
No security findings - A
claude-md-improver
43kanthropics/claude-plugins-official
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".
No security findings