Deliberation
Deliberation
Claude Code で GPT、Gemini、Grok からセカンドオピニオンを得られます。さらに OpenRouter 経由で Qwen、Kimi、DeepSeek を含む 400 以上のモデルも利用可能です。7 人のドメインエキスパート(Architect、Code Reviewer、Security Analyst、その他 4 人)があなたの計画をレビューし、バグを見つけ、合意に達するまでエッジケースについて議論します。
最近のブログ記事: Deliberation を紹介: 400以上のモデルは簡単、どのモデルが居場所を得るかを見極めるのは難しい。




3つのモデルが議論すると、本当のバグが明らかになります。ラウンド1 = 独立したトップの発見。ラウンド2 = 各モデルが他のモデルの選択を批判。不一致マトリックスはどこで分岐するかを示し、結論は実際に最初に修正すべきことを示します。
Deliberation とは?
Claude は MCP を通じて GPT、Gemini、Grok、または任意の OpenAI 互換モデル(OpenRouter 経由)に助けを求めることができます。プラグインが各プロバイダーの配線を処理するので、プロンプトを書くだけで済みます。各エキスパートは明確な専門分野を持ち、アドバイスまたは実装を行うことができます。
プロバイダーの任意のサブセットを使用できます。プラグインは設定されているものを検出し、それに応じてルーティングします。OpenRouter はアドバイスのみで、設定駆動です: モデルは ~/.config/deliberation/config.json(Windows: %APPDATA%\deliberation\config.json; DELIBERATION_CONFIG で上書き)で宣言され、Claude Code を再起動せずにホットリロードされます。
得られるもの | 重要な理由 |
7人のドメインエキスパート | 各問題タイプに適した専門家 |
GPT、Gemini、Grok、または OpenRouter モデル | 好みのプロバイダーを使用 |
デュアルモード | エキスパートが分析(読み取り専用)または実装(書き込み) |
自動ルーティング | Claude がリクエストから委任すべきタイミングを検出 |
統合された応答 | Claude はエキスパートの出力を解釈し、生のパススルーはしない |
Related MCP server: Agents Council
インストール
Claude Code プラグイン(推奨):
1. マーケットプレイスを追加 - antonbabenko/agent-plugins
/plugin marketplace add antonbabenko/agent-plugins2. プラグインをインストール
/plugin install deliberation@antonbabenko3. セットアップを実行
/deliberation:setupClaude は複雑なタスクを GPT、Gemini、Grok、OpenRouter のエキスパートにルーティングします(Grok と OpenRouter はアドバイス、GPT と Gemini は実装も可能)。
セットアップは一度きりのステップです。 MCP サーバーはプラグインマニフェストによって登録されるため、自動的に読み込まれ、更新後も最新の状態が維持されます。
更新(Claude Code)
/plugin marketplace update antonbabenko # pull the new version from the marketplace
/reload-plugins # reconnect the MCP servers (or just restart Claude Code)非 Claude ホストでの更新: npx -y @antonbabenko/deliberation-mcp でスタンドアロンサーバーを実行するホストは、新規解決のたびに最新の公開バージョンを取得します。npx は解決済みパッケージをキャッシュするため、ホストが古いビルドを提供する場合は、npx キャッシュをクリア(rm -rf ~/.npm/_npx)するか、バージョンを固定/更新してください。
代替: deliberation MCP サーバーを使用(スタンドアロン、任意のエージェントで動作)
オーケストレーションサーバーは単独でも公開されています - npm @antonbabenko/deliberation-mcp、公式 MCP レジストリ名 io.github.antonbabenko/deliberation。
ワンクリックインストール:
これをホストの MCP 設定に追加します(ほとんどのホストは mcpServers キーを使用):
{
"mcpServers": {
"deliberation": {
"command": "npx",
"args": ["-y", "@antonbabenko/deliberation-mcp"],
"env": {
"XAI_API_KEY": "xai-...",
"OPENROUTER_API_KEY": "sk-or-v1-..."
}
}
}
}env ブロックは、Claude Code の外部でプロバイダーキーを設定する方法です。GPT と Gemini はここでキーを読み取りません - それらは codex と agy CLI(個別にログイン)を使用するため、GPT/Gemini のみを使用する場合はそれらの行を削除してください。XAI_API_KEY は Grok を有効にし、OPENROUTER_API_KEY は OpenRouter を有効にします(OpenRouter は ~/.config/deliberation/config.json - 標準の XDG パス、Windows では %APPDATA%\deliberation\config.json - にモデルを宣言する必要もあります。または DELIBERATION_CONFIG で別の場所を指定)。上記のワンクリックボタンはシークレットを運べないため、インストール後に env ブロックを手動で追加してください。
ホストごとの設定場所と期待されるキー:
ホスト | 設定 | キー |
Claude Code |
|
|
Claude Desktop |
|
|
Cursor |
|
|
VS Code |
|
|
Codex CLI |
|
|
Gemini CLI |
|
|
Windsurf |
|
|
Zed |
|
|
Cline | 拡張機能の MCP 設定(Cline パネル -> MCP Servers) |
|
プロバイダーの前提条件はプラグインと同じです(要件 を参照): GPT には Codex CLI、Gemini には agy、Grok には XAI_API_KEY、OpenRouter には OPENROUTER_API_KEY と ~/.config/deliberation/config.json(Windows: %APPDATA%\deliberation\config.json; DELIBERATION_CONFIG で設定パスを上書き)が必要です。
公開されるツール: ask-all、consensus(1回の呼び出しで完全な収束ループ、または synthesizeAlways:true による単一の合成パス)、consensus-step(ループを自分で駆動、呼び出しごとに1つのアクション)、ask-gpt / ask-gemini / ask-grok / ask-openrouter、panel + ask-one(アクティブなプロバイダーセットを発見し、プロバイダーを個別に呼び出します - プロバイダーごとの進行状況を表示するために並列で発行)、analyze(読み取り専用でデバッグログとセッションの分析を実行: モデルごとのレイテンシ / トークン + 判定の一致、アドバイザリのチューニング提案付き; configuredOnly と since で、現在実行中のモデルと選択した期間にレポートを限定)、7人のエキスパート(architect、plan-reviewer、scope-analyst、code-reviewer、security-analyst、researcher、debugger)、およびセッションツール(session-get / session-revisit / session-annotate)。すべての結果には ms と有効な reasoningEffort が含まれます(HTTP プロバイダーはトークン usage を追加)。オプションのデバッグログ("debug": { "enabled": true })はレイテンシ / トークン / 投票を記録します - プロンプトや応答は決して記録しません。これらはサーバーサイドであるため、Claude Code だけでなく、すべての MCP ホストで動作します(AGENTS.md を参照)。
パッケージには deliberation-setup バイナリも同梱されています。npx -y --package @antonbabenko/deliberation-mcp deliberation-setup で一度実行すると、スターターの ~/.config/deliberation/config.json が作成されます(既存のファイルを上書きすることはありません)。通常の npx -y @antonbabenko/deliberation-mcp 形式はデフォルトのバイナリ(サーバー)を実行します。これは MCP ホストが起動するものです。ホストルールの配線については、AGENTS.md と examples/ のホスト別スニペットを参照してください。
ホスト別ネイティブプラグイン(Cursor / Codex / Kiro / OpenCode)
上記の生の MCP 設定に加えて、deliberation は4つのホスト向けにネイティブプラグインアーティファクトを提供し、Claude Code プラグインと同じ体験を実現します(ペルソナを持つエキスパート + いつ委任すべきかのガイダンス。単なるツールではありません)。これらはすべて node scripts/sync-hosts.js によって正規ソースから生成され、コミットされているため、ドリフトすることはありません(CI のドリフトテストがそれを強制します)。各ホストはリポジトリ内の自ファイルをスキャンします:
ホスト | ネイティブ成果物(このリポジトリ内) | インストール |
Cursor |
| 上記のワンクリックMCPボタンを使用し、 |
Codex CLI |
|
|
Kiro |
| Kiroで「Add power from GitHub」→ このリポジトリのURL。レジストリには kiro.dev/powers/submit から提出します。 |
OpenCode |
| MCPサーバーを |
プロバイダー認証情報はスタンドアロンサーバーと同じです(GPTはCodex CLI経由、Geminiは agy 経由、Grokは XAI_API_KEY、OpenRouterは OPENROUTER_API_KEY)— 使用するプロバイダーのみ設定してください。MCPサーバーは各エキスパートのペルソナをサーバーサイドで注入するため、これらのネイティブファイルはホストのコマンド/ステアリング面を追加するものであり、ロジックの重複ではありません。
ホスト別の完全なインストールガイド: docs/hosts/ — Cursor、Codex CLI、Kiro、OpenCode。
要件
少なくとも1つのプロバイダーが必要です:
Codex CLI(GPT):
npm install -g @openai/codexを実行し、その後codex loginを実行します。Antigravity CLI:Antigravity CLI入門 と Gemini CLIからの移行 を参照し、
agyを実行してログインします。Grok(xAI):インストールするCLIはありません。ブリッジはプラグインに同梱されています(Node 18+が必要)。
XAI_API_KEYを設定します(キーは https://console.x.ai で取得)。OpenRouter:CLIはありません。ブリッジはプラグインに同梱されています(Node 18+が必要)。
OPENROUTER_API_KEYを設定し(キーは https://openrouter.ai/keys で取得)、その後~/.config/deliberation/config.jsonでモデルを宣言します(Windows:%APPDATA%\deliberation\config.json;DELIBERATION_CONFIGで上書き可能)。OpenAI互換の任意のエンドポイント(Ollama、vLLM、LM Studio、HuggingFace Inference)で動作します — キー環境変数が空の場合は認証が自動的にスキップされます。
Windowsに関する注意(CLIプロバイダー)。 Windowsで npm install -g を実行すると、実行可能ファイルではなく codex.cmd シムがインストールされ、Nodeは .cmd を直接起動できません — そのため、GPT呼び出しはスパウンエラーのみで失敗していました。deliberationはCLI自体を解決し(PATHEXT、フォールバックとしてパッケージ自身のエントリポイント)、シェルを介さずに実行します。お使いのマシンで解決に失敗する場合は、CODEX_BIN(GPT)または AGY_BIN(Gemini)を実際の実行可能ファイルに指定してください。GrokとOpenRouterは影響を受けません — これらはHTTPブリッジであり、何もスパウンしません。
コマンド
プラグインに同梱(インストール後に利用可能):
コマンド | 目的 |
| Codex/Gemini/Grok/OpenRouterのMCPサーバー+オーケストレーションルールを設定 |
| ホスト上でdeliberationを使用する方法(貼り付け可能なサンプルプロンプト付き) |
| ヘルスチェック(設定、プロバイダーCLI、セッション/デバッグ、パスのずれ)と修正;読み取り専用 |
| 🔥🔥🔥 アービター仲介によるGPT+Gemini+Grok+Claudeの収束ループ |
| 🔥 GPT+Gemini+Grok(+設定済みOpenRouterモデル)を並列実行し、統合 |
| ワンショットGPT(Codex)セカンドオピニオン |
| ワンショットGeminiセカンドオピニオン |
| ワンショットGrok(xAI)セカンドオピニオン(助言のみ) |
| ワンショットOpenRouterモデルセカンドオピニオン(助言のみ) |
| 最近の実行を分析(レイテンシ、トークン、判定の一致)し、モデル/推論/ファンアウト調整を提案(助言) |
| MCP設定、ルール、エイリアスを削除 |
| Grokにアップロードされたファイルを一覧表示、整理、またはgc(ストレージ+ローカルキャッシュのクリーンアップ) |
/setup は短いエイリアス(/ask-gpt、/ask-gemini、/ask-grok、/ask-openrouter、/ask-all、/consensus)を ~/.claude/commands/ にインストールすることもできます。これはオプトインです。同名の既存コマンドはデフォルトで保持され、setupは上書き前に確認を求めます。/deliberation:uninstall は、エイリアスが同梱コピーとバイト単位で同一の場合にのみ削除します。
analyze は意図的に除外されています:/analyze は一般的な名前であり、そのままコピーすると同様のコマンドを同梱する他のプラグインと衝突します。常に利用可能な /deliberation:analyze を使用してください。以前のsetupで ~/.claude/commands/analyze.md がインストールされた場合、setupはそのパスを指摘するので削除できます。/deliberation:uninstall も analyze を一覧表示しますが、そのバイト同一ガードは 現在の 同梱ファイルのコピーにのみ一致します — 古いリリースからコピーされたエイリアスは異なるため、推測で削除するのではなく意図的にそのまま残されます。
エキスパート
エキスパート | 役割 | トリガーの例 |
Architect | システム設計、トレードオフ、複雑なデバッグ | 「これはどう構成すべき?」/「トレードオフは?」 |
Plan Reviewer | 開始前に計画を検証 | 「この移行計画をレビューして」/「このアプローチは妥当?」 |
Scope Analyst | 曖昧さを早期に検出 | 「何を見落としている?」/「スコープを明確にして」 |
Code Reviewer | バグ発見、品質向上 | 「このPRをレビューして」/「何が問題?」 |
Security Analyst | 脆弱性、脅威モデリング | 「これは安全?」/「このエンドポイントを堅牢化して」 |
Researcher | 外部ライブラリ、ドキュメント、ベストプラクティス | 「Xの使い方は?」/「Yの例を探して」 |
Debugger | 根本原因分析、最小限の修正 | 「なぜクラッシュする?」/「この失敗するテストをデバッグして」 |
エキスパートが役立つ場面
アーキテクチャの決定 — 「Redisとインメモリキャッシュのどちらを使うべき?」
デバッグで行き詰まったとき — 2回以上失敗した後、新しい視点を得る
実装前 — コードを書く前に計画を検証
セキュリティ上の懸念 — 「この認証フローは安全?」
コード品質 — 実装に対するセカンドオピニオン
エキスパートを使うべきでない場面
単純なファイル操作(Claudeが直接処理)
修正の最初の試み(まず自分で試す)
些細な質問(委任する必要はない)
使用方法
タスクを説明してください。Claudeはエキスパートが役立つタイミングを検出し、自動的に委任します:
You: "Is this authentication flow secure?"
Claude: routes to the Security Analyst, then synthesizes the findings.明示的に依頼することもできます:「GPTにこのアーキテクチャをレビューしてもらって」、「Geminiに…」、「Grokに…」。各エキスパートは分析用の読み取り専用、または修正を適用するための書き込みアクセス付きで実行され、Claudeはリクエストからモードを選択します。
またはスラッシュコマンドを直接呼び出してください — 上記のコマンドを参照してください。
/consensus と /ask-* がモデルの誠実さを保つ仕組み
/ask-gpt、/ask-gemini、/ask-grok、/ask-all はクイックコマンドです:それぞれ1つまたは3つの外部モデルをディスパッチし、Claudeが出力を読み、1つの統合された回答を得ます。シングルショット、ループなし、ピアラウンドなし。
/consensus は本格的なものです。同じ並列ディスパッチですが、ピアレビューラウンドと、モデルが合意するまで停止しないマルチラウンドループが追加されています。コスト:オーケストレーター(Claude)がレビュープロンプトを作成し、投票し、どの異議が本物かを判断し、ループを実行します。そのまま放置すると、この設定は静かに自身の計画を承認印としてしまう可能性があります。4つのガードがそれを防ぎます。

4つのガード:
ブラインド判定。 Claudeはパネルを呼び出すメッセージの 前 に送信されるメッセージで自身の判定(APPROVE / REQUEST CHANGES / REJECT)を投稿します。事前コミットメントはトランスクリプトに残るため、Claudeは他の意見を見た後に自身の意見を変更できません。エンジンがこれを強制します:パネルはブラインド判定が記録されるまで公開されません。
ピアレビュー。 各外部モデルが計画を独立してレビューし、判定とカテゴリ別の重大な問題を返します。Claudeはアービターとしてそれらを評価します。モデルが投票し、Claudeが裁定します。
自己承認なし。 ラウンドが収束するのは、応答したすべての外部モデルが承認し、かつ少なくとも1つの外部モデルが実際に回答した場合のみです。Claude自身の承認だけでラウンドが成立することはありません。エラーを返したプロバイダー(未設定のGrokが
missing-authを返す場合など)は、ループを詰まらせる代わりにカウントから外れます。黙殺なし。 却下または延期されたすべての重大な問題には、最終レポートに一言の理由が添付されます。Claudeが自身のブラインド異議の一部を撤回する場合も含みます。エンジンは、理由なしに問題を却下する裁定を拒否します。
/ask-* コマンドは同じルールの軽量版を適用します。外部モデルは助言のみ行います:Claudeが出力を読み、自身の判断を適用し、統合された回答に対して責任を持ちます。モデルが一致した場合、それは入力であり、判定ではありません。
/consensus はコア収束エンジン(core/consensus-loop.js)の薄いドライバーです。ループの仕組み — ラウンドカウント、収束ルール、設定可能な最大ラウンド数上限、履歴、信頼度ラベル — はコマンドではなくエンジンにあります。各ラウンド:
ブラインド判定。 Claudeはパネルが公開される前に自身の判定(トランスクリプト表示)を下します。エンジンはその判定を条件にパネルの公開をゲートします。
パネルレビュー。 GPT、Gemini、Grok(および設定済みのOpenRouterデリゲート)がプランを並行してレビューし、APPROVE / REQUEST CHANGES / REJECT とカテゴリ別の重大な問題を出力します。サーバーは各判定を解析します。
調停者による裁定と改訂。 Claudeはパネルの判定と自身のブラインド判定を調整します。各重大な問題について、受け入れる(accept)、却下する(dismiss、理由必須)、先送りする(defer)のいずれかを選択し、次のラウンドに向けてプランを改訂します。
ループは、応答した外部審査員の少なくとも1人が承認し、誰も拒否せず、受け入れられた重大な問題がゼロで、かつClaudeがAPPROVEと裁定した場合に収束します(つまりClaude自身だけでは承認できません)。それ以外の場合は、consensus.maxRounds(デフォルト5、設定可能)でunresolvedとして停止します。信頼度ラベルは収束までの速さを反映します(ラウンド1 = 高、2〜3 = 中、4〜5 = 低)。
同じエンジンが、他のホストが使用するエントリポイントも支えています。consensusツール(プロバイダー調停者付きでループ全体をサーバーサイドで1回の呼び出しで実行、またはsynthesizeAlways:trueで単一の統合パスを実行)とconsensus-step(自分でドライブする、1アクションにつき1呼び出し)です。分類法とエンジン契約についてはTECHNICAL.mdを参照してください。
以前のリビジョンでは、「ステージ2」の匿名ピア相互レビュー(各モデルが他のモデルの回答をブラインドで採点、karpathy/llm-councilから適用)を追加で実行していました。エンジン駆動の書き直しにより、単一の真実源を維持するためにこれは削除されました。将来エンジンの機能として復活する可能性があります。
設定
完全なセットアップと設定のリファレンスは**SETUP.md**にあります。以下をカバーしています:
エキスパートモード - アドバイザリー(
read-only)と実装(workspace-write)。リクエストに応じて自動選択されます。設定ファイル - 場所(
~/.config/deliberation/config.json)、DELIBERATION_CONFIGによる上書き、ホットリロード。6つの設定セクション -
providers、models、routing、consensus、sessions、debug- 最小限の例付き。OpenRouterモデル - レコードの宣言、
askAll/consensusの対象、ファンアウト、reasoningEffort、調停者の選択。consensusはラウンド上限(maxRounds)とウォールタイム予算(maxWallMs、デフォルト20分)も設定します。タイムアウト -
providers.defaults.timeoutはすべてのプロバイダーの呼び出し上限を一括で引き上げます。providers.<name>.timeoutは1つのプロバイダーを上書きし、固定モデルのmodels.<id>.timeoutが最優先されます。レート制限(HTTP 429)を受けた呼び出しは、上流のRetry-Afterを尊重して1回再試行されます。デバッグログ - オプトインのレイテンシ / トークン / 投票トレース。
セッション永続化 - オプトインのディスク上の実行履歴(ホスト駆動の
/consensusループを含む)とsession-*ツール。sessions.captureText(デフォルトオフ)は、プロバイダーのレスポンス本文も追加で保存します(スクラブ済み)。
プロバイダー内部、環境変数、手動のMCPセットアップについては**TECHNICAL.md**を参照してください。
著者
Anton Babenkoがメンテナンス - LinkedIn、X/Twitter。
貢献
貢献歓迎です。ワークフロー、コミット規約、自動化されたリリースプロセスについてはCONTRIBUTING.mdを参照してください。
ライセンス
Available Tools
20 toolsanalyzeARead-only
Analyze recent runs from the opt-in debug log (latency/tokens/reasoning-effort per model) plus the session store (verdict agreement rate), and return advisory tuning suggestions (disable a slow/redundant model in ask-all, lower an OpenRouter model's reasoning, adjust maxFanout). Two lenses reported side by side - timing and agreement are NOT joined (no shared run id). Requires debug.enabled for the timing lens. Local and read-only (no provider calls, writes nothing); returns a text-wrapped JSON envelope with the two lenses + suggestions. The /deliberation:analyze slash command renders this for humans.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Only analyze runs newer than this window, e.g. "30m", "24h", "7d", or a bare number of seconds. Gates BOTH lenses so timing and agreement cover the same period. Omit for all time. Max 10 years; an invalid or out-of-range value is an error, never a silent fallback. | |
| sessions | No | How many recent session records to read for the agreement lens. Default -1 (no caller cap), still bounded to 500 parsed records; truncation is reported in meta.truncated.sessions. | |
| limitBytes | No | Tail size of the debug log to read, in bytes (default 1048576, or 33554432 when `since` is set). Clamped to 33554432. | |
| configuredOnly | No | Report only models present in the current config (default true). Excluded rows and the reason each was dropped are listed in meta.excluded. Set false to include retired/unconfigured models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint: true` and `destructiveHint: false`. The description goes far beyond this by explaining nuances: the opt-in nature of the log, the local execution ('no provider calls, writes nothing'), the two lenses not being joined, the requirement for `debug.enabled`, and the exact return format ('text-wrapped JSON envelope'). This is exemplary behavioral disclosure for a read-only analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, which given the complexity of the tool (two lenses, two data sources, exclusions, return format) is justifiable and efficient. Every sentence carries meaningful information: purpose, caveats, requirements, execution model, return format, and human-friendly alternative. Front-loaded with the primary action, with critical caveats following naturally, then closing with the alternative rendering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex analysis tool with 4 parameters, no output schema, and rich sibling context available, the description covers: the input sources, the analysis logic, the output format, the caveats (not joined), the requirement (debug.enabled), side effects (none), and the alternative. The overloading of parameters is documented in the schema, and the description ties it all together. There is no practical gap an agent would face when deciding to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has rich descriptions. The description adds high-level context by explaining the two data sources and the 'two lenses' concept that maps to the parameters (`since` gates both lenses, `sessions` for agreement, `limitBytes` for tail size, `configuredOnly` for filtering). It doesn't fully explain every parameter's interaction (e.g., limitBytes default changes with `since`), but the schema handles that. A 4 is warranted because the high-level semantics add value on top of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Analyze recent runs from the opt-in debug log... plus the session store' and clearly specifies the two data sources, the two lenses (timing and agreement), and the deliverable (advisory tuning suggestions). It explicitly notes the lenses are NOT joined, which distinguishes its analytical scope. The description also names a sibling renderer (`/deliberation:analyze`) and differentiates from its siblings by being local and read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('Analyze recent runs from the opt-in debug log...') and includes critical caveats: 'timing and agreement are NOT joined (no shared run id)', 'Requires `debug.enabled` for the timing lens', and 'Local and read-only (no provider calls, writes nothing)'. It also names the alternative format for humans ('The `/deliberation:analyze` slash command renders this for humans'), which helps an agent decide between calling the tool directly versus delegating to the human-facing command. This replaces potentially harmful default assumptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
architectARead-only
Software architect for system design, tradeoff analysis, and complex decisions. Use for architecture, API/schema design, multi-service interactions, or when a fix has failed twice and needs a fresh perspective. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond annotations: it fans out to a configured provider panel with an advisory persona, requires each provider's key/CLI, has rate limits, and returns a text-wrapped JSON envelope with a results array. This complements the readOnlyHint (true), destructiveHint (false), and openWorldHint (true) annotations effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded with purpose, followed by usage and behavioral details. Every sentence adds value without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, 18 sibling tools), the description is remarkably complete. It covers purpose, usage scenarios, behavioral model, return format, and prerequisites (keys, rate limits). No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters, so the baseline is 3. The tool description adds context about the advisory persona and fan-out behavior, but does not significantly enhance the meaning of individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a software architect for system design, tradeoff analysis, and complex decisions. It lists specific use cases (architecture, API/schema design, multi-service interactions, or after two failed fixes) and distinguishes itself from siblings by noting that the 'expert' parameter's persona is overridden on named expert tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool (e.g., architecture, complex decisions, fresh perspective after two failed fixes). It also indirectly advises against using it when a more specific expert tool is appropriate (since the persona is overridden). However, it lacks explicit 'when not to use' statements, which would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-allARead-only
Fan out one question to GPT, Gemini, Grok, and any configured OpenRouter models in parallel for independent second opinions, then return all results (advisory, no cross-contamination). Pass expert to apply a persona to every delegate. Calls external LLM providers (each needs its key/CLI; provider rate limits apply); returns a text-wrapped JSON envelope { results[], omitted[] } and persists a session record only when sessions.persist is enabled (default off).
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses external provider calls, key/CLI requirements, rate limits, return format (JSON envelope with results/omitted), and session persistence condition. Adds significant value beyond readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences front-load the core action and include all key caveats without superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and complex multi-provider behavior, the description adequately covers purpose, behavior, output format, and configuration details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 6 params (100% coverage). Description adds context: expert applies persona, reasoningEffort ignored by some providers, cwd resolution, and default persistence behavior. Enhances understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool fans out a question to multiple LLM providers (GPT, Gemini, Grok, OpenRouter) in parallel for independent second opinions, distinguishing it from single-provider siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates use for independent second opinions and advisory results. Implicitly contrasts with single-provider tools via sibling names, but lacks explicit when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-geminiARead-only
Single-provider second opinion via gemini (advisory, single-shot). Pass expert to apply one of the expert personas. Calls the external gemini provider (via the Gemini CLI; rate limits apply) and returns a text-wrapped JSON envelope { result }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool returns a 'text-wrapped JSON envelope { result }' and that it calls an external provider with rate limits. Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds value without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loading the purpose and key guidance. Every sentence adds value with no redundancy. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and annotations providing safety context, the description covers return format, rate limits, and single-shot nature. It does not detail error handling or pagination, but for a single-shot advisory tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it explains that 'expert' applies personas, 'developerInstructions' overrides built-in persona, and that 'reasoningEffort' is ignored for Gemini. Since schema coverage is 100%, the description enriches understanding of parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Single-provider second opinion via gemini (advisory, single-shot)' which includes a specific verb (ask/consult), resource (gemini), and scope (single-provider). It distinguishes from sibling tools like ask-all, ask-gpt, etc. by emphasizing it is only for Gemini.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises passing 'expert' for personas and notes that for named expert tools the tool's own persona wins. It also mentions rate limits and that reasoningEffort is ignored for Gemini, providing context on when to use. However, it does not explicitly state when not to use this tool versus alternatives, though it is implied by the single-provider nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-gptARead-only
Single-provider second opinion via codex (advisory, single-shot). Pass expert to apply one of the expert personas. Calls the external codex provider (via the Codex CLI; rate limits apply) and returns a text-wrapped JSON envelope { result }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, destructiveHint, openWorldHint), the description discloses that it calls an external provider 'via the Codex CLI' with rate limits, and returns 'a text-wrapped JSON envelope { result }.' This adds meaningful behavioral context about side effects and output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a brief note on return format. Every sentence adds value—purpose, expert usage, provider details, rate limit caveat, and output structure. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (all described in schema) and no output schema, the description covers the return format and a key behavioral detail (rate limits). However, it lacks usage context and guidance on when to pick this tool over siblings, leaving the agent without a complete picture for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only minimal parameter semantics by mentioning that `expert` applies personas, but does not elaborate on `prompt`, `files`, or other parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a 'Single-provider second opinion via codex (advisory, single-shot),' specifying the provider and nature. It distinguishes itself from sibling 'ask-*' tools by naming 'codex' as the provider, but does not explicitly contrast with other single-provider alternatives like ask-gemini or ask-one, so it lacks full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its many siblings (e.g., ask-gemini, ask-all, or expert tools). It mentions that on a named expert tool the persona is ignored, but this is a behavioral note, not a usage guideline. There is no when-not-to-use or alternative recommendation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-grokARead-only
Single-provider second opinion via grok (advisory, single-shot). Pass expert to apply one of the expert personas. Calls the external grok provider (needs XAI_API_KEY; rate limits apply) and returns a text-wrapped JSON envelope { result }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: it labels the tool as 'advisory, single-shot' and notes external provider call, API key requirement, rate limits, and return format (text-wrapped JSON envelope). No contradiction with annotations (readOnlyHint=true, destructiveHint=false, openWorldHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences, front-loading the core purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema, the description covers purpose, behavior, parameter details, and external dependencies. It lacks explicit error handling but is otherwise complete for a well-annotated tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds meaning: it explains that 'expert' applies a persona and is ignored on named expert tools, 'developerInstructions' overrides persona, 'reasoningEffort' applies only to certain providers, and 'files' attachment behavior per provider.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'Single-provider second opinion via grok (advisory, single-shot),' identifying the provider and the one-time advisory nature. It distinguishes from sibling tools by specifying 'single-provider' and 'grok,' and mentions 'expert' personas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for a 'second opinion' but does not explicitly state when to use this tool versus alternatives like 'ask-gpt' or 'ask-gemini.' It mentions external dependencies (XAI_API_KEY, rate limits) but lacks explicit when-not or alternative tool comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-oneARead-only
Second opinion from ONE named provider in the active panel (e.g. codex, gemini, grok, openrouter:<alias> - get the names from panel). Issue N in parallel (one per panel name) so each renders independently as it lands. Calls one external LLM provider (needs its key/CLI; rate limits apply); returns a text-wrapped JSON envelope { result }, or { error, panel } when the name is not in the panel. Advisory, single-shot.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| provider | Yes | A name from `panel` (e.g. "codex", "gemini", "grok", "openrouter:<alias>"). | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, non-destructive, and open-world. The description adds behavioral details about external API calls, key/CLI requirements, rate limits, and the return envelope format with error handling. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but every sentence adds information. It front-loads the core purpose and provides structured details. Minor redundancy could be trimmed, but overall it is clear and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and moderate complexity, the description adequately covers all parameters, return format, error cases, and usage notes. It lacks an explicit list of return fields but is sufficient for an advisory tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds value by explaining the provider parameter with examples, clarifying the expert parameter's behavior with named tools, and describing file attachment modes per provider type. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a second opinion from ONE named provider in the active panel, lists example provider names, and distinguishes from sibling tools like ask-all and provider-specific tools. It also notes the advisory, single-shot nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises issuing N calls in parallel for multiple providers and clarifies the need for provider keys/CLI and rate limits. It also explains the return format and error case. While it doesn't explicitly state when not to use, it provides sufficient contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask-openrouterARead-only
Single-provider second opinion via openrouter (advisory, single-shot). Pass expert to apply one of the expert personas. Calls the external openrouter provider (needs the OpenRouter API key env; rate limits apply) and returns a text-wrapped JSON envelope { result }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context that it calls external provider, requires API key env, and has rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences covering purpose, key feature, technical requirements, and return format. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, external dependency, return format, and key parameters. Could mention what the result envelope contains but sufficient for a simple call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by explaining that expert persona is ignored on named expert tools and that files attachment works differently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it's a single-provider second opinion via openrouter, advisory and single-shot. Distinguishes from sibling tools like ask-all and specific expert tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates advisory, single-shot usage and mentions external dependency with API key. Implicitly contrasts with multi-provider tools but lacks explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
code-reviewerARead-only
Senior engineer doing code review for bugs, security holes, and maintainability - not style nitpicks. Use to review a diff or file before merging. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds beyond that by revealing the tool fans out to external providers (each needing keys/CLI and subject to rate limits), returns a text-wrapped JSON envelope with results[], and operates in an advisory persona. This informs the agent about dependencies and output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, each serving a distinct purpose: stating the persona and scope, specifying when to use, and explaining the behavior and output. It is front-loaded and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (6 parameters, no output schema), the description covers all essential aspects: purpose, usage, behavior, and output format (JSON envelope with results[]). It does not detail error handling or edge cases, but the annotations and schema fill remaining gaps, making it sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that on a named expert tool like this, the tool's own persona wins over the 'expert' parameter and that 'developerInstructions' overrides the built-in persona. This clarifies parameter behavior beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs code review focusing on bugs, security holes, and maintainability, distinguishing it from style nitpicks. It specifies the action (reviewing a diff or file before merging) and the resource (code), making the purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'to review a diff or file before merging.' It also clarifies what not to do ('not style nitpicks'). However, it does not mention when to use alternative sibling tools like security-analyst or architect, missing an opportunity to guide the agent on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consensusARead-only
Run the FULL multi-round consensus convergence loop server-side with a provider arbiter (blind pass + peer fan-out -> adjudicate -> revise) and return the converged verdict. Default depth is consensus.maxRounds (config, default 5); pass maxRounds to override. Pass synthesizeAlways:true for a SINGLE arbiter synthesis pass instead of the loop (best for open questions, not plan convergence): it returns a free-text synthesis and maxRounds is ignored. Configure the arbiter via consensus.arbiter - a concrete provider/openrouter alias runs server-side; host mode returns the opinions for YOU to synthesize. Advisory; pass expert to apply a persona. Calls external providers (keys/CLI; rate limits apply); returns a text-wrapped JSON envelope (split verdict/synthesis, loop fields nullable) and persists a session record only when sessions.persist is enabled (default off). NOTE (Claude Code): use the /consensus slash command for the transcript-visible host-arbiter loop (it drives consensus-step); this tool is the provider-arbiter path for any host.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| maxRounds | No | Override consensus.maxRounds for this call (loop mode only; ignored when synthesizeAlways is true). Clamped to 50. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| synthesizeAlways | No | Run ONE arbiter synthesis pass instead of the convergence loop. Returns a free-text `synthesis` (verdict/converged/confidence are null, rounds is 1). Best for open questions. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behavioral traits: calls external providers with rate limits, returns a text-wrapped JSON envelope with split verdict/synthesis, and persists session only when enabled. No contradiction with annotations (readOnlyHint, destructiveHint, openWorldHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with information and front-loaded with the core purpose. Every sentence provides necessary context. The NOTE at the end is somewhat audience-specific but does not detract significantly. Could be slightly trimmed, but overall efficient for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and moderate complexity, the description covers purpose, usage, parameters, behavior, and return format (JSON envelope). It is self-contained and eliminates ambiguity for the agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 8 parameters. The description adds value beyond schema by explaining default behavior (e.g., maxRounds default from config, synthesizeAlways overrides loop, expert persona overriding, file delivery modes). Reduces cognitive load for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs a 'multi-round consensus convergence loop server-side' and returns a converged verdict. It distinguishes from sibling tool 'consensus-step' via the NOTE about using the /consensus slash command for the host-arbiter loop, and from other single-provider tools by the loop mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use the full loop vs. the single synthesis pass (synthesizeAlways), and advises on open questions vs. plan convergence. Also mentions the alternative /consensus slash command for host-arbiter loop, providing clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consensus-stepA
Client-driven consensus loop where YOU (the host model) are the arbiter, one action per call: init (returns sessionId + blind prompt) -> record_blind (your pre-commit verdict) -> dispatch_peers (server fans out to the providers) -> submit_adjudication (your verdict + per-issue accept/dismiss/defer) -> submit_revision (your revised plan), looping until converged or consensus.maxRounds rounds (default 5). Only the dispatch_peers action calls external providers; the others are local transitions on the ephemeral per-session loop store (keyed by sessionId, lost on server restart). Each call returns a text-wrapped JSON envelope with the next status/round (plus blindPrompt, opinions[], or finalReport by action). Advisory to the outside world, but mutates server loop state on every call.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | dispatch_peers only: working directory the peer providers run in. | |
| action | Yes | Which loop step to run this call, in order: init -> record_blind -> dispatch_peers -> submit_adjudication -> submit_revision. | |
| expert | No | init only: optional persona for the peer panel (see the expert tools). | |
| prompt | No | init only: the plan/proposal under review. | |
| verdict | No | submit_adjudication only: your adjudicated verdict after weighing the panel. | |
| decisions | No | submit_adjudication only: per-issue rulings, each { source, category, description, action: accept|dismiss|defer, reason }; dismiss/defer require a reason. | |
| sessionId | No | Loop id returned by init; required on every action except init. | |
| diffSummary | No | submit_revision only: one line summarizing what changed. | |
| revisedPlan | No | submit_revision only: the full revised plan addressing accepted issues. | |
| blindVerdict | No | record_blind only: your pre-commit verdict text, written before the panel is revealed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently discloses critical behavioral traits: it mutates server loop state, is advisory but mutates on every call, state is ephemeral (lost on server restart), and only dispatch_peers calls external providers. This goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by adding context about state persistence and external calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is packed with necessary detail, but it is somewhat dense and could benefit from clearer structure (e.g., breaking into sections). It front-loads the overall purpose but the subsequent list of actions and constraints is a bit sprawling. Still, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema), the description provides a comprehensive overview of the workflow, state management, and expected replies (text-wrapped JSON envelope). It covers edge cases (sessionId required after init, convergence loop) and parameter constraints per action. However, it does not explain return values in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema by grouping parameters by action (e.g., 'init only', 'record_blind only') and explaining semantics like 'blindVerdict: your pre-commit verdict text, written before the panel is revealed'. This helps the agent understand usage constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool implements a consensus loop with a specific sequence of actions (init, record_blind, dispatch_peers, submit_adjudication, submit_revision). It explains the role of the host model as arbiter. However, while it distinguishes the tool from abstract siblings like 'consensus' by detailing the step-by-step protocol, it doesn't explicitly contrast with related tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the required order of actions and that only one action per call is allowed. It implies usage context (client-driven loop) but does not provide explicit guidance on when to use this tool vs alternatives like the simpler 'consensus' tool. No exclusions or when-not-to-use scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debuggerARead-only
Debugging specialist that produces ranked root-cause hypotheses and the smallest safe fix from a bug report, logs, and code - or says honestly that the evidence shows no bug. Use for crashes, failing tests, or wrong output. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool 'fans out to the configured provider panel' with a specific persona, that each provider needs key/CLI and rate limits apply. This adds behavioral context beyond the annotations (readOnlyHint=true, destructiveHint=false, openWorldHint=true). No contradictions with annotations; the description provides useful transparency about external dependencies and response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first clearly states the purpose and output, second provides usage guidance and behavioral notes. It is concise with no unnecessary words, effectively front-loading the key information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (debugging analysis using external providers), the description covers purpose, usage, behavioral notes (provider dependency, rate limits), and output format. It mentions return structure (JSON envelope with results array) but does not detail the results schema, which is acceptable without an output schema. Generally complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 6 parameters with 100% description coverage, so the schema already explains each parameter. The description does not add new meaning beyond what the schema provides (e.g., it doesn't elaborate on how 'prompt' should be structured for best results). Baseline score of 3 is appropriate since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a debugging specialist that produces ranked root-cause hypotheses and small safe fixes from bug reports, logs, and code. It specifies the output format (JSON envelope with results array) and when to use it (crashes, failing tests, wrong output). This distinguishes it from sibling tools like 'code-reviewer' or 'researcher', which have different focus areas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use for crashes, failing tests, or wrong output', providing clear usage context. It does not explicitly state when not to use, but the tool's name and specialization implicitly exclude other tasks. It mentions the tool returns 'says honestly that the evidence shows no bug', which guides appropriate usage. No direct comparison to alternatives, but the scope is reasonably defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
panelARead-only
Return the names of the providers ask-all WOULD dispatch for the current config + expert (enabled built-ins + eligible OpenRouter aliases, fanout cap applied), WITHOUT calling them. Use this to discover the panel, then issue one ask-one call per provider in parallel for visible per-provider progress. Local and read-only (no provider calls); returns a text-wrapped JSON envelope { providers[], omitted[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| expert | No | Optional persona to preview the panel for; affects which providers/aliases are eligible. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by confirming it is 'local and read-only (no provider calls)' and describing the return envelope, though annotations cover the safety profile well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence delivers purpose and behavior, second gives usage guidance. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param optional tool with rich annotations, the description covers purpose, behavior, return format, and usage flow. No gaps given the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats the schema text for parameters without adding new meaning or syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'returns the names of the providers... WITHOUT calling them', distinguishing it from ask-all. It identifies the specific verb and resource (discover panel) and differentiates from siblings like ask-one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use this to discover the panel, then issue one ask-one call per provider in parallel'. Provides clear context but lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan-reviewerARead-only
Work-plan reviewer that verifies a plan is executable before anyone builds. Use to validate an implementation plan for clarity, completeness, and gaps before starting significant work. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds value by disclosing that it fans out to a provider panel, requires keys/CLI, has rate limits, and returns a JSON envelope with results. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise (2 sentences plus a brief return format note). It front-loads the purpose and usage. The technical details about fan-out and return envelope could be slightly more structured but do not hinder readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description mentions the return format as 'text-wrapped JSON envelope { results[] }', which is helpful. However, it lacks details on error handling, provider configuration, and edge cases. Given the tool's complexity (fan-out, multiple providers), more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds contextual meaning, such as the 'expert' parameter being ignored on named expert tools and the persona being advisory. This supplements the schema without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a plan reviewer that validates implementation plans before building. It uses specific verbs ('verifies', 'validate') and distinguishes itself from siblings like 'architect' or 'code-reviewer' by focusing on plan review before execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool 'to validate an implementation plan before starting significant work', providing clear context. However, it does not explicitly state when not to use it or mention alternative tools for other phases of the development process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
researcherARead-only
Research specialist for external libraries, frameworks, APIs, and open-source code. Use for 'how do I use X', best-practice, or 'why does this dependency behave this way' questions, with evidence and honest unverified flags. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral details: it fans out to a provider panel with advisory persona, requires keys/CLI per provider, rate limits apply, returns a text-wrapped JSON envelope with results, and includes evidence and honest unverified flags. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences long, front-loaded with the main purpose, and includes necessary technical details without redundancy. It is efficient but could be slightly more concise by combining some clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple providers, six parameters, no output schema), the description thoroughly covers behavior: provider fan-out, return envelope format, file attachments, reasoning effort, and persona override. It provides sufficient context for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already fully describes each parameter. The description adds minimal value for parameter semantics, only mentioning that the expert parameter is ignored on named expert tools. It does not explain parameter details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a research specialist for external libraries, frameworks, APIs, and open-source code, and specifies concrete use cases like 'how do I use X' and 'why does this dependency behave this way'. This distinguishes it from sibling tools such as architect, code-reviewer, and debugger.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (e.g., best-practice questions) and mentions that on a named expert tool the tool's own persona wins. However, it does not explicitly list when not to use it or recommend specific alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scope-analystARead-only
Pre-planning consultant that catches ambiguities, hidden requirements, and pitfalls before planning begins. Use when a request is vague or could be interpreted multiple ways. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosed behaviors include 'fans out to configured provider panel', 'advisory persona', 'each provider needs its key/CLI, rate limits apply', and 'returns text-wrapped JSON envelope { results[] }'. This adds context beyond annotations (readOnlyHint, openWorldHint) without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences only: first sentence states purpose and use condition, second explains behavior and output. Front-loaded, no redundancy, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return envelope shape. It also mentions provider dependencies. However, the structure of results[] is not detailed, but acceptable given the tool's advisory role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any meaning or usage guidance for individual parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'pre-planning consultant' that 'catches ambiguities, hidden requirements, and pitfalls before planning begins.' It specifies when to use ('vague or could be interpreted multiple ways'), distinguishing it from sibling tools like architect or plan-reviewer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use when a request is vague or could be interpreted multiple ways.' Provides clear context but does not explicitly mention when not to use or suggest alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
security-analystARead-only
Security engineer for threat modeling and vulnerability assessment. Use for auth/authorization changes, untrusted input handling, new endpoints, or a focused security audit. Fans out to the configured provider panel with this persona (advisory; each provider needs its key/CLI, rate limits apply) and returns a text-wrapped JSON envelope { results[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory. | |
| files | No | Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url. | |
| expert | No | Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored. | |
| prompt | Yes | The question or task for the provider(s)/expert. | |
| reasoningEffort | No | Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it. | |
| developerInstructions | No | Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant context beyond annotations: it explains the fan-out to providers, advisory persona, provider requirements (keys/CLI), rate limits, and return format as a JSON envelope. This is valuable as annotations only indicate readOnly and openWorld hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with purpose, then use cases, then behavior. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, use cases, behavior, and return format. While it could detail the results structure more, it sufficiently complements the annotations and schema, leaving minor ambiguity about the exact output shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes all parameters well. The description does not add substantial parameter-specific guidance beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a security engineer for threat modeling and vulnerability assessment, with specific use cases like auth/authorization changes and security audits. This distinguishes it from sibling tools such as code-reviewer or architect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use: for auth/authorization changes, untrusted input handling, new endpoints, or a focused security audit. It does not mention when not to use or alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session-annotateA
Append a freeform note to a persisted session's audit trail - an additive local write, no provider calls. Requires sessions.persist. Returns a text-wrapped JSON envelope { session } (the updated record), or { error } when persistence is off or the id is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Freeform text appended to the record's audit trail. | |
| sessionId | Yes | Id of the persisted session record to annotate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the additive, non-destructive nature of the operation and states that it is a local write with no provider calls. This adds valuable context beyond the annotations (which already indicate non-read-only and non-destructive). It also explains error conditions and return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences that efficiently convey purpose, prerequisites, and return behavior. Every sentence serves a distinct purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (two required params, no output schema), the description provides complete information: it explains the action, prerequisites, side effects (additive local write), error conditions, and return format. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have clear descriptions. The description does not add additional parameter-level detail beyond what the schema provides. As per guidelines, with high schema coverage the baseline is 3, and the description does not increase it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Append'), the resource ('persisted session's audit trail'), and key characteristics ('additive local write, no provider calls'). It distinguishes from sibling tools, which are about analysis, consultation, or retrieval, not annotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions the prerequisite 'Requires sessions.persist', which provides a clear condition for when to use this tool. It also notes that an error occurs when persistence is off. However, it does not provide explicit alternatives or when-not-to-use scenarios, which would elevate the score to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session-getARead-only
Fetch a persisted consensus/ask-all session record by id (opinions, verdict, arbiter, annotations). Requires sessions.persist; local and read-only (no provider calls). Returns a text-wrapped JSON envelope { session }, or { error } when persistence is off or the id is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | session-revisit only: working directory for resolving the original file refs on the re-run; session-get ignores it. | |
| sessionId | Yes | Id of a persisted session record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds details about being local, no provider calls, error cases, and that cwd is ignored, which goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, then return format and error handling. No wasted words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool, the description covers prerequisites, behavior, return format, and error scenarios. With good annotations and no output schema needed, it is fully informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that cwd is irrelevant for session-get and clarifying the role of sessionId, enhancing understanding beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (Fetch), resource (persisted consensus/ask-all session record), and method (by id). It lists the contents (opinions, verdict, arbiter, annotations) and prerequisites, making the purpose unambiguous and differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it is read-only, local, and requires sessions.persist, giving context on appropriate usage. It lacks explicit comparison to siblings like session-annotate or session-revisit, but the read-only nature and mention of ignoring cwd provide implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session-revisitA
Re-run a persisted session's ORIGINAL question with the CURRENT providers/config, linking the new run to its source by parentId. Requires sessions.persist; re-runs through the original tool path (which dispatches external providers) and persists a linked child record on success. Returns a text-wrapped JSON envelope (the re-run payload + parentId), or { error } when persistence is off or the id is unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | session-revisit only: working directory for resolving the original file refs on the re-run; session-get ignores it. | |
| sessionId | Yes | Id of a persisted session record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive, but the description adds important behavioral details: it persists a linked child record, requires persistence, and returns a JSON envelope or error. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each adding value: core action, requirements and process, return format, and error case. Front-loaded with the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no output schema), the description covers all necessary context: the action, prerequisites, side effects, return format, and error conditions. Sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add new information about parameters beyond what the schema provides; the schema already includes good descriptions for both sessionId and cwd.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Re-run a persisted session's ORIGINAL question with the CURRENT providers/config'), the resource ('persisted session'), and differentiates from siblings like session-get by mentioning linking via parentId and the requirement for persistence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (to re-run a session with current config) and notes prerequisites (sessions.persist must be on), but does not explicitly contrast with other tools in the sibling list beyond stating it uses the original tool path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v3.14.1- Changed
analyze4 fields changed- added
Input schema / properties / configuredOnlyAdded value: +{ + "description": "Report only models present in the current config (default true). Excluded rows and the reason each was dropped are listed in meta.excluded. Set false to include retired/unconfigured models.", + "type": "boolean" +} - changed
Input schema / properties / limitBytes / descriptionPrevious value: -"Tail size of the debug log to read, in bytes (default 1048576)."New value: +"Tail size of the debug log to read, in bytes (default 1048576, or 33554432 when `since` is set). Clamped to 33554432." - changed
Input schema / properties / sessions / descriptionPrevious value: -"How many recent session records to read for the agreement lens (default 50)."New value: +"How many recent session records to read for the agreement lens. Default -1 (no caller cap), still bounded to 500 parsed records; truncation is reported in meta.truncated.sessions." - added
Input schema / properties / sinceAdded value: +{ + "description": "Only analyze runs newer than this window, e.g. \"30m\", \"24h\", \"7d\", or a bare number of seconds. Gates BOTH lenses so timing and agreement cover the same period. Omit for all time. Max 10 years; an invalid or out-of-range value is an error, never a silent fallback.", + "type": "string" +}
19 tool updates
v3.8.1- Changed
architect11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-all11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-gemini11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-gpt11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-grok11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-one12 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - changed
Input schema / properties / provider / descriptionPrevious value: -"A name from `panel` (e.g. \"codex\", \"openrouter:<alias>\")"New value: +"A name from `panel` (e.g. \"codex\", \"gemini\", \"grok\", \"openrouter:<alias>\")." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
ask-openrouter11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
code-reviewer11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
consensus11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
consensus-step10 fields changed- added
Input schema / properties / action / descriptionAdded value: +"Which loop step to run this call, in order: init -> record_blind -> dispatch_peers -> submit_adjudication -> submit_revision." - added
Input schema / properties / blindVerdict / descriptionAdded value: +"record_blind only: your pre-commit verdict text, written before the panel is revealed." - added
Input schema / properties / cwd / descriptionAdded value: +"dispatch_peers only: working directory the peer providers run in." - added
Input schema / properties / decisions / descriptionAdded value: +"submit_adjudication only: per-issue rulings, each { source, category, description, action: accept|dismiss|defer, reason }; dismiss/defer require a reason." - added
Input schema / properties / diffSummary / descriptionAdded value: +"submit_revision only: one line summarizing what changed." - added
Input schema / properties / expert / descriptionAdded value: +"init only: optional persona for the peer panel (see the expert tools)." - added
Input schema / properties / prompt / descriptionAdded value: +"init only: the plan/proposal under review." - added
Input schema / properties / revisedPlan / descriptionAdded value: +"submit_revision only: the full revised plan addressing accepted issues." - added
Input schema / properties / sessionId / descriptionAdded value: +"Loop id returned by init; required on every action except init." - added
Input schema / properties / verdict / descriptionAdded value: +"submit_adjudication only: your adjudicated verdict after weighing the panel."
- Changed
debugger11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
panel2 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona to preview the panel for; affects which providers/aliases are eligible."
- Changed
plan-reviewer11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
researcher11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
scope-analyst11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
security-analyst11 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"Working directory the provider runs in (used to resolve relative file refs). Defaults to the server process directory." - added
Input schema / properties / developerInstructions / descriptionAdded value: +"Optional system/developer instructions injected verbatim; overrides the built-in persona for `expert`." - added
Input schema / properties / expert / descriptionAdded value: +"Optional persona: architect, plan-reviewer, scope-analyst, code-reviewer, security-analyst, researcher, or debugger. On a named expert tool the tool's own persona wins and this is ignored." - added
Input schema / properties / files / descriptionAdded value: +"Optional attachments for providers that read files (Grok/OpenRouter; inlined as context for Codex/Gemini). Each item is EXACTLY ONE of path/dir/file_id/file_url." - added
Input schema / properties / files / items / properties / dir / descriptionAdded value: +"Directory to attach; expanded recursively by providers that support it." - added
Input schema / properties / files / items / properties / file_id / descriptionAdded value: +"Id of a file already uploaded to the provider (e.g. Grok Files API)." - added
Input schema / properties / files / items / properties / file_url / descriptionAdded value: +"Public URL for the provider to fetch." - added
Input schema / properties / files / items / properties / mode / descriptionAdded value: +"Delivery: auto (size-based), inline (embed as text), or upload (provider Files API)." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Path to a single file to attach (resolved against cwd)." - added
Input schema / properties / prompt / descriptionAdded value: +"The question or task for the provider(s)/expert." - added
Input schema / properties / reasoningEffort / descriptionAdded value: +"Reasoning depth where the provider supports it (Grok, OpenRouter): low, medium, high, or none. CLI providers (Codex, Gemini) ignore it."
- Changed
session-annotate2 fields changed- added
Input schema / properties / note / descriptionAdded value: +"Freeform text appended to the record's audit trail." - added
Input schema / properties / sessionId / descriptionAdded value: +"Id of the persisted session record to annotate."
- Changed
session-get2 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"session-revisit only: working directory for resolving the original file refs on the re-run; session-get ignores it." - added
Input schema / properties / sessionId / descriptionAdded value: +"Id of a persisted session record."
- Changed
session-revisit2 fields changed- added
Input schema / properties / cwd / descriptionAdded value: +"session-revisit only: working directory for resolving the original file refs on the re-run; session-get ignores it." - added
Input schema / properties / sessionId / descriptionAdded value: +"Id of a persisted session record."
TDQS
Scored across 20 tools
Many tools overlap in purpose: ask-all and persona tools (architect, debugger, etc.) all fan out to providers, differing only by persona; ask-one duplicates ask-gpt/ask-gemini/ask-grok/ask-openrouter. The detailed descriptions help, but the sheer number of near-identical actions creates ambiguity for an agent.
Naming is inconsistent: some tools use verb-first hyphenated names (ask-all, session-get) while others are noun personas (architect, debugger) or single verbs (analyze). There's no uniform pattern for verbs, nouns, or hyphenation, making the set feel ad hoc.
20 tools is high and largely redundant. The specific provider tools (ask-gpt, ask-gemini, etc.) and the many persona tools (architect, plan-reviewer, etc.) could easily be consolidated into ask-one and ask-all with a persona parameter, reducing the surface without losing capability.
The tool set covers the deliberation lifecycle well: asking for opinions (ask-all, ask-one, personas), reaching consensus (consensus, consensus-step), session persistence (session-annotate, session-get, session-revisit), and performance analysis (analyze). Minor gaps like listing all sessions are not critical, so completeness is strong.
Maintenance
Related MCP Connectors
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
The OpenRouter MCP server plugs OpenRouter into the AI tools you already use. Once connected, your assistant can pull live OpenRouter data (models, prices, your credits, rankings, and docs) and send quick test messages, all without leaving your editor.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server orchestrating local CLI agents (Claude Code, OpenAI Codex, Google Gemini) for cross-validation, second opinions, and persona-driven prompting.18MIT
- AlicenseNot gradedqualityDmaintenanceThe simplest way to bridge and collaborate across AI Agent sessions like Claude Code, Codex, Gemini, or Cursor. It allows your agents to combine their strengths to solve your most difficult tasks without leaving their current context.23 npm70MIT
- AlicenseAqualityDmaintenanceMulti-AI Consensus Tool: Query multiple AI models in parallel, synthesize responses for better accuracy, and reduce AI bias through ensemble decision-making.133MIT
- AlicenseBqualityAmaintenanceMCP server orchestrating API-first cross-review between Claude, ChatGPT Codex, Gemini, DeepSeek, Grok, and Perplexity with unanimous convergence gates.28479 npmApache 2.0