Skip to content
Back to skills

Hook Creator Basher83 Agent Auditor

ASecurity

This skill should be used when the user asks to "create a hook", "write hook config", "add hooks.json", "configure event hooks", "create PreToolUse hook", "add SessionStart hook", "implement hook validation", "set up event-driven automation", needs guidance on hooks.json structure, hook events (PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd, UserPromptSubmit), or wants to automate workflows and implement event-driven behavior in Claude Code plugins.

  • 586 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentsshelldocumentation

Works with

  • claude code

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add majiayu000/claude-skill-registry --skill hook-creator-basher83-agent-auditor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hook Creator Basher83 Agent Auditor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hook Creator Basher83 Agent Auditor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-hook-creator-basher83-agent-auditor/badge)](https://www.skillsdirectory.com/skills/majiayu000-hook-creator-basher83-agent-auditor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hook-creator
description: >
  This skill should be used when the user asks to "create a hook", "write hook config", "add
  hooks.json", "configure event hooks", "create PreToolUse hook", "add SessionStart hook",
  "implement hook validation", "set up event-driven automation", needs guidance on hooks.json
  structure, hook events (PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd,
  UserPromptSubmit), or wants to automate workflows and implement event-driven behavior in Claude
  Code plugins.
---

# Hook Creator

## Overview

Creates hook configurations that respond to Claude Code events automatically. Hooks
enable automation like formatting on save, running tests after edits, or custom session
initialization.

**When to use:** User wants to automate workflows, needs event-driven behavior, or requests hooks for their plugin.

**References:** Consult
`plugins/meta/claude-docs/skills/claude-docs/reference/plugins-reference.md` for hook specifications and available
events.

## Hook Structure Requirements

Hooks are defined in `hooks/hooks.json` with:

1. **Event type** (SessionStart, PostToolUse, etc.)
2. **Matcher** (optional, for filtering which tool uses trigger hook)
3. **Hook actions** (command, validation, notification)
4. **Proper use of** `${CLAUDE_PLUGIN_ROOT}` for plugin-relative paths

## Available Events

From official documentation:

- `PreToolUse` - Before Claude uses any tool
- `PostToolUse` - After Claude uses any tool
- `UserPromptSubmit` - When user submits a prompt
- `Notification` - When Claude Code sends notifications
- `Stop` - When Claude attempts to stop
- `SubagentStop` - When subagent attempts to stop
- `SessionStart` - At session beginning
- `SessionEnd` - At session end
- `PreCompact` - Before conversation history compaction

## Creation Process

### Step 1: Identify Event and Purpose

Ask the user:

- What should happen automatically?
- When should it happen (which event)?
- What tool uses should trigger it (if PostToolUse)?

### Step 2: Choose Hook Type

Three hook types:

- **command**: Execute shell commands/scripts
- **validation**: Validate file contents or project state
- **notification**: Send alerts or status updates

### Step 3: Write Hook Configuration

Structure for `hooks/hooks.json`:

```json
{
  "hooks": {
    "EventName": [
      {
        "matcher": "ToolName1|ToolName2",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/script.sh"
          }
        ]
      }
    ]
  }
}
```

### Step 4: Create Associated Scripts

If using command hooks:

1. Create script in plugin's `scripts/` directory
2. Make executable: `chmod +x scripts/script.sh`
3. Use `${CLAUDE_PLUGIN_ROOT}` for paths

### Step 5: Verify Against Official Docs

Check
`plugins/meta/claude-docs/skills/claude-docs/reference/plugins-reference.md` for:

- Current event names
- Hook configuration schema
- Environment variable usage

## Key Principles

- **Event Selection**: Choose most specific event for the need
- **Matcher Precision**: Use matchers to avoid unnecessary executions
- **Script Paths**: Always use `${CLAUDE_PLUGIN_ROOT}` for portability
- **Error Handling**: Scripts should handle errors gracefully

## Examples

### Example 1: Code Formatting Hook

User: "Auto-format code after I edit files"

Hook configuration:

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"
          }
        ]
      }
    ]
  }
}
```

Creates `scripts/format-code.sh` that runs formatter on modified files.

### Example 2: Session Welcome Message

User: "Show a message when Claude starts"

Hook configuration:

```json
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "echo 'Welcome! Plugin loaded successfully.'"
          }
        ]
      }
    ]
  }
}
```

Simple command hook, no external script needed.

### Example 3: Test Runner Hook

User: "Run tests after I modify test files"

Hook configuration:

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/run-tests.sh"
          }
        ]
      }
    ]
  }
}
```

Creates `scripts/run-tests.sh` that detects test file changes and runs relevant tests.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…