原文(日本語に翻訳)
CLAUDE.md または .claude/rules/*.md ファイルがコンテキストに読み込まれたときに発火する InstructionsLoaded フックイベントを追加
原文(英語)
Added InstructionsLoaded hook event that fires when CLAUDE.md or .claude/rules/*.md files are loaded into context
概要
InstructionsLoaded は、Claude CodeがCLAUDE.mdや .claude/rules/ ディレクトリのルールファイルをコンテキストに読み込んだタイミングで発火する新しいフックイベントです。これにより、指示ファイルの読み込みを監視したり、読み込まれた内容に応じた処理(ログ記録、通知、バリデーション等)を自動実行できます。
基本的な使い方
settings.json にフック設定を追加:
json
{
"hooks": {
"InstructionsLoaded": [
{
"hooks": [
{
"type": "command",
"command": "echo 'Instructions loaded' >> ~/.claude/hooks.log"
}
]
}
]
}
}実践例
CLAUDE.md読み込みをログに記録する
json
{
"hooks": {
"InstructionsLoaded": [
{
"hooks": [
{
"type": "command",
"command": "bash -c 'echo \"[$(date)] Instructions loaded in $PWD\" >> ~/.claude/audit.log'"
}
]
}
]
}
}読み込まれたルールファイルをデスクトップ通知する
json
{
"hooks": {
"InstructionsLoaded": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code rules loaded\" with title \"Claude Code\"'"
}
]
}
]
}
}(macOSの場合)
セキュリティポリシーのバリデーション
json
{
"hooks": {
"InstructionsLoaded": [
{
"hooks": [
{
"type": "command",
"command": "/usr/local/bin/validate-claude-instructions.sh"
}
]
}
]
}
}バリデーションスクリプトの例:
bash
#!/bin/bash
# validate-claude-instructions.sh
CLAUDE_MD="$PWD/CLAUDE.md"
if [ -f "$CLAUDE_MD" ]; then
# 禁止キーワードのチェック
if grep -q "SKIP_SECURITY" "$CLAUDE_MD"; then
echo "警告: CLAUDE.mdにセキュリティスキップ指示が含まれています" >&2
exit 1
fi
fiフックイベントのデータ
InstructionsLoaded フックは以下の情報を受け取ります:
- 読み込まれたファイルのパス
- セッション情報(セッションID等)
注意点
- このイベントはセッション開始時だけでなく、指示ファイルが変更されて再読み込みされた際にも発火します
ConfigChangeフックと組み合わせて、設定の変更も監視できます- フックがエラーを返してもセッションは継続します(ブロッキングにはなりません)