Agent skill

Claude Hook Writer

by secondsky in secondsky/claude-skills

Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls.

MITAuto-check: notesAgent Workflows

Install Claude Hook Writer

skills CLI
$ npx skills add secondsky/claude-skills --skill claude-hook-writer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install secondsky/claude-skills claude-hook-writer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/secondsky/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/claude-hook-writer/skills/claude-hook-writer .claude/skills/claude-hook-writer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
claude-hook-writer
GitHub stars
227
Token cost
~3.1k tokens
SKILL.md length
1,254 words
Files
7 (incl. references)
Skills in repo
169
Repo updated
First seen
Licence
MIT

At a glance

Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls.

  • Works in 4 steps: Security is Non-Negotiable → Reliability Over Features → Performance Matters → …
  • Debugging Claude Code hooks
  • SKILL.md covers Overview, When to Use This Skill, Core Principles and Hook Design Checklist, plus 3 more sections
  • Calls jq, prettier and npm

What it does

Claude Hook Writer is an agent skill from secondsky/claude-skills. Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls. Use when creating, reviewing, or debugging Claude Code hooks.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/code-templates.md`, `references/publishing-guide.md` and `references/quick-reference.md`).

It sits in Agent Workflows, covering Hooks and plugins and Architecture decision records. The repository describes itself as: Production-ready skills for Claude Code CLI - Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • Debugging Claude Code hooks
  • Tasks that involve Hooks and plugins
  • Tasks that involve Architecture decision records

Example prompts

  • “/claude-hook-writer”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Security is Non-Negotiable
  2. Reliability Over Features
  3. Performance Matters
  4. Fail Gracefully

What it can do on your machine

Read from SKILL.md and the folder at commit 8837836. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • prettier
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.claude.com
    • prpm.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Claude Hook Writer loads about 3.1k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 1,254 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:245
    if [[ $FILE == ".env" ]]; then
  • NoteMentions a .env fileSKILL.md:246
    echo "Don't edit .env" >&2
  • NoteMentions a .env fileSKILL.md:251
    if [[ $FILE == ".env" ]]; then
  • NoteMentions a .env fileSKILL.md:252
    echo "Blocked: .env is protected" >&2
  • NoteMentions a .env fileSKILL.md:296
    ✅ Block sensitive files (`.env`, `*.key`, credentials)
  • NoteMentions a .env fileSKILL.md:326
    - Blocking sensitive files (`.env`, keys, credentials)
  • NoteMentions a .env fileSKILL.md:386
    - [ ] Blocks sensitive files (`.env`, `*.key`, etc.)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from secondsky/claude-skills at commit 8837836, republished under its MIT licence (© secondsky). 1,254 words, ~3,148 tokens.

Download SKILL.mdSave it as .claude/skills/claude-hook-writer/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
claude-hook-writer
description
Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls. Use when creating, reviewing, or debugging Claude Code hooks.
metadata.version
2.0.0
metadata.author
Claude Skills Maintainers
metadata.last_verified
2025-12-17
metadata.optimization_date
2025-12-17
metadata.token_savings
~55%
metadata.errors_prevented
5
license
MIT

Claude Hook Writer

Status: Production Ready Version: 2.0.0 (Optimized with progressive disclosure) Last Updated: 2025-12-17


Overview

Expert guidance for writing secure, reliable, and performant Claude Code hooks. This skill validates design decisions, enforces best practices, and prevents common pitfalls.


When to Use This Skill

  • Designing a new Claude Code hook
  • Reviewing existing hook code
  • Debugging hook failures
  • Optimizing slow hooks
  • Securing hooks that handle sensitive data
  • Publishing hooks as PRPM packages

Core Principles

1. Security is Non-Negotiable

Hooks execute automatically with user permissions and can read, modify, or delete any file the user can access.

ALWAYS validate and sanitize all input. Hooks receive JSON via stdin—never trust it blindly.

For complete security patterns: Load references/security-requirements.md when implementing validation or securing hooks.

2. Reliability Over Features

A hook that works 99% of the time is a broken hook. Edge cases (Unicode filenames, spaces in paths, missing tools) will happen.

Test with edge cases before deploying.

For reliability patterns: Load references/reliability-performance.md when handling errors or edge cases.

3. Performance Matters

Hooks block operations. A 5-second hook means Claude waits 5 seconds before continuing.

Keep hooks fast. Run heavy operations in background.

For performance optimization: Load references/reliability-performance.md when optimizing hook speed.

4. Fail Gracefully

Missing dependencies, malformed input, and disk errors will occur.

Handle errors explicitly. Log failures. Return meaningful exit codes.


Hook Design Checklist

Before writing code, answer these questions:

What Event Does This Hook Target?
  • PreToolUse - Before tool execution (modify input, validate, block)
  • PostToolUse - After tool completes (format, log, cleanup)
  • UserPromptSubmit - Before user input processes (validate, enhance)
  • SessionStart - When Claude Code starts (setup, env check)
  • SessionEnd - When Claude Code exits (cleanup, persist state)
  • Notification - During alerts (desktop notifications, logging)
  • Stop / SubagentStop - When responses finish (cleanup, summary)
  • PreCompact - Before context compaction (save important context)

Common mistake: Using PostToolUse for validation (too late—tool already ran). Use PreToolUse to block operations.

Which Tools Should Trigger This Hook?

Be specific. matcher: "*" runs on every tool call.

Good matchers:

  • "Write" - Only file writes
  • "Edit|Write" - File modifications
  • "Bash" - Shell commands
  • "mcp__github__*" - All GitHub MCP tools

Bad matchers:

  • "*" - Everything (use only for logging/metrics)
What Input Does This Hook Need?

Different tools provide different input. Check what's available:

bash
# PreToolUse / PostToolUse
{
  "input": {
    "file_path": "/path/to/file.ts",     // Read, Write, Edit
    "command": "npm test",                // Bash
    "old_string": "...",                  // Edit
    "new_string": "..."                   // Edit
  }
}

Validate fields exist before using them:

bash
FILE=$(echo "$INPUT" | jq -r '.input.file_path // empty')
if [[ -z "$FILE" ]]; then
  echo "No file path provided" >&2
  exit 1
fi
Should This Be a Command Hook or Prompt Hook?

Command hooks (type: "command"):

  • Fast (milliseconds)
  • Deterministic
  • Good for: formatting, logging, file checks

Prompt hooks (type: "prompt"):

  • Slow (2-10 seconds)
  • Context-aware (uses LLM)
  • Good for: complex validation, security analysis, intent detection

Rule of thumb: Use command hooks unless you need LLM reasoning.

What Exit Code Communicates Success/Failure?
  • exit 0 - Success (continue operation)
  • exit 2 - Block operation (show error to Claude)
  • exit 1 or other - Non-blocking error (log but continue)

For PreToolUse hooks:

  • Exit 2 blocks the tool from running
  • Exit 0 allows it (optionally with modified input)

For PostToolUse hooks:

  • Exit codes don't block (tool already ran)
  • Use exit 0 for success, 1 for logging errors

Top 5 Pitfalls (Must Know)

Pitfall #1: Not Quoting Variables

Error: Hooks break on filenames with spaces or special characters

Why: Unquoted variables split on whitespace

Example:

bash
# ❌ WRONG - breaks on "my file.txt"
cat $FILE
prettier --write $FILE
rm $FILE

# ✅ RIGHT - handles spaces and special chars
cat "$FILE"
prettier --write "$FILE"
rm "$FILE"

Why this matters: Files with spaces ("my file.txt"), Unicode ("文件.txt"), or special chars ("file (1).txt") are common.

For quoting best practices: Load references/security-requirements.md for comprehensive input handling patterns.


Pitfall #2: Trusting Input Without Validation

Error: Hook executes on malicious or malformed input

Why: Not validating JSON fields before using them

Example:

bash
# ❌ DANGEROUS - no validation
FILE=$(jq -r '.input.file_path')
rm "$FILE"  # Could delete ../../../etc/passwd

# ✅ SAFE - validate first
FILE=$(jq -r '.input.file_path // empty')
[[ -n "$FILE" ]] || exit 1
[[ "$FILE" == "$CLAUDE_PROJECT_DIR"* ]] || exit 2
[[ "$FILE" != *".."* ]] || exit 2
rm "$FILE"

Why this matters: Prevents path traversal attacks, protects files outside project, prevents malformed input crashes.

For complete security patterns: Load references/security-requirements.md.


Pitfall #3: Blocking Operations Too Long

Error: Hook takes 30+ seconds, blocking Claude

Why: Running expensive operations (tests, builds) synchronously in hook

Example:

bash
# ❌ BLOCKS Claude for 30 seconds
npm test
npm run build

# ✅ RUN IN BACKGROUND - returns immediately
(npm test > /tmp/test-results.log 2>&1 &)
(npm run build > /tmp/build.log 2>&1 &)
exit 0

Why this matters: Slow hooks create bad user experience. Target < 100ms for PreToolUse, < 500ms for PostToolUse.

For performance optimization: Load references/reliability-performance.md.


Pitfall #4: Wrong Exit Code for Blocking

Error: PreToolUse hook doesn't actually block the operation

Why: Using exit 1 instead of exit 2

Example:

bash
# ❌ WRONG - logs error but doesn't block
if [[ $FILE == ".env" ]]; then
  echo "Don't edit .env" >&2
  exit 1  # Tool still runs!
fi

# ✅ RIGHT - actually blocks
if [[ $FILE == ".env" ]]; then
  echo "Blocked: .env is protected" >&2
  exit 2  # Tool is blocked
fi

Why this matters: Exit 1 only logs errors. Exit 2 is required to block in PreToolUse hooks.

For exit code patterns: Load references/hook-templates.md for complete hook response patterns.


Pitfall #5: Assuming Tools Exist

Error: Hook crashes when dependency is missing

Why: Not checking if tool is installed before using

Example:

bash
# ❌ BREAKS if prettier not installed
prettier --write "$FILE"

# ✅ SAFE - check first
if command -v prettier &>/dev/null; then
  prettier --write "$FILE"
else
  echo "prettier not installed, skipping" >&2
  exit 0  # Success exit, just skip
fi

Why this matters: Users may not have all tools installed. Hooks should degrade gracefully.

For reliability patterns: Load references/reliability-performance.md.


Critical Rules

Show full SKILL.md (536 more words)Show less
Always Do

✅ Validate all JSON input before using (jq -r '... // empty') ✅ Quote all variables containing paths or user input ✅ Use absolute paths for scripts (${CLAUDE_PLUGIN_ROOT}/...) ✅ Block sensitive files (.env, *.key, credentials) ✅ Check if required tools exist (command -v toolname) ✅ Set reasonable timeouts (< 5s for PreToolUse) ✅ Run heavy operations in background ✅ Test with edge cases (spaces, Unicode, special chars) ✅ Use exit 2 to block in PreToolUse hooks ✅ Log errors to stderr or file, not stdout

Never Do

❌ Trust JSON input without validation ❌ Use unquoted variables ($FILE instead of "$FILE") ❌ Use relative paths for scripts ❌ Skip path sanitization (check for .., validate in project) ❌ Assume tools are installed ❌ Block for > 1 second in PreToolUse hooks ❌ Use exit 1 when you mean to block (use exit 2) ❌ Log sensitive data to stdout or files ❌ Use matcher: "*" unless truly necessary


When to Load References

Load reference files when working on specific hook aspects:

Security Requirements (references/security-requirements.md)

Load when:

  • Implementing input validation and sanitization
  • Securing hooks that handle sensitive data
  • Blocking sensitive files (.env, keys, credentials)
  • Preventing path traversal attacks
  • Understanding security vulnerabilities and best practices
  • Testing security with malicious input
Reliability & Performance (references/reliability-performance.md)

Load when:

  • Handling missing dependencies or tools
  • Setting timeouts and handling slow operations
  • Optimizing hook performance (< 100ms target)
  • Running heavy operations in background
  • Caching expensive results
  • Testing with edge cases (Unicode, spaces, deep paths)
  • Deduplicating expensive operations
Code Templates (references/code-templates.md)

Load when:

  • Starting a new hook and need working examples
  • Implementing format-on-save functionality
  • Blocking sensitive files from modification
  • Logging commands or operations
  • Using prompt-based security analysis
  • Customizing templates for specific use cases
Testing & Debugging (references/testing-debugging.md)

Load when:

  • Writing test cases for hooks
  • Debugging hook failures or unexpected behavior
  • Testing with edge cases (malformed JSON, missing fields)
  • Checking hook execution in transcript (Ctrl-R)
  • Profiling hook performance
  • Creating automated test suites
Publishing Guide (references/publishing-guide.md)

Load when:

  • Publishing hooks to PRPM registry
  • Creating package manifest (prpm.json)
  • Configuring hook.json with advanced options
  • Using continue, stopReason, suppressOutput, systemMessage
  • Writing README.md for users
  • Understanding versioning and publishing commands
Quick Reference (references/quick-reference.md)

Load when:

  • Need quick syntax lookup (exit codes, jq patterns)
  • Looking up environment variables
  • Finding common bash patterns (file validation, background execution)
  • Checking hook events and matchers
  • Need performance tips summary
  • Looking up JSON input structure

Final Checklist

Before publishing a hook:

  • Validates all stdin input with jq
  • Quotes all variables
  • Uses absolute paths for scripts
  • Blocks sensitive files (.env, *.key, etc.)
  • Handles missing tools gracefully
  • Sets reasonable timeout (< 5s for PreToolUse)
  • Logs errors to stderr or file, not stdout
  • Tests with edge cases (spaces, Unicode, malformed JSON)
  • Tests in real Claude Code session
  • Documents dependencies in README
  • Uses semantic versioning
  • Clear description and tags

Using Bundled Resources

This skill includes 6 reference files for on-demand loading:

Security & Reliability (2 files):

  • security-requirements.md - Input validation, path sanitization, blocking sensitive files
  • reliability-performance.md - Error handling, timeouts, performance optimization

Implementation (2 files):

  • code-templates.md - Working hook examples (format-on-save, block-sensitive, logger, etc.)
  • quick-reference.md - Fast syntax lookup (exit codes, jq patterns, environment vars)

Testing & Publishing (2 files):

  • testing-debugging.md - Test patterns, edge cases, debugging techniques
  • publishing-guide.md - PRPM packaging, advanced configuration, README template

Load references on-demand when specific knowledge is needed. See "When to Load References" section for triggers.


Resources


Last verified: 2025-12-17 | Version: 2.0.0

© secondsky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in plugins/claude-hook-writer/skills/claude-hook-writer of secondsky/claude-skills.

  • SKILL.md
  • references/code-templates.md
  • references/publishing-guide.md
  • references/quick-reference.md
  • references/reliability-performance.md
  • references/security-requirements.md
  • references/testing-debugging.md

Open the folder on GitHubat commit 8837836

Compare with similar skills

Claude Hook Writer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Claude Hook Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Claude Hook Writer this skillsecondsky/claude-skills227—~3.1kAutomated safety check: NotesMIT
Create Pluginruvnet/ruflo74k—~1.4kAutomated safety check: NotesMIT
Claude Hook Writerpr-pm/prpm122—~5kAutomated safety check: NotesMIT
Claude Code Plugin Structureanthropics/claude-plugins-official38k10 repos~3.4kAutomated safety check: PassApache-2.0
Crush Configurationcharmbracelet/crush29k—~3.7kAutomated safety check: PassCustom licence
Plate Plugin Creatorudecode/plate17k—~2.3kAutomated safety check: PassCustom licence

Similar skills

  • Create Plugin

    ruvnet/ruflo

    Scaffold a new Claude Code plugin with proper directory structure, plugin.json, skills, commands, and agents

    74k GitHub stars~1.4k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls

    122 GitHub stars~5k tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Crush Configuration

    charmbracelet/crush

    Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.

    29k GitHub stars~3.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Build new Plate plugins with Slate-first architecture, sane typing, and explicit React/Plate wrapper boundaries.

    17k GitHub stars~2.3k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Maintainer guide to where AgentSys keeps its marketplace, installer, transforms and adapters, and what to run when preparing a release or fixing a platform bug.

    994 GitHub stars~1.2k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed

More from secondsky/claude-skills

All 169 skills in this repo
  • Tanstack AI

    secondsky/claude-skills

    TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

    227 GitHub starsUsed in 1 repo~3.6k tokens
    Auto-check: notes
  • Auto Animate

    secondsky/claude-skills

    AutoAnimate (@formkit/auto-animate) zero-config animations for React.

    227 GitHub stars~2.9k tokensUpdated 10 days ago
    Auto-check passed
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 10 days ago
    Auto-check passed
  • Cloudflare Images

    secondsky/claude-skills

    This skill should be used when the user asks to "upload images to Cloudflare", "implement direct creator upload", "configure image transformations", "optimize WebP/AVIF", "create image variants"…

    227 GitHub stars~3.6k tokensUpdated 10 days ago
    Auto-check: notes
  • Cloudflare Nextjs

    secondsky/claude-skills

    Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).

    227 GitHub stars~5.3k tokensUpdated 10 days ago
    Auto-check: notes
  • Cloudflare Sandbox

    secondsky/claude-skills

    Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.

    227 GitHub stars~4.5k tokensUpdated 10 days ago
    Auto-check passed

Questions about Claude Hook Writer

What does Claude Hook Writer do?

Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls. Claude Hook Writer is an agent skill from secondsky/claude-skills. Expert guidance for writing secure, reliable, and performant Claude Code hooks - validates design decisions, enforces best practices, and prevents common pitfalls.

When should I use Claude Hook Writer?

Claude Hook Writer fits situations like: debugging Claude Code hooks; tasks that involve Hooks and plugins; tasks that involve Architecture decision records.

How do I install Claude Hook Writer in Claude Code?

Run `npx skills add secondsky/claude-skills --skill claude-hook-writer -a claude-code`. Or copy the skill folder (plugins/claude-hook-writer/skills/claude-hook-writer in secondsky/claude-skills) into .claude/skills/claude-hook-writer in your project. Claude Code loads it when a task matches its description.

How do I install Claude Hook Writer in Codex?

Run `npx skills add secondsky/claude-skills --skill claude-hook-writer -a codex`. Or copy the skill folder (plugins/claude-hook-writer/skills/claude-hook-writer in secondsky/claude-skills) into .agents/skills/claude-hook-writer in your project. Codex loads it when a task matches its description.

Can I use Claude Hook Writer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add secondsky/claude-skills --skill claude-hook-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-hook-writer, .gemini/skills/claude-hook-writer, .github/skills/claude-hook-writer and .opencode/skills/claude-hook-writer in your project.

What does Claude Hook Writer need to run?

Going by SKILL.md and its folder, Claude Hook Writer needs the command-line tools its instructions call (jq, prettier and npm).

Does Claude Hook Writer access the network?

SKILL.md names 2 domains. As links in the text: docs.claude.com and prpm.dev. This is read from the text; nothing was executed.

Is Claude Hook Writer safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Claude Hook Writer use?

Claude Hook Writer is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Claude Hook Writer use?

About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9k tokens, read only when the agent opens those files.

What are the alternatives to Claude Hook Writer?

Skills that share tags, products or a category with Claude Hook Writer: Create Plugin (ruvnet/ruflo, 74k stars), Claude Hook Writer (pr-pm/prpm, 122 stars), Claude Code Plugin Structure (anthropics/claude-plugins-official, 38k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Claude Hook Writer?

secondsky (a GitHub user) maintains it in secondsky/claude-skills, which has 227 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 28, 2026.

Source: secondsky/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.