Hookifyルールの作成
概要
Hookifyルールは、監視するパターンと、そのパターンが一致したときに表示するメッセージを定義するYAMLフロントマター付きのマークダウンファイルです。ルールは .claude/hookify.{rule-name}.local.md ファイルに保存されます。
ルールファイル形式
基本構造
---
name: rule-identifier
enabled: true
event: bash|file|stop|prompt|all
pattern: regex-pattern-here
---
このルールがトリガーされたときにClaudeに表示するメッセージ。
マークダウン書式、警告、提案などを含めることができます。
フロントマターフィールド
| フィールド | 必須 | 値 | 説明 |
|---|---|---|---|
| name | はい | ケバブケース文字列 | 一意の識別子(動詞優先: warn-, block-, require-*) |
| enabled | はい | true/false | 削除せずにオン/オフを切り替える |
| event | はい | bash/file/stop/prompt/all | どのフックイベントがトリガーするか |
| action | いいえ | warn/block | warn(デフォルト)はメッセージを表示、blockは操作を防止 |
| pattern | はい* | 正規表現文字列 | マッチさせるパターン(*または複雑なルールには conditions を使用) |
高度な形式(複数条件)
---
name: warn-env-api-keys
enabled: true
event: file
conditions:
- field: file_path
operator: regex_match
pattern: \.env$
- field: new_text
operator: contains
pattern: API_KEY
---
.envファイルにAPIキーを追加しています。このファイルが.gitignoreに含まれていることを確認してください!
イベント別の条件フィールド:
- bash:
command - file:
file_path,new_text,old_text,content - prompt:
user_prompt
演算子: regex_match, contains, equals, not_contains, starts_with, ends_with
すべての条件が一致する必要があります。
イベントタイプガイド
bashイベント
Bashコマンドパターンにマッチ:
- 危険なコマンド:
rm\s+-rf,dd\s+if=,mkfs - 権限昇格:
sudo\s+,su\s+ - 権限の問題:
chmod\s+777
fileイベント
編集/書き込み/複数編集操作にマッチ:
- デバッグコード:
console\.log\(,debugger - セキュリティリスク:
eval\(,innerHTML\s*= - 機密ファイル:
\.env$,credentials,\.pem$
stopイベント
完了チェックとリマインダー。パターン .* は常にマッチします。
promptイベント
ワークフロー強制のためのユーザープロンプト内容にマッチ。
パターン作成のヒント
正規表現の基本
- 特殊文字をエスケープ:
.は\.,(は\( \s空白、\d数字、\w単語文字+1回以上、*0回以上、?オプション|OR演算子
よくある落とし穴
- 範囲が広すぎる:
logは "login"、"dialog" にマッチ —console\.log\(を使用 - 範囲が狭すぎる:
rm -rf /tmp—rm\s+-rfを使用 - YAMLエスケープ: 引用符なしのパターンを使用。引用符で囲まれた文字列は
\\sが必要
テスト
python3 -c "import re; print(re.search(r'your_pattern', 'test text'))"
ファイル構成
- 場所: プロジェクトルートの
.claude/ディレクトリ - 命名:
.claude/hookify.{説明的な名前}.local.md - Gitignore:
.gitignoreに.claud/*.local.mdを追加
コマンド
/hookify [説明]- 新しいルールを作成(引数なしの場合は会話を自動分析)/hookify-list- すべてのルールをテーブル形式で表示/hookify-configure- ルールを対話的にオン/オフ切り替え/hookify-help- 完全なドキュメント
クイックリファレンス
最小限のルール:
---
name: my-rule
enabled: true
event: bash
pattern: dangerous_command
---
警告メッセージをここに