Skip to main content
Glama

code-quorum

独立したレビューは、エージェンティックツールを使う上で重要な部分になっています。同様の取り組みに触発されて、私は Code Quorum を自分のために作り、他の人にも役立つかもしれないので共有しています。

Code Quorum は、Claude Code と Codex のための macOS マルチエージェントカウンシルです。アクティブなホストは自身のレビュー、評価、または計画を作成し、外部シートは並行して作業します。構造的な反バイアスゲートにより、最終的な統合まで各視点が独立して保たれます。

既存の Claude Code、ChatGPT/Codex、Gemini/Antigravity のサブスクリプションを利用できます。OpenCode シートは OpenRouter を使用し、デフォルトモデルは DeepSeek V4 Flash です。両方の CLI ホストがサポートされており、ChatGPT デスクトップアプリの Codex と Claude デスクトップアプリの Code サーフェスもサポートされています。

ホスト

デフォルトの外部カウンシル

Claude Code

Codex + Gemini + OpenCode

Codex

Claude サブスクリプション + Gemini + OpenCode

ホストがサブプロセスシートになることはありません。start/await 分割では、q_await がピアの出力を公開する前にホストが自身の回答を形成する必要があり、すべてのカウンシルスキルは開始と同じターンでブロッキング完了通知を呼び出します。

外部シートは読み取り専用ですが、読み取り専用はデータローカルを意味しません。プライベートな資料に Code Quorum を使用する前に、セキュリティとデータ境界 を確認してください。

リポジトリを読み取る MCP カウンシルの開始には、明示的な絶対パスのプロジェクト cwd が必要です。MCP ツールは、省略または空白の値をサーバーのプラグインキャッシュやランタイムディレクトリにフォールバックするのではなく、拒否します。ホストスキルは、通常の /q-* および $code-quorum:q-* の使用中にこの値を提供します。プランとスコープファイルもそのディレクトリ内で解決される必要があります。絶対パス、.. トラバーサル、シンボリックリンクエスケープは、内容が読み取られる前に拒否されます。

ワークフロー

ホストは、一致する平易なリクエストからワークフローを選択できます。明示的に選択するには、以下のフォームを使用してください。

ワークフロー

Claude Code

Codex

シェル

Plan

/q-plan <task>

$code-quorum:q-plan <task>

uv run quorum q-plan <task>

Brainstorm

/q-brainstorm <topic>

$code-quorum:q-brainstorm <topic>

uv run quorum q-brainstorm <topic>

Skystorm

/q-skystorm <topic>

$code-quorum:q-skystorm <topic>

ホスト専用スキル

Validate

/q-validate <plan-path>

$code-quorum:q-validate <plan-path>

uv run quorum q-validate <plan-path>

Review

/q-review [target]

$code-quorum:q-review [target]

uv run quorum q-review [target]

Research

/q-research <topic>

$code-quorum:q-research <topic>

uv run quorum research <topic>

Help

/q-help

$code-quorum:q-help

ホスト専用スキル

uv run quorum --help は正確なシェルサーフェスを一覧表示します。主な修飾子は次のとおりです。

オプション

効果

--extended

ホストのブレインストーミングに別の発散ラウンドを追加するか、検証/レビューをスタンスローテーション付きの4ラウンドに拡張します。

--mode critique

後の検証/レビューラウンドで、合意に向けて修正する代わりにピアの立場を攻撃します。

--scope <doc>

コードベース全体のレビューで、範囲内、範囲外、許容リスク領域を宣言します。

--exploratory

ホストのリサーチが直接の先行技術ではなく、クロスドメインの類似性を探すようにします。

--no-research

モデルの事前知識のみでブレインストーミングまたはスカイストームを実行します。

リサーチソースと認証情報

q-research はデフォルトで6つのソースすべてをクエリします。--source <name> を繰り返して実行を制限します。

ソース

ターゲット

認証情報ポリシー

arXiv (arxiv)

arXiv 検索からの学術論文とプレプリント。

なし。

OpenAlex (openalex)

最近の作品と要約。探索モードではサブフィールドマップも生成します。

通常の OpenAlex 使用には OPENALEX_API_KEY または QUORUM_OPENALEX_API_KEY が必要です。QUORUM_OPENALEX_EMAIL はクライアントを識別しますが、キーの代わりにはなりません。

Europe PMC (europepmc)

bioRxiv、medRxiv、Research Square などのライフサイエンスプレプリント。arXiv レコードは除外されます。

なし。

Context7 (context7)

信頼性の高いライブラリマッチとドキュメントスニペット。

匿名リクエストはレート制限される可能性があるため、CONTEXT7_API_KEY を推奨します。

GitHub (github)

名前、説明、トピックで一致する公開リポジトリ。スター数でランク付けされます。

より高い制限には GH_TOKEN または GITHUB_TOKEN を推奨します。プライベートリポジトリは除外されます。

Hugging Face (huggingface)

ダウンロード数でランク付けされた公開モデル ID とメタデータ。用語フォールバック結果には [broadened] が付きます。

アカウントレベルの Hub 制限には HF_TOKEN または QUORUM_HF_TOKEN を推奨します。プライベートモデルは除外されます。

