原文(日本語に翻訳)
SessionStart フックが reloadSkills: true を返すことで、スキルディレクトリを再スキャンし、そのフックがインストールしたスキルを同一セッション内で利用可能にできるようになりました。
原文(英語)
SessionStart hooks can now return reloadSkills: true to re-scan skill directories, making skills installed by the hook available in the same session
概要
SessionStart フックが reloadSkills: true を含む JSON を返すことで、フックが動的にインストールしたスキルを同じセッション内で即座に利用できるようになりました。従来はフックでスキルをインストールしても、セッションを再起動しないと利用できませんでした。この改善により、フックによるスキルの動的プロビジョニングが完結します。
基本的な使い方
SessionStart フックのスクリプトで hookSpecificOutput.reloadSkills: true を含む JSON を標準出力に出力します。
bash
#!/bin/bash
# .claude/hooks/session-start.sh
# スキルをインストール
install_skills_if_needed() {
mkdir -p ~/.claude/skills/my-dynamic-skill
cat > ~/.claude/skills/my-dynamic-skill/SKILL.md <<'EOF'
---
name: my-dynamic-skill
description: 動的にインストールされたスキル
---
# 動的スキル
このスキルはセッション開始時にインストールされます。
EOF
}
install_skills_if_needed
# hookSpecificOutput 内に reloadSkills: true を返してスキルを即時反映
echo '{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"reloadSkills": true
}
}'実践例
環境に応じたスキルの動的インストール
プロジェクトの種類を検出し、適切なスキルを自動インストールする例です。
bash
#!/bin/bash
# .claude/hooks/session-start.sh
SKILLS_INSTALLED=false
# Next.js プロジェクトなら専用スキルをインストール
if [ -f "next.config.js" ] || [ -f "next.config.ts" ]; then
mkdir -p .claude/skills/nextjs-helper
cat > .claude/skills/nextjs-helper/SKILL.md <<'EOF'
---
name: nextjs-helper
description: Next.js 開発支援スキル
---
# Next.js Helper
Next.js固有のパターンとベストプラクティスを提供します。
EOF
SKILLS_INSTALLED=true
fi
if [ "$SKILLS_INSTALLED" = "true" ]; then
echo '{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"reloadSkills": true
}
}'
fiバージョン管理されたスキルの自動更新
リモートからスキルを取得してインストールする例です。
bash
#!/bin/bash
# .claude/hooks/session-start.sh
SKILLS_DIR=~/.claude/skills
SKILLS_UPDATED=false
# リモートからスキル定義を取得(例)
if curl -sf "https://example.com/skills/team-skill.md" \
-o "$SKILLS_DIR/team-skill/SKILL.md" 2>/dev/null; then
SKILLS_UPDATED=true
fi
if [ "$SKILLS_UPDATED" = "true" ]; then
echo '{"reloadSkills": true}'
fi注意点
reloadSkills: trueはSessionStartフックの標準出力として JSON 形式で返す必要があります- フックが
reloadSkills: trueを返した場合、~/.claude/skillsおよび.claude/skillsの両方が再スキャンされます - フックでエラーが発生した場合、
reloadSkillsは無視される場合があります - スキルファイルに構文エラーがある場合は、リロード時にエラーが通知されます
SessionStartフックは settings.json のhooksセクションに設定します
json
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": ".claude/hooks/session-start.sh"
}
]
}
]
}
}