Skip to content

原文(日本語に翻訳)

非インタラクティブ実行で、ディレクトリ修飾名を持つネストされた .claude/skills スキルがパーミッションプロンプトによってブロックされる問題を修正しました。

原文(英語)

Fixed nested .claude/skills skills with directory-qualified names being blocked by permission prompts in non-interactive runs

概要

CI/CDパイプラインやスクリプトなどの非インタラクティブ実行環境で、ネストされた .claude/skills ディレクトリのスキルを使用する際に、ディレクトリ修飾名(<dir>:<name> 形式)のスキルがパーミッションプロンプトによって不当にブロックされる問題が修正されました。自動化ワークフローでネストされたスキルが正常に実行できるようになります。

基本的な使い方

この修正は非インタラクティブモード(--print-p フラグ、パイプ入力)での実行時に自動的に適用されます:

bash
# 非インタラクティブ実行でネストされたスキルを使用
claude --print "backend:deploy を実行してください"

# または -p フラグ
claude -p "/backend:deploy"

以前は上記がパーミッションプロンプトで止まっていましたが、修正後は正常に実行されます。

実践例

CI/CDパイプラインでの使用

yaml
# GitHub Actions での例
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Run deployment skill
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          # ネストされたスキルを非インタラクティブに実行(修正済み)
          claude --print "backend:deploy を実行してください"

シェルスクリプトでの自動化

bash
#!/bin/bash
# deploy.sh

# プロジェクト構造:
# backend/
#   .claude/skills/
#     deploy.md   # backend:deploy スキル

cd /path/to/project/backend

# 非インタラクティブにスキルを実行
claude -p "deploy スキルを使ってステージング環境にデプロイしてください"

修正前の回避策と現在の推奨方法

bash
# 修正前の回避策(必要なくなりました)
# パーミッションを事前に全て付与する必要があった
claude --allowedTools "Bash,Write,Read" -p "backend:deploy を実行"

# 修正後は通常の設定で動作
claude -p "backend:deploy を実行してください"

注意点

  • この修正は「非インタラクティブ実行」(自動化・スクリプト・CI/CD)でのみ関係する問題でした
  • 通常のインタラクティブセッションでは以前から正常に動作していました
  • ネストされたスキルの <dir>:<name> 形式の命名規則は 2.1.178 で追加された新機能です(nested-skills-directories 参照)
  • パーミッション設定(settings.json)は引き続き有効です

関連情報