Skip to content

原文(日本語に翻訳)

claude plugin validate を改善し、スキル・エージェント・コマンドのfrontmatterと hooks/hooks.json の検証を行うようになりました。YAMLのパースエラーとスキーマ違反も検出します

原文(英語)

Improved claude plugin validate to check skill, agent, and command frontmatter plus hooks/hooks.json, catching YAML parse errors and schema violations

概要

claude plugin validate コマンドの検証機能が大幅に強化されました。スキル・エージェント・スラッシュコマンドのfrontmatterの内容、および hooks/hooks.json の設定が正しいかどうかをチェックします。YAMLのパースエラーやスキーマ違反も検出するため、プラグイン開発時のデバッグが容易になります。

基本的な使い方

bash
# プラグインの検証を実行
claude plugin validate

# 特定のプラグインを指定して検証
claude plugin validate ./my-plugin

# 詳細な検証結果を表示
claude plugin validate --verbose

実践例

スキルのfrontmatter検証

スキルファイルの --- で囲まれたfrontmatterの問題を検出します。

yaml
# my-skill.md のfrontmatter例
---
name: code-reviewer
description: コードレビューを行うスキル
# 検証で検出される問題の例:
# - 必須フィールドの欠如
# - 型の不一致
# - 不正なYAML構文
---
bash
# 検証を実行
claude plugin validate

# 出力例(エラーがある場合):
# ✗ skills/code-reviewer.md:
#   - Line 5: YAMLパースエラー: タブ文字は使用できません
#   - 'description' フィールドが短すぎます(最小10文字)

フックの設定検証

json
// hooks/hooks.json の例
{
  "hooks": [
    {
      "type": "PreToolUse",
      "command": "./scripts/pre-hook.sh"
    }
  ]
}
bash
# フック設定の検証
claude plugin validate

# 検出される問題の例:
# ✗ hooks/hooks.json:
#   - 'command' に指定されたファイルが存在しません
#   - 不明なフックタイプ: 'PreToolUse' は有効ですが 'PreTooluse' は無効

エージェント定義の検証

yaml
# agents/my-agent.md
---
name: data-analyst
description: データ分析専門エージェント
model: claude-opus-4-6
# tools: 配列として定義が必要
tools: bash, read  # ← 検証でエラー: カンマ区切りではなく配列形式が必要
---
bash
# 検証でスキーマ違反を検出
claude plugin validate

# 出力:
# ✗ agents/data-analyst.md:
#   - 'tools' はリスト形式で指定してください
#   推奨される形式:
#     tools:
#       - bash
#       - read

CI/CDへの組み込み

プラグイン開発のCIパイプラインに検証ステップを追加できます。

yaml
# .github/workflows/validate-plugin.yml
name: Validate Plugin
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code
      - name: Validate plugin
        run: claude plugin validate

注意点

  • 検証の範囲: 検証はfrontmatterの構文・スキーマのみを対象とし、実際の動作保証はしません
  • YAML の厳密な検証: インデント、特殊文字のエスケープなどYAML仕様に沿った書き方が必要になります
  • エラーの優先度: 複数のエラーがある場合、致命的なエラー(パースエラー)が先に表示されます
  • プラグイン構造の前提: コマンドを実行するディレクトリがプラグインのルートディレクトリである必要があります

関連情報