Skip to main content
Mythos

Claude Code Hooks and Skills are the two complementary extensibility systems built into 📝Claude Code — the 📝Hook (Claude Code) handles automated reactions to lifecycle events, and the 📝Skill (Claude Code) handles reusable workflows invoked by name. Together, they turn Claude Code from a general-purpose agent into a customized 📝augmentation system tailored to a specific workflow.

Hooks vs. Skills at a Glance

  • Hooks are reactive — they fire automatically when events occur. The human doesn't invoke them
  • Skills are intentional — the human (or model) invokes them with a slash command when they need a specific workflow
  • Hooks handle mechanics — linting, logging, notifications. Things that should happen every time without thinking
  • Skills handle judgment — review, deploy-check, research. Things that need to be triggered deliberately

Both contribute to the Memory layer of 📝The Augmentation Stack — hooks encode behavioral patterns, skills encode workflow patterns. Together they reduce the surface area of decisions the human needs to make, freeing attention for the work that actually requires judgment.

Hook Configuration Example

Hooks live in ~/.claude/settings.json under a hooks object keyed by event type:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit",
        "command": "npx eslint --fix $CLAUDE_FILE_PATH"
      }
    ],
    "Notification": [
      {
        "command": "osascript -e 'display notification \"$CLAUDE_NOTIFICATION\" with title \"Claude\"'"
      }
    ]
  }
}

The first hook runs ESLint after every file edit — automatic formatting without asking Claude to do it. The second sends macOS notifications when Claude finishes background work.

Skill Configuration Example

Skills are markdown files in ~/.claude/skills/ with frontmatter declaring name and description:

---
name: deploy-check
description: Pre-deployment verification checklist
---
Run the following checks before deploying:
1. All tests pass (`npm test`)
2. No TypeScript errors (`npx tsc --noEmit`)
3. Build succeeds (`npm run build`)
4. No uncommitted changes (`git status`)
5. Current branch is staging
Report results as a checklist. If any check fails, stop and explain.

Invoke with /deploy-check. The skill's content loads as instructions and Claude executes the workflow.

In Practitioner Workflows

In 📝BrianBot's setup, hooks handle post-commit linting, metrics logging via the session-metrics-logger plugin, and notification routing through the slack-thread-logger hook. Skills handle the higher-leverage patterns: /commit for conventional commit messages, /review-pr for pull request reviews against the 📝CLAUDE.md as Infrastructure, and /mythos for connecting to the 📝MythOS library (see 📝MythOS Claude Code Skill).

Hooks were the thing that made Claude Code feel like infrastructure instead of a tool. Before hooks, I had to remember to lint, remember to log metrics, remember to check formatting. Now the system handles it. Skills are how I stopped repeating myself — packaging each workflow once so I type a slash command instead of re-explaining the process. Together they reduce the surface area of decisions the human needs to make, freeing attention for the work that actually requires judgment.

Contexts

Created with 💜 by One Inc | Copyright 2026