Code Quorum はプロセス環境から認証情報を読み取り、トークンを認証ヘッダーでのみ送信します。生成された Codex アダプターは指定された変数を転送しますが、その値をプラグインアーティファクトに保存しません。OpenAlex は通常の使用にキーが必要な唯一のソースです。他のソースは信頼性またはレート制限を向上させます。

チェックアウトから Hugging Face 検索を検証するには:

uv run quorum research "sentence embedding" --source huggingface --limit 5
uv run pytest tests/test_research_live.py -m live -k huggingface -q

CLI チェックはモデルリンクとゼロ以外の HuggingFace ソースカウントを返す必要があります。ライブテストは、直接検索、設定済みトークン認証、特徴的な用語の和集合、完全な research_topic パスをカバーします。トークンがない場合、認証テストはスキップされますが、匿名チェックは引き続き実行されます。

Related MCP server: Moderator MCP Server

要件

Code Quorum は現在 macOS をサポートしており、Python 3.13+、uv パッケージマネージャー、および使用するシートのバイナリが必要です。各シートは独自のログインまたはキーに依存します。Code Quorum はプラグインアーティファクトに認証情報の値を書き込みません。シート CLI は、SECURITY.md で説明されているように、独自の認証とランタイム状態を保持します。

シート

バイナリ

認証

コスト

codex

codex

CLI 独自のログイン (codex login; メータリング使用には --with-api-key)

ChatGPT サブスクリプションまたはメータリング API キー

gemini

agy

agy による Google OAuth

Google AI サブスクリプション; メータリング GEMINI_API_KEY は明示的な SDK オプトインです

opencode

opencode

環境内の OPENROUTER_API_KEY

OpenRouter を通じたメータリング

claude (Codex ホストのみ)

claude

CLI 独自の claude.ai ログイン

Claude サブスクリプションのみ; API キールーティングは削除されます

Gemini シートは macOS Seatbelt サンドボックスに依存します。Claude は代わりに読み取りツールの許可リストを使用します。Codex ホストは、Claude と Gemini シートのために、厳密にスコープされた LaunchAgent ヘルパーも必要とします。Codex と OpenCode には Seatbelt 依存関係はありませんが、他のプラットフォームではテストされていません。

インストール

安定版チェックアウトをクローンし、シートを構成します:

git clone https://github.com/sdewell/code-quorum.git
cd code-quorum
uv sync
agy  # complete Google OAuth login, then exit
uv run quorum setup-agy                    # one-time Gemini seat config
uv run quorum setup-models --host claude   # use --host codex for Codex
uv run quorum doctor --host claude         # or codex / both
uv run quorum auth-check --seat gemini --host claude

doctor はバイナリ、構成形状、サンドボックスの準備状況をチェックします。ライブ認証情報はテストしません。auth-check はシートが使用するのと同じサンドボックス内で agy models を実行し、モデルプロンプトを送信せずに少なくとも1つの有効なモデル行を必要とします。ログインが欠落または失効している場合、ユーザーを対話型 agy に戻します。Code Quorum はメータリング API ルートに静かに変更することはありません。

Codex ホストでは、Codex 認証チェックの前に、実際のターミナルからヘルパーをインストールして検証します:

uv run quorum install-seat-helper-launchagent   # --allowed-root <dir> to widen
uv run quorum seat-helper-status
uv run quorum auth-check --seat gemini --host codex

すべての MCP ワークフローは、デフォルトで ~/Code と ~/src の下の cwd を許可します。Codex ヘルパーは、Claude または Gemini リクエストを受け入れる前に同じルートを適用します。他のプロジェクトルートを使用するには、CODE_QUORUM_HELPER_ALLOWED_ROOTS を設定するか、--allowed-root オプションを繰り返してヘルパーをインストールします。Code Quorum をアップグレードするたびに、更新された安定版チェックアウトから再インストールしてください。互換性のないヘルパープロトコルはフェイルクローズし、Codex の置き換え可能なプラグインキャッシュからのインストールは拒否されます。

読み取り専用の境界

すべての外部シートは読み取り専用であり、その境界を適用できない場合は実行を拒否します。強制はシートによって異なります: Codex はネイティブの読み取り専用サンドボックスを使用し、Claude は読み取りツールのみを公開し、Gemini は macOS Seatbelt を使用し、OpenCode は制限された権限を持つ分離された HOME を使用します。

Gemini の Seatbelt プロファイルは、他のホームディレクトリの読み取りを拒否しますが、agy 認証とランタイム状態の明示的な例外があります。$HOME の外の読み取り可能なパスを拒否しません。Code Quorum は、Claude、Codex、または OpenCode に普遍的なパスフェンスを提供しません。カウンシル資料は、ユーザーが構成したプロバイダーアカウントを通じてマシンの外に出る可能性があります。完全な境界テーブル、データ外部送信マップ、厳密な分離ガイダンス、および認証情報の処理は SECURITY.md にあります。

Codex でのデータと承認

Codex は、ツール承認、ファイルシステムの封じ込め、およびマテリアルをマシン外に送信する承認を別々の決定として扱います。main...HEAD などのターゲットは、準備されたレビューディフを制限します。外部シートの作業ディレクトリへの読み取り専用アクセスを制限するものではありません。

approvals_reviewer = "auto_review" が有効な場合、カウンシルの開始には、ペイロードと受信者を指定する明示的な承認が必要になる場合があります。無人アクセスを希望するユーザーはツールごとにオプトインできますが、Code Quorum はそれらの承認エントリを自分で書き込むことはありません。

