mcpField
Q
quack

quack

github.com/sprngrエージェントワークフロー857 回インストール2 週間前に更新
リポジトリ

quack について

quack は、ワークフロー形式の依頼を明示的にルーティングするスキルで、名前付きルートを呼び出すユーザー向けです。エイリアスを解決し、キーワードで候補の優先順位を調整して、規則に従いインライン実行または委任します。

主な機能

  1. 01明示的な呼び出し時のみ有効
  2. 02エイリアスによるルート解決
  3. 03キーワードによるルート候補の優先付け
  4. 04インライン実行と委任の方針
  5. 05不明または曖昧なルートの確認
  6. 06承認と安全上の境界

活用シーン

  1. 01依頼を指定のワークフローへ振り分け
  2. 02複数のルート候補を解決
  3. 03認識できない依頼の内容を確認
  4. 04ワークスペース変更前の承認要件を適用

インストール

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

$npx skills add https://github.com/sprngr/rubber-duck --skill quack

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
heartbeat.md
quick-help.md
route-aliases.json
subagent-runbook.md
references/
Examples.md
GUARDRAILS.md

詳細

スキル:quack

明示的なルート制御 🦆。まずエイリアスで自動ルーティングし、該当しない場合は対象を絞った確認質問を1つします。

目的

安全性と承認に関する制約を維持しながら、ワークフローのようなリクエストについて、ユーザーが明示的にルーティングを制御できるようにします。

哲学上のガードレール(スキル固有)

references/GUARDRAILS.md の共通ガードレールを引き継ぎます。

  • コンテキストが不完全な場合は、対象を絞った確認質問を1〜3つします
  • 根拠が不足している場合は、前提を明示します

有効化

ユーザーが明示的に quack を呼び出した場合にのみ使用します。意図を推測して自動的に有効化しないでください。

方法

  1. 明示的な quack の呼び出しを確認します。
  2. 意図を正規化します。quack の後の区切り文字(:, -, —)を削除し、外側の対応する引用符を削除し、末尾の句読点(?!.;:)を削除します。
  3. 単独の quack(ハートビート経路):
    • 正規化された意図が空、または空白のみの場合:
      • assets/heartbeat.md を読み込み、リストからランダムにハートビートの行を1つ選択します
      • assets/quick-help.md の内容全体を読み込み、そのまま出力します(要約しません)
      • 終了時のプロンプト What would you like to route? を出力します
      • 停止します(即興の軽口を生成せず、曖昧さの解消にも進みません)
  4. 任意指定のオーバーライドを解析します:use <subagent>、with <subagent>、または via <subagent>。
  5. オーバーライド(指定されている場合)をプラットフォームのサブエージェント一覧に照らして検証します。無効な場合は、修正を求める質問を1つだけ尋ねます:Need one detail: unknown subagent "<x>". Use duckling or general? そして停止します。
  6. 有効なサブエージェントを決定します。ステップ4でオーバーライドが解析された場合はそれを使用し、それ以外の場合は duckling をデフォルトとして使用します。
  7. ルートの実行ポリシーを決定します。
    • インラインがデフォルト:duck-design、duck-teach、duck-debug、duck-debt
    • 委任がデフォルト:duck-patch、duck-refactor、duck-risk、duck-review、duck-triage、duck-simplify
    • ユーザーによるオーバーライドがある場合は、デフォルトのポリシーにかかわらず委任します
  8. 入力にスキル名が明示されている場合は、そのスキルを解決してルートを実行します(ステップ11を参照)。
  9. それ以外の場合は、assets/route-aliases.json を読み込み、大文字と小文字を区別せずに照合します。
  10. キーワードによる優先順位を適用します(複数のスキルが一致した場合):
    • 意図に優先キーワードが含まれているか調べます。
      • リスクを示す語(rollback、breaking、compatibility、compat、failure、impact) -> duck-risk を優先します
      • 複雑さを示す語(overengineered、complexity、simpler、too many、bloated) -> duck-simplify を優先します
      • 学習を示す語(why、how、what does、explain、teach me) -> duck-debug より duck-teach を優先します
      • テストを示す語(test、coverage、should I test、before PR) -> duck-triage を優先します
      • 設計を示す語(choose、tradeoff、approach、option) -> duck-design を優先します
    • 一致したスキルを並べ替え、優先キーワードに合致したスキルを先頭にします
    • 代替案も引き続き提示します(優先順位は順位付けを助けるもので、選択肢をなくすものではありません)
  11. 優先順位を適用した後に複数のエイリアスが一致した場合は、次の基準で判定します。一致の正確さ > エイリアスの長さ > 曖昧さを解消する質問を1つ尋ねる。
  12. ルートの実行(明示されたスキル名、またはエイリアスの一致):
    • 解決されたスキルのロール指示を assets/subagent-runbook.md から読み込みます
    • インラインがデフォルトのポリシーで、ユーザーによるオーバーライドがない場合:
      • まずスキルをインラインで実行します
      • 実行に失敗した場合は、修正を求める質問を1つだけ尋ねて停止します
      • インライン実行の完了後にのみ Routing: <skill>. を出力します
    • それ以外(委任がデフォルト、またはユーザーによるオーバーライドがある場合):
      • まず、ハーネス固有のディスパッチツールを使用して、subagent=<effective_subagent>(ステップ6で決定。デフォルトは duckling)を指定し、サブエージェントに委任します
      • skill_name=<resolved_skill> パラメーターを渡します
      • ディスパッチに失敗した場合は、修正を求める質問を1つだけ尋ねて停止します
      • ユーザーによるオーバーライドが指定されている場合は Routing: <skill> via <subagent>. を、指定されていない場合は Routing: <skill>. を、ディスパッチの成功後にのみ出力します
    • 実行経路を利用できる場合は、ルーティング文を出力しただけで停止しないでください。
  13. エイリアスが見つからない場合(曖昧さの解消):
    • 意図の断片を検出して、対象を絞った質問を1つ尋ねます。
      • デバッグ関連(error/fail/trace/stack/broken):Need one detail: is this debug, trace, or review?
      • ロールアウト/リスク関連(rollout/migration/compat/rollback):Need one detail: is this risk review or design tradeoff?
      • コード変更関連(fix/change/refactor/clean up):Need one detail: do you want review, patch, refactor, or simplify?
      • 技術的負債関連(todo/defer/fixme/debt):Need one detail: is this debt audit or simplify?
      • 不明:Need one detail: which route fits—review, debug, design, teach, triage, risk, simplify, patch, refactor, or debt?
    • ユーザーによる明確化を待ってから、エイリアスの解決を再試行します。

境界

  • ユーザーが意思決定権を保持できるようにします。
  • 変更によって信頼境界の検証、セキュリティ制御、データ損失防止、アクセシビリティ要件、またはユーザーが明示した要件が弱まる場合は、その変更を拒否し、制約を維持する安全な代替案のみを提示します。
  • 明確に範囲を限定した承認なしに、ワークスペースの状態を変更する編集、変更コマンドの実行、サブエージェントへの委任を行いません。

コメント