Agent Skills: PostToolUse Hooks 設定スキル

プロジェクトの .claude/settings.json にPostToolUseフック(prettier, eslint等)を設定する。Use when user mentions hooks設定/フック設定/formatter hooks/PostToolUse/setup-hooks/setup-post-tool-use-hooks.

UncategorizedID: camoneart/claude-code/setup-post-tool-use-hooks

Install this agent skill to your local

pnpm dlx add-skill https://github.com/camoneart/claude-code/tree/HEAD/skills/setup-post-tool-use-hooks

Skill Files

Browse the full folder contents for setup-post-tool-use-hooks.

Download Skill

Loading file tree…

skills/setup-post-tool-use-hooks/SKILL.md

Skill Metadata

Name
setup-post-tool-use-hooks
Description
プロジェクトの .claude/settings.json にPostToolUseフック(prettier, eslint等)を設定する。Use when user mentions hooks設定/フック設定/formatter hooks/PostToolUse/setup-hooks/setup-post-tool-use-hooks.

PostToolUse Hooks 設定スキル

プロジェクトごとに適切なPostToolUseフックを .claude/settings.json に設定する。

前提条件チェック(必須)

設定前に必ず以下を確認すること:

1. フォーマッタ・リンターの検出

プロジェクトルートで以下を確認し、存在するツールだけをフックに追加する。

| ツール | 検出方法 | |--------|---------| | prettier | package.json の devDependencies、または .prettierrc* の存在 | | eslint | package.json の devDependencies、または eslint.config.* / .eslintrc* の存在 | | biome | package.json の devDependencies、または biome.json の存在 | | ruff | pyproject.toml[tool.ruff]、または ruff.toml の存在 | | black | pyproject.toml[tool.black] | | gofmt | go.mod の存在 |

2. 既存設定の確認

.claude/settings.json が既に存在する場合は、既存の設定を壊さないようにマージする。

設定テンプレート

JavaScript/TypeScript プロジェクト(prettier)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

JavaScript/TypeScript プロジェクト(eslint + prettier)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null; npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

JavaScript/TypeScript プロジェクト(biome)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "npx biome check --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

Python プロジェクト(ruff)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "ruff format \"$CLAUDE_FILE_PATH\" 2>/dev/null; ruff check --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

Python プロジェクト(black)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "black \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

Go プロジェクト

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "gofmt -w \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

ワークフロー

  1. プロジェクトルートの package.jsonpyproject.tomlgo.mod 等を読み取る
  2. 使用しているフォーマッタ・リンターを特定する
  3. 適切なテンプレートを選択する
  4. .claude/settings.json に書き込む(既存設定があればマージ)
  5. 設定内容をユーザーに報告する

注意事項

  • 検出できたツールだけを設定する。推測で追加しない
  • 2>/dev/null || true を必ず付けて、エラーでClaudeの作業が止まらないようにする
  • 既存の .claude/settings.json の他の設定(permissions等)を消さない