SECURITY.md には、一回限りの認可の例、6つすべての Codex 承認ブロック(共有の q_await ツールを含む)、プロジェクトの AGENTS.md ガイダンス、パス封じ込めの制限、および承認を保持する更新手順が含まれています。無人ワークフローを有効にする前に、これを確認してください。

設定

各シートは1つのラダーでモデルを解決し、最初に一致したものが優先されます。実行時フラグ → 環境変数 → quorum setup-models で記録された選択 → 出荷時のピン、の順です。記録された選択が静かに変わることはありません。あるシートがそれを尊重できない場合は、残りのカウンシルが継続する間、そのシートは明示的に失敗します。

uv run quorum setup-models --host claude
uv run quorum setup-models --seat codex --model gpt-5.6-terra --effort medium

変数

効果

CODE_QUORUM_HOST

デフォルトのホストプロファイル(claude または codex)

CODE_QUORUM_GEMINI_MODEL

Gemini シートのモデル(agy models のID)

CODE_QUORUM_GEMINI_BACKEND

cli(サブスクリプション)または sdk(従量制の GEMINI_API_KEY)

CODE_QUORUM_OPENCODE_MODEL

OpenCode シートのモデル

CODE_QUORUM_OPENCODE_DEBUG

0 は失敗した実行の診断キャプチャを無効化

CODE_QUORUM_CLAUDE_MODEL / _EFFORT

Claude シートのモデルと努力量

CODE_QUORUM_CODEX_MODEL / _EFFORT

Codex シートのモデルと推論努力量

OpenCode の設定

OpenCode シートには OPENROUTER_API_KEY が必要であり、個人の OpenCode 設定は読み込まれません。分離された HOME を使用し、実行のたびにこの生成された設定を再構築します。出荷時のモデルは openrouter/deepseek/deepseek-v4-flash で、その OpenRouter の chunkTimeout は 90000 ミリ秒です。

Code Quorum は OPENCODE_DISABLE_PROJECT_CONFIG=1 と OPENCODE_PURE=1 を設定します。生成されたカウンシルエージェントは Read、glob、list のみを許可し、シェルと変更ツールを拒否し、.env と .env.* をブロックし、.env.example を許可します。失敗した実行または空の実行は、CODE_QUORUM_OPENCODE_DEBUG=0 が設定されていない限り、生の stdout/stderr キャプチャを ~/.cache/code-quorum/opencode-debug に書き込みます。ディレクトリは 0700、キャプチャファイルは 0600 で、プロンプトテキストはコマンドメタデータから省略され、最新の20件のキャプチャのみが保持されます。生のストリームにはレビュー済みの資料が含まれる場合があります。完全な境界設計については、ARCHITECTURE.md と SECURITY.md を参照してください。

シートの無効化

ライブプローブがシートの不在またはログアウトにより失敗した場合、quorum setup-models は models.toml でそれを disabled とマークできます。無効化されたシートはデフォルトのロスターでスキップされ、doctor によって報告されますが、明示的な --agent <seat> リクエストはそれでも実行されます。

プラグインとしてインストール

Claude Code:

/plugin marketplace add sdewell/code-quorum
/plugin install code-quorum@code-quorum

Claude Code CLI の場合、ホストを起動する前に OPENROUTER_API_KEY とオプションのリサーチキーを読み込みます。例:

source ~/.zshrc.local
claude

Claude デスクトップアプリの場合、開く前に現在の macOS ログインセッションでキーを利用可能にします:

source ~/.zshrc.local
launchctl setenv OPENROUTER_API_KEY "$OPENROUTER_API_KEY"

launchctl の値は、設定解除されるか、ログアウトが発生するか、マシンが再起動するまで、その後起動されるすべてのアプリケーションに継承されます。Claude Code を起動し、ログインセッションのコピーを削除します。すでに実行中のアプリは、プラグインのサブプロセス用にそのコピーを保持します:

launchctl unsetenv OPENROUTER_API_KEY

プラグインをインストールまたはアップグレードした後、またはキーを変更した後は、Claude Code を完全に終了し、新しい Claude Code セッションを開始してください。プラグインのリロードでコードの変更は反映されますが、実行中のホストが継承する環境を変更することはできません。

Claude プラグインは、uv run --directory ${CLAUDE_PLUGIN_ROOT} quorum-mcp で MCP サーバーを起動するため、uv と Python 3.13+ が PATH 上にある必要があります。

Codex:

公開マーケットプレイスを登録し、プラグインをインストールします:

codex plugin marketplace add sdewell/code-quorum --ref main
codex plugin add code-quorum@code-quorum
codex plugin list

ChatGPT デスクトップアプリの場合、マーケットプレイスを登録した後、アプリを完全に終了して再度開きます。Plugins を開き、Personal を選択し、Code Quorum を選択して、Install をクリックします。

どちらの Codex サーフェスでプラグインをインストールした後も、実際のターミナルから安定したチェックアウトを準備します:

uv sync
uv run quorum install-seat-helper-launchagent
uv run quorum seat-helper-status

