This skill should be used when the user asks to "create a hook",.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Hook Development for Claude Code Plugins
## Overview
Hooks are event-driven automation scripts that execute in response to Claude Code events. Use hooks to validate operations, enforce policies, add context, and integrate external tools into workflows.
**Key capabilities:**
- Validate tool calls before execution (PreToolUse)
- React to tool results (PostToolUse)
- Enforce completion standards (Stop, SubagentStop)
- Load project context (SessionStart)
- Automate workflows across the development lifecycle
## Hook Types
### Prompt-Based Hooks (Recommended)
Use LLM-driven decision making for context-aware validation:
```json
{
"type": "prompt",
"prompt": "Evaluate if this tool use is appropriate: $TOOL_INPUT",
"timeout": 30
}
```
**Supported events:** Stop, SubagentStop, UserPromptSubmit, PreToolUse
**Benefits:**
- Context-aware decisions based on natural language reasoning
- Flexible evaluation logic without bash scripting
- Better edge case handling
- Easier to maintain and extend
### Command Hooks
Execute bash commands for deterministic checks:
```json
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh",
"timeout": 60
}
```
…
The line at the top of this page pins the label v0.1.0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
GET https://markdownregistry.com/api/v1/artifacts/art_rdu5ths6x6we2dby
GET https://markdownregistry.com/api/v1/resolve?ref=nota-america/forgecat-agent-profiles/hook-development
GET https://markdownregistry.com/api/v1/blob/46f24a8033d16a63f5f6a748026e96dab689a74e252dfde7c94f48bdadc036b8
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/api-and-interface-design/SKILL.md · Guides stable API and interface design. Use when designing APIs,
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/browser-testing-with-devtools/SKILL.md · Tests in real browsers via Chrome DevTools MCP. Use when building
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/ci-cd-and-automation/SKILL.md · Automates CI/CD pipeline setup. Use when setting up or modifying
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/code-review-and-quality/SKILL.md · Conducts multi-axis code review. Use before merging any change. Use
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/code-simplification/SKILL.md · Simplifies code for clarity. Use when refactoring code for clarity
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/constraint-driven-development/SKILL.md · Establishes a project's quality bar as a written contract and stops
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/context-engineering/SKILL.md · Optimizes agent context setup. Use when starting a new session,
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/deprecation-and-migration/SKILL.md · Manages deprecation and migration. Use when removing old systems,
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/documentation-and-adrs/SKILL.md · Records decisions and documentation. Use when you need to document
nota-america/forgecat-agent-profiles · profiles/addyosmani/agent-skills/for-claude/.claude/skills/doubt-driven-development/SKILL.md · Subjects every non-trivial decision to a fresh-context adversarial
anthropics/claude-plugins-official · plugins/plugin-dev/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_plugin-dev/for-forgecat/platforms/codex/.agents/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_plugin-dev/for-codex/.agents/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_plugin-dev/for-forgecat/platforms/cursor/.cursor/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_plugin-dev/for-forgecat/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate…
nota-america/forgecat-agent-profiles · profiles/anthropics/claude-plugins-official/anthropics_claude-plugins-official_plugin-dev/for-claude/.claude/skills/hook-development/SKILL.md · This skill should be used when the user asks to "create a hook",
kanevry/session-orchestrator · skills/hook-development/SKILL.md · Use when creating, modifying, or debugging Claude Code hooks — PreToolUse, PostToolUse, Stop, SubagentStop…