diff --git a/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-check.sh b/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-check.sh new file mode 100755 index 0000000..26176f6 --- /dev/null +++ b/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-check.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -eu + +COUNT_FILE="$HOME/.claude/perm_count.txt" +count=$(cat "$COUNT_FILE" 2>/dev/null || echo 0) + +if [ "$count" -ge 5 ]; then + echo 0 > "$COUNT_FILE" + echo "{\"systemMessage\": \"このセッションで $count 回パーミッションの要求がありました。/fewer-permission-prompts を実行すると、よく使う操作を settings.json に自動追加してプロンプトを減らせます。\"}" +else + echo 0 > "$COUNT_FILE" +fi diff --git a/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-increment.sh b/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-increment.sh new file mode 100755 index 0000000..b382da4 --- /dev/null +++ b/plugins/claude-code-best-practice/hooks/fewer-prompts-nudge-increment.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -eu + +COUNT_FILE="$HOME/.claude/perm_count.txt" +count=$(cat "$COUNT_FILE" 2>/dev/null || echo 0) +echo $((count + 1)) > "$COUNT_FILE" diff --git a/plugins/claude-code-best-practice/hooks/hooks.json b/plugins/claude-code-best-practice/hooks/hooks.json index 7d85719..cc54485 100644 --- a/plugins/claude-code-best-practice/hooks/hooks.json +++ b/plugins/claude-code-best-practice/hooks/hooks.json @@ -1,13 +1,24 @@ { - "description": "Suggests running /fewer-permission-prompts each time the user invokes /clear.", + "description": "Counts permission requests per session and suggests /fewer-permission-prompts at Stop when the count reaches the threshold.", "hooks": { - "SessionStart": [ + "PermissionRequest": [ { - "matcher": "clear", "hooks": [ { "type": "command", - "command": "${CLAUDE_PLUGIN_ROOT}/hooks/suggest-permissions-cleanup.sh" + "command": "${CLAUDE_PLUGIN_ROOT}/hooks/fewer-prompts-nudge-increment.sh", + "async": true + } + ] + } + ], + "Stop": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/hooks/fewer-prompts-nudge-check.sh", + "timeout": 5 } ] } diff --git a/plugins/claude-code-best-practice/hooks/suggest-permissions-cleanup.sh b/plugins/claude-code-best-practice/hooks/suggest-permissions-cleanup.sh deleted file mode 100755 index 26291bf..0000000 --- a/plugins/claude-code-best-practice/hooks/suggest-permissions-cleanup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -set -eu - -cat <<'EOF' -{ - "systemMessage": "💡 Tip: /clear したタイミングで許可設定の見直しをおすすめします。`/less-permission-prompts` を実行すると、繰り返し許可プロンプトが出るコマンドを検出し、allowlist に追加する候補を提案します。" -} -EOF