Codex ランチャーは、そのチェックアウトの準備済み .venv を直接起動します。したがって、MCP の起動は、書き込み可能な uv キャッシュ、ネットワークダウンロード、または置き換え可能なプラグインディレクトリ内の環境に依存しません。後のアップグレードでは、1つのコマンドでチェックアウト、プラグイン、環境、承認、ヘルパーを更新します:

uv run quorum update-codex

その後、Codex を完全に再起動し、新しいスレッドを開始してください。古いチェックアウトに update-codex がない場合は、SECURITY.md の一回限りのレガシーシーケンスを使用してください。

Codex CLI で、/hooks を開いて各 code-quorum コマンドフックをレビューし、信頼してください。Codex は、各現在の定義ハッシュが信頼されるまでプラグインフックをスキップします。変更された定義は、その変更された定義について再レビューと信頼が必要です。

生成されたランチャーは、最小限の PATH を持つデスクトップアプリのために、標準のユーザーおよび Homebrew バイナリディレクトリ(~/.local/bin、~/.opencode/bin、/opt/homebrew/bin、/usr/local/bin)を復元します。

Codex CLI の場合は、Codex を起動する前にキー環境をソースします。ChatGPT デスクトップアプリの場合は、現在の macOS ログインセッションでキーを設定します:

source ~/.zshrc.local
launchctl setenv OPENROUTER_API_KEY "$OPENROUTER_API_KEY"

この値は、削除されるまで、その後起動されるすべてのアプリケーションに表示されます。Codex を起動し、ログインセッションのコピーを削除します。実行中のアプリは、すでに継承した値を保持します:

launchctl unsetenv OPENROUTER_API_KEY

プラグインのアップグレードまたはキー変更後は、Codex を完全に終了して再度開き、まったく新しい Codex スレッドを開始してください。再起動前に作成されたスレッドを再開しないでください。そのツールレジストリが以前のプラグインプロセスを参照している可能性があります。

承認を保持する更新の場合は、通常のパスとして codex plugin remove を使用しないでください。SECURITY.md の検証済みシーケンスに従ってください。

設計

ARCHITECTURE.md は、共有の CLI/MCP スパイン、シートアダプター、ラウンドモデル、偏り防止メカニズム、パッケージング、および障害境界について説明しています。簡単に言うと、ラウンド1にはピア出力が含まれず、以降のラウンドではピアがスタンスによって匿名化され、ホストは q_await までカウンシルマトリックスを受け取りません。

帰属

以下のプロジェクトがワークフローの形状に影響を与えました。コード、プロンプト、ドキュメントはコピーされていません:

ライセンス

MIT。

Available Tools

6 tools
q_awaitA

Block until the background council run identified by job_id completes, then return its rounds markdown. One-shot — a job_id can only be awaited once.

This is the blocking completion notification for every council start. The orchestrating host must not end its turn with a live job outstanding; it calls q_await after its independent work and remains blocked until this tool returns a result or error.

Errors:

  • job_id not found (expired, already retrieved, or invalid) → ValueError with the reason.

  • job cancelled by TTL or server shutdown → ValueError.

  • underlying council error → propagated.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations to rely on, the description carries the full burden and does so thoroughly. It discloses that the tool blocks until completion or error, that it is one-shot (a job_id can only be awaited once), and enumerates all error scenarios (job not found, TTL cancellation, server shutdown, underlying council errors). It also conveys the operational expectation that the host must not end its turn with an outstanding job. This goes far beyond a minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly structured: the first sentence delivers the core purpose, the second paragraph provides usage context, and a bulleted list covers errors. Every sentence earns its place; there is no fluff. The information is front-loaded with the most critical fact (blocking behavior) stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers what an agent needs to know to call this tool correctly: it explains the blocking nature, the one-shot constraint, the exact error outcomes, and the return value (rounds markdown). An output schema exists, so detailed return formatting is not required. There is no missing information that would prevent correct invocation or interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter `job_id` has zero schema description, so the description must compensate. It does by explaining that the job_id identifies the background run, and the error section clarifies what happens if the id is invalid (expired, already retrieved, or invalid). It stops short of specifying a format (e.g., UUID), but since a valid id comes from a sibling start tool, this is sufficient for the agent to understand its role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Block'), a clear resource ('background council run identified by job_id'), and an outcome ('return its rounds markdown'). It distinguishes itself from the sibling start tools (q_plan_start, q_brainstorm_start, etc.) as the blocking completion counterpart, so an agent can immediately tell what this tool does and how it differs from its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that this is 'the blocking completion notification for every council start' and gives a clear directive: 'The orchestrating host must not end its turn with a live job outstanding; it calls q_await after its independent work.' It also warns that it is one-shot, leaving no ambiguity about when and how to use it. No alternative tools are mentioned, but the context of siblings being all start tools makes the usage obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

q_brainstorm_startA

Start a q-brainstorm run in the background. Returns {"job_id": str} immediately. Each agent contributes 3-5 distinct ideas with rationale, trade-offs, and the cheapest test that would give signal; no synthesis. Retrieve results by calling q_await with the returned job_id.

Between the start and the await, the caller is expected to list its own ideas — this is the structural anti-bias gate.

research, when supplied, seeds round 1 with a q_research digest as EVIDENCE: agents are told to ground their ideas in it, recombine it, or extend past it. Pass the raw digest markdown (verbatim from q_research) -- never your own summary of it, and never your own ideas; those stay behind the anti-bias gate. Distinct from prior_ideas, whose do-not-repeat framing marks content to diverge AWAY from.

