mcpField
L
llm-gate

llm-gate

github.com/rohitg00テスト・品質2.9k142 回インストール4 週間前に更新
リポジトリ

llm-gate について

llm-gateは、Claude Codeのツール操作にLLMチェックを追加するスキルです。プロンプトまたはエージェントのフックで操作を検証し、条件に応じて呼び出しをブロックします。

主な機能

  1. 01プロンプトフックによる品質チェック
  2. 02エージェントフックによる複雑なレビュー
  3. 03条件に基づく操作の照合
  4. 04モデルとタイムアウトの設定
  5. 05不適合時のツール呼び出しブロック

活用シーン

  1. 01Conventional Commits形式の検証
  2. 02危険な破壊的コマンドの検出
  3. 03ファイル書き込み内の秘密情報チェック

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rohitg00/pro-workflow --skill llm-gate

インストール後、Claude Code で/llm-gateを入力して読み込まれたか確認します。

詳細

LLM ゲート

Claude Code の type: "prompt" フックを使って、AI が操作を検証するインテリジェントな品質ゲートを作成します。

トリガー

次のような場合に使用します。

  • コミットメッセージの検証を設定するとき
  • リンターでは検出できないコード規約を適用するとき
  • 特定の操作向けにスマートなガードレールを作成するとき

プロンプトフックの仕組み

Claude Code は、条件を検証する小規模な LLM(デフォルトでは Haiku)を実行する type: "prompt" フックをサポートしています。

{
  "PreToolUse": [{
    "matcher": "Bash",
    "hooks": [{
      "type": "prompt",
      "if": "Bash(git commit*)",
      "prompt": "Check if this git commit follows conventional commit format (<type>(<scope>): <summary>). The commit command is: $ARGUMENTS. Return {\"ok\": true} if valid, {\"ok\": false, \"reason\": \"...\"} if not.",
      "model": "haiku",
      "timeout": 15
    }]
  }]
}

フックの処理:

  1. $ARGUMENTS を JSON 形式のフック入力に置き換えます
  2. Haiku に送信します(高速かつ低コスト)
  3. {"ok": true} または {"ok": false, "reason": "..."} を期待します
  4. ok でない場合 → 理由とともにツール呼び出しをブロックします

ゲートの例

Conventional Commit バリデーター
{
  "type": "prompt",
  "if": "Bash(git commit*)",
  "prompt": "Verify this git commit follows conventional commits: type(scope): summary. Types: feat,fix,refactor,test,docs,chore,perf,ci. Summary under 72 chars. Input: $ARGUMENTS",
  "model": "haiku"
}
破壊的なコマンドのガード
{
  "type": "prompt",
  "if": "Bash(rm *)",
  "prompt": "Check if this rm command is safe. Flag if it uses -rf on important directories (src/, node_modules/, .git/). Input: $ARGUMENTS",
  "model": "haiku"
}
API キー漏えいの防止
{
  "type": "prompt",
  "matcher": "Write",
  "prompt": "Check if this file write contains hardcoded API keys, secrets, passwords, or tokens. Input: $ARGUMENTS. Return ok:false if secrets found.",
  "model": "haiku"
}

エージェントフック

複雑な検証には、type: "agent"(完全なエージェントを実行)を使用します。

{
  "type": "agent",
  "if": "Bash(git push*)",
  "prompt": "Review all staged changes for security issues before pushing. Check for: hardcoded secrets, SQL injection, XSS vulnerabilities, exposed internal URLs.",
  "model": "haiku",
  "timeout": 60
}

セットアップガイド

  1. ゲートを設ける操作を選びます
  2. プロンプトを作成します(焦点を絞り、100 語未満にします)
  3. モデルを選びます(速度重視なら haiku、精度重視なら sonnet)
  4. タイムアウトを設定します(プロンプトは 15 秒、エージェントは 60 秒)
  5. 適切なイベントの hooks.json に追加します

ルール

  • 単純なチェックには Haiku を使用します(高速かつ低コスト)
  • 複雑な分析に限り Sonnet を使用します
  • 信頼性を高めるため、プロンプトは 100 語未満にします
  • すべてのツール呼び出しで実行されないよう、必ず if 条件を含めます
  • 適切なタイムアウトを設定します(プロンプトは 15 秒、エージェントは 60 秒)
  • ワークフローをブロックしないよう、デプロイ前にフックをテストします

コメント