原文(日本語に翻訳)
スキル、カスタムスラッシュコマンド、プラグインコマンドにおけるインラインシェル実行を無効化するdisableSkillShellExecution設定を追加しました。
原文(英語)
Added disableSkillShellExecution setting to disable inline shell execution in skills, custom slash commands, and plugin commands
概要
スキルやカスタムスラッシュコマンドのプロンプト内では、バッククォートや$()構文でシェルコマンドをインライン実行する機能があります。disableSkillShellExecution設定を有効にすると、この機能を無効化できます。セキュリティポリシーの厳格な環境や、予期しないシェル実行を防ぎたい場合に有効です。
基本的な使い方
settings.jsonに以下を追加します:
json
{
"disableSkillShellExecution": true
}設定ファイルの場所:
- グローバル設定:
~/.claude/settings.json - プロジェクト設定:
.claude/settings.json
実践例
セキュリティポリシーの適用
チーム環境やCI/CD環境で、スキルが予期しないシェルコマンドを実行しないよう制限する:
json
// .claude/settings.json(プロジェクト設定)
{
"disableSkillShellExecution": true,
"permissions": {
"defaultMode": "default"
}
}グローバルに無効化する
すべてのプロジェクトでシェル実行を無効化:
json
// ~/.claude/settings.json(グローバル設定)
{
"disableSkillShellExecution": true
}インラインシェル実行の例(無効化対象)
この設定が有効な場合、スキルやスラッシュコマンドのプロンプト内で以下のような構文が実行されなくなります:
markdown
<!-- スキルファイル例 -->
現在のブランチ: `git branch --show-current`
今日の日付: $(date +%Y-%m-%d)設定が有効な場合、上記のバッククォートや$()内のコマンドはそのままテキストとして扱われます。
注意点
- この設定はスキル、カスタムスラッシュコマンド、プラグインコマンドのプロンプト内のインライン実行に影響します
- Claude自身がBashツールを使ってシェルコマンドを実行する動作は、この設定では制御されません
- プロジェクト設定でこの設定を有効化すると、そのプロジェクト内のすべてのスキルに適用されます
- 既存のスキルで動的な値の取得にシェル実行を使っている場合、無効化すると動作が変わる可能性があります