prior_ideas, when supplied, seeds a divergence round: the agents are told the listed ideas are already on the table and must not be repeated -- used by the --extended flow to push past round 1. Composes with research (evidence stays evidence; ideas stay do-not-repeat).

grounding, with prior_ideas, runs a validation-guide pass over the listed ideas instead of diverging past them -- used by q-skystorm Stage 2.

Optionally assign a cognitive stance per agent via roles, a list of 'stance:agent' strings (stances: skeptic, architect, security, maintainer, analyst, neutral, visionary, pioneer). Unassigned agents use their default stance.

gemini_model, when supplied, runs the gemini seat on that agy model for this invocation only (an id exactly as printed by agy models, e.g. 'claude-opus-4-6-thinking').

Expected wall-clock to completion: 30s-4min depending on the agents and topic complexity.

NameRequiredDescriptionDefault
cwdYes
hostNo
rolesNo
topicYes
agentsNo
skip_ghNo
verboseNo
researchNo
groundingNo
no_contextNo
prior_ideasNo
gemini_modelNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers comprehensively. It discloses the async nature (runs in background, returns job_id immediately), the output format, the expected timing (30s-4min), and the behavioral constraints (agents contribute 3-5 ideas, no synthesis, anti-bias gate). It also explains the semantic difference between research and prior_ideas. No behavioral aspect is left opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized into focused paragraphs. It front-loads the core behavior and return type, then explains each optional parameter and composition. Each paragraph earns its place, but the length is near the upper bound of acceptable. It is structured rather than rambling, so it scores a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (12 params, no schema coverage, no annotations, and an output schema), the description covers the essential workflow and the most impactful parameters. It explains the anti-bias gate, the difference between research and prior_ideas, and the grounding pass. Missing: descriptions of verbose, skip_gh, no_context, host, and a few error-handling details, but those are minor. It is nearly complete for a working understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It does explain the significant ones: research, prior_ideas, grounding, roles, gemini_model. However, it omits explanations for agents, skip_gh, verbose, no_context, host, and even cwd/topic are only implicit. For a tool with 12 parameters, the description adds value but leaves several parameters undocumented, forcing the agent to infer from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Start a q-brainstorm run'), states the async behavior, and names the sibling tools it complements (q_await, q_research). It clearly distinguishes this from q_plan_start, q_validate_start, etc., and explains the composition with q_research and q_await. An agent can immediately understand what this tool does and how it fits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Between the start and the await, the caller is expected to list its own ideas — this is the structural anti-bias gate.' It also names alternatives and conditions: 'Distinct from prior_ideas, whose do-not-repeat framing...' and mentions specific flows like '--extended' and 'q-skystorm Stage 2' that select the grounding mode. This is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

q_plan_startA

Start a q-plan run in the background. Returns {"job_id": str} immediately. The current host's external seats run in parallel from a structurally bias-free starting point. Retrieve results by calling q_await with the returned job_id.

Between the start and the await, the caller is expected to form its own plan — this is the structural anti-bias gate.

Optionally assign a cognitive stance per agent via roles, a list of 'stance:agent' strings (stances: skeptic, architect, security, maintainer, analyst, neutral, visionary, pioneer). Unassigned agents use their default stance.

gemini_model, when supplied, runs the gemini seat on that agy model for this invocation only -- an id exactly as printed by agy models, e.g. 'claude-opus-4-6-thinking' to get a Claude answer from the same AI Pro plan when Gemini quota is tight or a different perspective is wanted.

Expected wall-clock to completion: 30s-4min depending on the agents and codebase size.

NameRequiredDescriptionDefault
cwdYes
hostNo
taskYes
rolesNo
agentsNo
skip_ghNo
verboseNo
no_contextNo
gemini_modelNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses background execution, immediate return, parallel seats, bias-free starting point, the anti-bias gate, optional role assignment, gemini_model substitution, and expected wall-clock time. It does not explicitly state side effects or permissions, but the behavior is largely transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a coherent paragraph with clear sections: execution model, the anti-bias gate, roles, gemini_model, and timing. It is somewhat verbose (e.g., 'structurally bias-free') but every sentence adds useful information and is appropriately front-loaded with the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, no annotations, and an output schema, the description covers the high-level workflow and two parameters but omits critical invocation details like the meaning of 'cwd', 'task', 'host', 'agents', 'skip_gh', and 'no_context'. An agent would struggle to invoke it correctly without further documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains 'roles' (format and defaults) and 'gemini_model' (format and purpose), but ignores the other 7 parameters including required ones like 'task' and 'cwd'. With 0% schema description coverage, the description must compensate, but it covers only about 22% of parameters, leaving most ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a q-plan run in the background, returns a job_id immediately, and explains the anti-bias gate. It is distinct from siblings like q_brainstorm_start or q_validate_start by its explicit focus on structural anti-bias and the background execution model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete workflow guidance: start the run, then call q_await with the job_id, and it emphasizes the anti-bias gate as a reason to use this tool. However, it does not explicitly say when not to use it or contrast with alternative start tools like q_brainstorm_start.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

q_researchA

