fix: move hooks to settings.json for default availability - #401
Conversation
hooksをsettings.local.jsonからsettings.jsonに移動し、 DevContainerイメージを使用するすべてのプロジェクトで デフォルトでhooksが有効になるよう修正。 - claude-settings.json: hooks設定を追加 - claude-settings.local.json: hooks設定を削除 これにより、プロジェクト固有の.claude/settings.local.jsonが 存在する場合でも、~/.claude/settings.jsonのhooksが ベース設定として適用される。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR adds a new hooks configuration section to the main Claude settings file while removing the equivalent hooks from the local settings file. The hooks configure pre- and post-tool-use behaviors through Python scripts. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Review: Fix hooks configuration architecture🎯 Overall AssessmentこのPRは重要な構成管理の問題を修正しています。hooks設定を ✅ 良い点
🔍 潜在的な問題・考慮事項1. 設定の重複可能性現在の変更により、両方のファイルに同じhooks設定が存在する可能性があります: 確認が必要:
推奨対応: // プロジェクト側の settings.local.json で hooks を上書きしたい場合の例
{
"hooks": {
"PreToolUse": [
// プロジェクト固有の設定のみを記載
// settings.json の設定は自動的にマージされる
]
}
}2. マージ動作の明確化Claude Code Settings の設定ファイルのマージ動作について、以下を確認・ドキュメント化することを推奨:
3. 既存プロジェクトへの影響リスク:
推奨対応:
// 既存プロジェクトでhooksを無効化する場合の例
// .claude/settings.local.json
{
"hooks": {
"PreToolUse": [],
"PostToolUse": []
}
}4. Test Plan の実行確認PR説明のTest Planはまだ未チェック状態です:
これらのテストを実施し、結果をPRに記載することを推奨します。 🔒 セキュリティ考慮事項
📊 コード品質
🎯 推奨アクション必須:
推奨:
📝 提案: README.md の更新例
## Hooksの設定方法
### DevContainer環境(推奨)
DevContainerイメージ (ghcr.io/keito4/config-base) を使用する場合、hooksはデフォルトで有効です。
追加の設定は不要です。
### プロジェクト固有のhooksを追加する場合
\`.claude/settings.local.json\` にプロジェクト固有の設定を追加できます。
ベース設定(settings.json)の内容とマージされます。
### hooksを無効化する場合
プロジェクトでhooksを無効化したい場合は、\`.claude/settings.local.json\` に以下を追加:
\`\`\`json
{
"hooks": {
"PreToolUse": [],
"PostToolUse": []
}
}
\`\`\`総評✅ 承認推奨 (条件付き) 構造的な問題解決として正しい方向性です。ただし、以下を確認してからマージすることを推奨:
Good work! 🚀 |
|
🎉 This PR is included in version 1.61.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
claude-settings.json(→~/.claude/settings.json) にhooks設定を移動claude-settings.local.jsonからhooks設定を削除Why
hooksが
settings.local.jsonにのみ設定されていたため、プロジェクト固有の.claude/settings.local.jsonが存在する場合、イメージのhooks設定が上書きされて無効になっていた。What
.devcontainer/claude-settings.json.devcontainer/claude-settings.local.jsonHow
settings.jsonはベース設定として読み込まれるため、プロジェクト側に独自のsettings.local.jsonがあっても、hooksが適用される。Test plan
git commit --no-verifyがブロックされることを確認git commit/git push前に実行されることを確認🤖 Generated with Claude Code
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.