Fetch prior art for a topic from arXiv + OpenAlex + Europe PMC (papers), Context7 (library docs), GitHub (repos), and HuggingFace (models), and return a markdown digest.

Europe PMC covers the life-sciences preprint tier arXiv does not carry -- bioRxiv, medRxiv, Research Square -- so it is the source that earns its slot on biology/medicine topics and returns 0 on pure-software ones. Its hits are labelled by preprint server ("bioRxiv") and are NOT peer-reviewed; weigh them accordingly.

Not subject to the council's anti-bias gate -- this is external prior art, not peer output. Call it during the own-work window of a q_brainstorm or q-skystorm run to ground the synthesis. sources defaults to all six; pass a subset like ["arxiv", "openalex"] to restrict it.

Query shaping matters: pass a query that is SHORT and distinctive -- short is not the same as generic. Anchor it in 2+ domain-specific terms (the field PLUS the specific method/concept), never a bare common word ('data', 'model', 'network') or a token that doubles as an author surname -- those keyword-match unrelated work (author names, generic surveys, stray docs) and return non-zero but OFF-TOPIC noise -- sanity-check that returned titles belong to your domain, and if they are off-topic the query was too generic: re-anchor with more domain context and call q_research again rather than leaning on them. (This same-domain check assumes you want grounding in your own field -- if you are deliberately hunting cross-domain structural analogies instead, judge a hit by structural kinship to the problem, not literal subject-matter overlap; an off-domain hit is then the find, not noise.) Not a full paragraph either. Per source: arXiv parses topic as a boolean field -- a long/diffuse query loose-matches to famous-but-irrelevant papers, and boolean punctuation (parens, AND/OR, quotes) triggers a 400; OpenAlex tolerates prose but length dilutes relevance to generic surveys; Context7 wants a library/topic name and will keyword-match off-topic repos; GitHub/HuggingFace are popularity-ranked artifact searches that whiff on non-software/non-ML topics. The digest's per-source count footer shows which sources whiffed -- rework and retry those, unless the 0 is domain-legitimate (GitHub/HuggingFace on a non-software topic, Europe PMC on a non-biology one, Context7 on a topic with no matching library), which is a real answer, not a gap to close.

Treat every other digest result as provisional until it earns trust: a 0 that is NOT one of the domain-legitimate cases above is not automatically "no prior art" either (it may just be a bad query), and non-zero hits that read scattered or off-topic are not evidence -- both are a signal to reframe (sharper domain anchor, fewer/different terms) and retry, not something to build a conclusion on.

Failed sources are reported inline under 'Sources unavailable' rather than failing the call -- each with a retry hint, and the right move differs by error. An errored source is almost never a dead backend: an arXiv error (400) means YOUR query is too long or has boolean punctuation, so shorten it to a few keywords, strip operators, and call q_research again; a 401/403 or an OpenAlex 503 is a CONFIG case, not a flake -- the key was rejected, or OpenAlex is load-shedding anonymous search, so a bare retry just loops (set the source's key -- OPENALEX_API_KEY is free -- or lean on the other sources and say so); only a plain timeout/flake is transient and worth retrying as-is. Do NOT report a source unavailable, and do NOT fall back on your own knowledge, until a reworked retry has ALSO failed -- treating the first error as terminal is the failure to avoid. Bounded by per-request timeouts (~10-15s each); the GitHub and HuggingFace backends fan out one request per distinctive query term (up to 4), run sequentially, so those two sources' wall-clock can reach a few times that.

The digest OPENS with a deterministic Research status: line -- OK, RETRY-RECOMMENDED (USUALLY with a server-suggested shorter query to resubmit verbatim, shown as · try: "..."; when it is ABSENT the detail text says what to do, and the two absent cases differ -- a backend/infrastructure failure says RETRY THE SAME query, while an un-shortenable query says RE-ANCHOR with different domain terms), CONFIG (a key/anonymous-access problem no retry fixes), or (in exploratory mode) LOW-OVERLAP. Act on it before anything else: on RETRY-RECOMMENDED, resubmit the suggested query if one is given, else follow the detail (retry the same query on an infrastructure failure, or re-anchor with different domain-specific terms if it cannot be shortened) -- before concluding "no prior art". Mechanically-fixable failures (arXiv 400, a transient flake) are already retried inside the tool -- a repaired source shows a ↻ note, so a first-attempt error you never see was handled, not hidden.

mode is 'grounded' (default; brainstorm -- home-domain grounding, where a low-overlap result is a defect the verdict flags RETRY-RECOMMENDED) or 'exploratory' (skystorm -- a deliberate cross-domain method pivot, where low overlap is expected and reported as LOW-OVERLAP without forcing a retry). Exploratory mode also adds a ### Field map section (the OpenAlex subfield distribution for the query) showing which fields the method actually spans -- the skystorm topology readout. Query discipline is identical in both modes; only the low-overlap interpretation differs.

NameRequiredDescriptionDefault
modeNogrounded
limitNo
topicYes
sourcesNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it excels. It discloses internal retries ('Mechanically-fixable failures ... are already retried inside the tool'), error handling ('Failed sources are reported inline under 'Sources unavailable' rather than failing the call'), response format (markdown digest with a 'Research status:' line), per-source behaviors, and the distinction between domain-legitimate zero results and gaps. This level of transparency exceeds typical tool descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long but well-organized, front-loading the core purpose and then progressing into usage, error handling, and modes. Each paragraph serves a distinct function, yet some sections (e.g., the extended discussion of same-domain vs cross-domain checks) are arguably more detailed than necessary for an agent to invoke the tool. It is concise relative to its complexity but could be tightened without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers every aspect an agent needs: what it returns (markdown digest, status line), how to interpret results (RETRY-RECOMMENDED, CONFIG, LOW-OVERLAP), error handling with specific retry guidance, per-source whiffing logic, mode differences, and query-shaping best practices. Even with an output schema (not shown), this description is entirely self-sufficient given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description explains the `topic` (query shaping), `sources` (defaults, subset pass), and `mode` (grounded vs exploratory) parameters in depth. However, the `limit` parameter is never mentioned – its purpose and effect on output are not explained. Since the schema provides no help, this is a noticeable gap, though the description compensates well for the other three parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb and resource: 'Fetch prior art for a topic from arXiv + OpenAlex + Europe PMC (papers), Context7 (library docs), GitHub (repos), and HuggingFace (models), and return a markdown digest.' This clearly distinguishes the tool from its siblings (planning, brainstorming, validation, review, await) by focusing on external prior-art retrieval. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use instructions: 'Call it during the own-work window of a `q_brainstorm` or `q-skystorm` run to ground the synthesis.' It also provides query-shaping rules, mode interpretation ('grounded' vs 'exploratory'), error-handling strategies, and when not to trust results. Since there are no sibling research tools, it doesn't contrast with alternatives, but it provides rich contextual guidance on exactly when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

q_review_startA

Start a q-review run in the background. Returns {"job_id": str} immediately. Each agent independently reviews real code changes, then converges across rounds. Round 1 is structurally bias-free; later rounds embed each agent's own prior plus peers' priors so sustained agreement becomes visible. Retrieve results by calling q_await with the returned job_id.

Between the start and the await, the caller is expected to form its own code review of the diff — this is the structural anti-bias gate.

target selects what to review (default: branch vs main, committed + uncommitted). 'working' = uncommitted tracked changes only; 'pr:N' or a github PR URL = an open PR (title/body orient the review); 'A..B'/'A...B' = an explicit range; 'all' = the whole codebase (agents read cwd — pair with scope_path). An empty diff (other than 'all') short-circuits: the job returns a 'nothing to review' message without running the council.

scope_path, when supplied, points at a scope doc declaring what is in/out-of-scope and which risks are accepted; it is embedded verbatim so the council does not converge on out-of-bounds findings.

extended runs 4 rounds with a stance rotation at round 3 (agents swap stances and re-examine all priors); the default is 2 rounds with no rotation. mode is 'revise' (agents soften/strengthen in light of peers) or 'critique' (agents attack peer points).

verbose defaults to false: the council writes terse output (no padding, path:line over pasted code, and later rounds collapse each still-held finding to one HELD line while preserving the agreement count). Set true only when you want the full unabridged deliberation — a much larger matrix.

Optionally assign stances per agent via roles, a list of 'stance:agent' strings (stances: skeptic, architect, security, maintainer, analyst, neutral, visionary, pioneer).

gemini_model, when supplied, runs the gemini seat on that agy model for this invocation only (an id exactly as printed by agy models, e.g. 'claude-opus-4-6-thinking').

Expected wall-clock to completion: 1-8min default; 4-15min when extended=true. Pick extended deliberately.

NameRequiredDescriptionDefault
cwdYes
hostNo
modeNorevise
rolesNo
agentsNo
targetNo
skip_ghNo
verboseNo
extendedNo
no_contextNo
scope_pathNo
gemini_modelNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden and it delivers richly. It discloses that the call returns immediately instead of blocking (async job), gives expected wall-clock timing (1-8min default, 4-15min extended), spells out the empty-diff short-circuit that returns a 'nothing to review' message without running the council, details verbose output behavior (HELD lines, agreement counts), and explains the stance rotation at round 3 for extended mode. This far exceeds baseline behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but every paragraph earns its place for a 12-parameter async background tool. It is front-loaded with purpose and the return contract, then flows logically through the anti-bias gate, target values, scope, execution modes, output verbosity, and timing. The final timing note is a genuine value-add. It could be tightened slightly, but the length is justified by complexity rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool of this complexity — 12 params, async behavior, background execution, no annotations, 0% schema coverage — the description is remarkably complete, covering the workflow, the caller's required participation (anti-bias gate), short-circuit behavior, per-parameter semantics, and timing expectations. The output schema exists so return values need no further explanation, and job_id is already surfaced. The only completeness gap is the five undocumented parameters (agents, skip_gh, no_context, host, cwd) that the description leaves to the schema, which is empty.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it does for the majority. target gets a detailed breakdown of every value ('working', 'pr:N'/URL, 'A..B'/'A...B', 'all', default branch-vs-main), and scope_path, extended, mode, verbose, roles, and gemini_model are each explained. However, five of the twelve parameters (cwd, host, agents, skip_gh, no_context) are not touched in the description and, with zero schema descriptions, remain entirely undocumented — a real gap for a tool where agents and skip_gh likely matter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line states a specific verb and resource — "Start a q-review run in the background. Returns {"job_id": str} immediately" — and explains the mechanism (independent agent review then convergence across rounds). This clearly distinguishes a review tool from its siblings q_plan_start, q_brainstorm_start, and q_validate_start, which by naming convention cover different activities. No ambiguity about what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives strong usage context: it is for reviewing real code changes, and it explicitly routes retrieval to a sibling — "Retrieve results by calling `q_await` with the returned job_id" — which orients the agent within the family of q_* tools. It also defines the structural anti-bias gate the caller must pass between start and await. However, it never explicitly states when NOT to use this tool versus q_validate_start or the other review siblings; exclusions are implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

q_validate_startA

Start a q-validate run in the background. Returns {"job_id": str} immediately. Each agent independently reviews the plan file, then deliberates across rounds. Round 1 is structurally bias-free; later rounds embed each agent's own prior plus peers' priors. Retrieve results by calling q_await with the returned job_id.

Between the start and the await, the caller is expected to form its own review — this is the structural anti-bias gate.

extended runs 4 rounds with a stance rotation at round 3 (agents swap stances and re-examine all priors); the default is 2 rounds with no rotation. mode is 'revise' (agents soften/strengthen in light of peers) or 'critique' (agents attack peer points).

verbose defaults to false: the council writes terse output (no padding, path:line over pasted code, later rounds omit restating unchanged points). Set true only for the full unabridged deliberation — a much larger matrix.

Optionally assign stances per agent via roles, a list of 'stance:agent' strings (stances: skeptic, architect, security, maintainer, analyst, neutral, visionary, pioneer).

gemini_model, when supplied, runs the gemini seat on that agy model for this invocation only (an id exactly as printed by agy models, e.g. 'claude-opus-4-6-thinking').

Expected wall-clock to completion: 1-8min default; 4-15min when extended=true. Pick extended deliberately.

NameRequiredDescriptionDefault
cwdYes
hostNo
modeNorevise
rolesNo
agentsNo
skip_ghNo
verboseNo
extendedNo
plan_pathYes
no_contextNo
gemini_modelNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It comprehensively explains the background execution, immediate return of job_id, the bias-free first round and later rounds embedding priors, the extended mode's 4 rounds and stance rotation, the verbose output toggle, and the gemini_model override for this invocation. It also discloses expected wall-clock times and the anti-bias gate expectation, making the tool's behavior highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but well-structured, front-loading the core behavior and return value before diving into options. It uses clear paragraphs and imperative sentences that earn their place. While somewhat long, the length is justified by the tool's complexity, and it could be slightly more concise without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, no schema descriptions), the description covers the main workflow and several key parameters, and provides expected wall-clock times. However, it omits explanations for critical parameters like plan_path and cwd, and does not clarify the exact output format beyond job_id (though q_await likely handles results). The description is strong on purpose and behavior but incomplete in parameter coverage, so it is not fully complete for an agent to confidently invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter documentation. It explains extended, mode, verbose, roles, and gemini_model in detail, but leaves essential parameters like plan_path, cwd, host, agents, skip_gh, and no_context unexplained. The required plan_path is only referred to generically as 'plan file', which is insufficient for an agent to know exactly what to provide. The description only partially covers the 11 parameters, making parameter semantics incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it starts a q-validate run in the background and returns a job_id immediately. It describes the process of agents reviewing the plan file and deliberating, which distinguishes it from sibling tools like q_plan_start, q_brainstorm_start, and q_review_start. The tool's purpose is unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on retrieving results via q_await with the returned job_id and explains the structural anti-bias gate that the caller should form its own review between start and await. It also advises when to use extended mode ('Pick extended deliberately') and explains the default vs extended rounds. However, it does not explicitly contrast this tool with sibling start tools, relying on tool names for differentiation.

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. 6 tool updatesv0.0.63
    • First observedq_await
    • First observedq_brainstorm_start
    • First observedq_plan_start
    • First observedq_research
    • First observedq_review_start
    • First observedq_validate_start

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct function: planning, brainstorming, validation, code review, research, and result retrieval. There is no overlap in purpose; descriptions reinforce the boundaries.

Naming Consistency5/5

All tools follow a uniform 'q_' prefix with an action verb (plan_start, brainstorm_start, validate_start, review_start, research, await). The two non-start tools still share the prefix and verb style, making the pattern predictable.

Tool Count5/5

Six tools is well-scoped for a code-quality council suite: four distinct run types plus research and a blocking retrieval. Each tool earns its place without redundancy or bloat.

Completeness4/5

The core lifecycle (start runs, retrieve results) is fully covered, and research supports the workflow. Minor gaps exist—no job-listing or cancellation tool—but agents can work around them by awaiting each job, so the surface remains practical.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI coding agents to read each other's conversation history read-only and sanitized, so you can continue work across different tools without re-explaining context.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Allows users to manage multiple remote AI coding agents from a single Claude Code session, with a controlled execution model where operations require moderator approval.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables multi-model LLM council reviews and parallel sidecar conversations within Claude, allowing Claude to orchestrate structured reviews from various AI models and fold their responses back into the session.
    449 npm
    2
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    Enables coding agents to perform workspace-confined file operations, read-only Git inspection, and structured shell commands, while requiring out-of-band human approval for mutations and external executions and maintaining an audit trail.
    14
    3
    -