
行動評価ラボ(Quorum)は、スーパーパワーズプロジェクト向けで、実際のコーディングエージェントCLI(Claude、Codex、Gemini、Kimiなど)をQAエージェントで駆動し、シナリオ基準と決定論的事後チェックに対するワークフロー準拠を評価します。
superpowers のための行動評価ラボ。 Quorum は、実際のコーディングエージェント CLI(Claude、Codex、Antigravity、Gemini、Kimi、OpenCode、Pi、Copilot)を Gauntlet QA エージェントで駆動し、シナリオの受理条件と決定論的な事後チェックに基づいて採点します。
コード、CLI、パス、インラインプローズではすべて小文字の quorum を使用します。大文字の Quorum は見出しとエージェントテーブルに出現します。
これは汎用ベンチマークスイートではありません。ワークフロー準拠(スキルトリガー、ワークツリー動作、サブエージェント連携、検証反射、レビューの質、コスト形成パターン)を評価するための評価ラボです。
quorum には、2 つの非常に異なる実行モードがあります。
biome、tsc、bun test を実行します。モデル API を呼び出さず、エージェント CLI を起動しません。パブリック CI は、静的/ユニット側に留まらなければなりません。API キー、ライブの quorum run … 呼び出し、または危険モードのエージェント起動をパブリック CI に追加しないでください。
ライブ評価は、試験対象のコーディングエージェントを広範な実行権限で実行します。
--dangerously-skip-permissions を使用します。--dangerously-bypass-approvals-and-sandbox を使用します。--dangerously-skip-permissions を使用し、agy のローカルブラウザ/キーリング認証に依存します。--skip-trust --approval-mode=yolo を使用します。API キー認証がデフォルトで、信頼されたローカル実行向けのオプトイン OAuth 認証もあります。--yolo を使用します。--dangerously-skip-permissions を使用します。--allow-all を使用します。quorum は、各コーディングエージェントの HOME(および XDG ベースディレクトリと TMPDIR)を、<run>/home にある使い捨ての実行ごとのホームに固定します。ランチャーは、src/agents/home-env.ts(xdgHomeEnv、単一の信頼情報源)で構築された $QUORUM_HOME_ENV トークンをスプライスします。各エージェントの設定ディレクトリはそのホーム以下にまとめられます(Claude は .claude、Codex は .codex、Gemini は .、OpenCode は .、Antigravity は .、Copilot は .copilot、Kimi は .kimi-code、Pi は .pi/agent)。そのため、コーディングエージェントは自身の $HOME デフォルトを介して設定を見つけ、ホストの実際の 、、、、、、、その他のホーム相対の状態、インストール済みプラグイン、以前のセッションを見ることはありません。プロビジョニングでは、起動前にその使い捨てホームに設定と、各エージェントが必要とするホストの OAuth 認証情報をシードするため、実行時のログインは不要です。Copilot はさらに、隔離されたホームの下にローカルの Superpowers プラグインをステージングし、許可リスト化された外部環境を使用し、実行ディレクトリ内に chmod 0600 の に秘密を書き込みます。これにより爆発半径は狭まりますが、サンドボックスではありません。OpenCode と Copilot のランチャーはさらに許可リスト化された環境を使用しますが、ライブのコーディングエージェントは依然として広範なファイルシステムとコマンド実行権限で実行されます。
ライブ評価は、信頼されたローカル環境からのみ実行してください。
results/、生のセッションログ、セッション状態/ツール呼び出しアーティファクト、Gauntlet エージェントへの入力を機密として扱います。静的ゲートをインストールして実行します。```bash bun install bun run check bun run quorum check
コンテナ外でローカルまたは緊急時シナリオを1つ実行してください:```bash
export SUPERPOWERS_ROOT=/path/to/superpowers
export ANTHROPIC_API_KEY=...
bun run quorum run scenarios/triggering-writing-plans --coding-agent claude
bun run quorum show <run-dir>
The Gauntlet-Agent(QAドライバ)は、デフォルトでは ANTHROPIC_API_KEY を使用してAnthropicに認証します。代わりにログイン済みのClaudeサブスクリプションから駆動するには、環境(例:.env)に CLAUDE_CODE_OAUTH_TOKEN(claude setup-token から取得)を設定します。ハーネスはこれを渡し、gauntletはAPIキーよりもそれを優先します。注意:サブスクリプションにはインタラクティブ向けの使用制限があります。高並行の run-all バッチはこれに達する可能性があるため、APIキーの方が高負荷に適しています。
エージェント名は claude, codex, antigravity, gemini, kimi、opencode, pi, copilot です。すべてのシナリオがすべてのエージェントに対して有効というわけではありません。
破壊的変更(認証軸): claude-haiku と claude-sonnet は独立したエージェント名ではなくなりました。ClaudeハーネスをSonnetまたはHaikuに対して実行するには:```bash
bun run quorum run scenarios/ --coding-agent claude --credential sonnet
bun run quorum run scenarios/ --coding-agent claude --credential haiku
`claude` エージェントのデフォルト認証情報は `opus` です。
## 共有評価アプライアンス
共有リモートライブ評価は、信頼されたアプライアンスホストから実行されるように設計されており、1つの特権認証情報バンドル、厳密なリポジトリ/参照の出所、ホストロック、および復元可能なジョブレコードを持ちます。エージェントは、設定されたホスト上にアプライアンスヘルパーが存在する場合、それを使用する必要があります。```bash
evals-appliance doctor --json
evals-appliance prepare --json --superpowers-ref <branch-tag-or-sha>
evals-appliance run-all --json --detach \
--superpowers-ref <branch-tag-or-sha> \
-- --tier sentinel \
--coding-agents claude,codex,kimi \
--jobs 4
evals-appliance status --json <job-id>
evals-appliance show --json <job-id>
evals-appliance costs --json <job-id>
evals-appliance cancel --json <job-id>
対象インターフェースと運用ルールは、docs/appliance-runbook.md に記載されており、docs/superpowers/specs/2026-06-18-shared-eval-appliance-design.md によって補完されます。
doctor は読み取り専用です。prepare は、ライブジョブがアクティブな間は refs を変更せず、lock_busy を返します。
ホストアクセスとプロバイダ固有の緊急時対応手順は、この公開リポジトリには意図的に含まれていません。詳細はプライベートな運用ランブックを参照してください。
生の bun run quorum ... および scripts/evals-container exec quorum ... は、共有ライブ評価のためのローカルまたは信頼できる緊急時対応ワークフローとして残ります。
Docker ランタイムは、実際のスイート実行のための主要なレシピです。これにより、quorum がリッチな Ubuntu ワークスペースコンテナ内で実行されている間、evals チェックアウト、テスト対象の Superpowers チェックアウト、認証情報、認証ソース、およびすべての実行アーティファクトがホスト上に保持されます。
.env.container を作成するか、明示的な env ファイルを up に渡します:```dotenv
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
OPENROUTER_API_KEY=... # Pi default: OpenRouter GLM 5.2
GEMINI_API_KEY=... # or GEMINI_AUTH_TYPE=oauth-personal
KIMI_MODEL_API_KEY=... # unless using mounted Kimi OAuth
PI_PROVIDER=... # only for raw/custom Pi env auth outside the default credential
PI_MODEL=...
PI_API_KEY=...
COPILOT_GITHUB_TOKEN=...
次に、コンテナをビルド、起動、検証します:```bash
scripts/evals-container build
scripts/evals-container down || true
scripts/evals-container --env-file .env.container up
scripts/evals-container exec evals-tool-versions
scripts/evals-container exec quorum check
ラッパーは、この evals チェックアウトを /workspace/evals、親の Superpowers チェックアウトを /workspace/superpowers、ホストの results/ を /workspace/evals/results にマウントします。デフォルトの親パスがテスト対象システムでない場合は、--superpowers-root <dir> で Superpowers チェックアウトをオーバーライドします。
イメージビルドにはローカルの Gauntlet チェックアウトが必要です。ラッパーは GAUNTLET_ROOT または Bun グローバルの bun link インストールからそれを検出します。明示的に選択するには build で --gauntlet-root <dir> を使用します。
認証情報は読み取り専用でマウントされます。デフォルトでは、up は最初に .env.container、次に .env を使用し、最初に見つかったものを /run/evals/credentials.env にマウントします。明示的に選択するには up の前に --env-file <file> を指定します。ラッパーはホスト環境をそのまま渡さず、コンテナ内の quorum シムのみが dotenv ファイルを参照するため、scripts/evals-container exec bash ... は自動的にライブ評価認証情報を受け取りません。既存のコンテナで env-file マウントを変更する前に down を使用してください。
OAuth/ファイル認証ソースも読み取り専用です。既存の ~/.codex、~/.gemini、~/.kimi-code、~/.pi ディレクトリは /auth/codex、/auth/gemini、/auth/kimi-code、/auth/pi にマウントされます。ソースをオーバーライドするには、--auth codex=<dir>、--auth gemini=<dir>、--auth kimi=<dir>、--auth pi=<dir> を使用します。
sentinel スイートから始めてください:```bash
scripts/evals-container exec quorum run-all
--tier sentinel
--coding-agents claude,codex,kimi
--jobs 4
for agent in gemini opencode pi copilot; do
scripts/evals-container exec quorum run-all
--tier sentinel
--coding-agents "$agent"
--jobs 1
done
`--tier sentinel` なしで同じコマンドを実行すると、完全なレディスイートが実行されます。
`run-all` は各バッチを `results/batches/<batch-id>/` に書き込み、各実行を `results/<scenario>-<agent>-<os>-<timestamp>-<nonce>/` に書き込みます。バッチをレンダリングするには:```bash
scripts/evals-container exec quorum show <batch-id>
run-all は定期的な生存確認ハートビートを出力します
(⋯ … · running N/jobs · done D · queued Q · [agent:scenario, …]); 調整するには
--heartbeat-seconds <n> を使用します(0 で無効)。バッチの中断 — Ctrl-C、または
exec セッションの終了 — は正常に停止します:キューはキャンセルされ、実行中の
ジョブには SIGINT が送信され(停止として記録されます)、バッチフッターは依然として
書き込まれるため、finished_at が null のままになることはありません。
コンテナランタイムは、Docker ソケットをマウントせず、ダッシュボードポートを公開せず、
デスクトップ IDE も含みません。イメージには Antigravity のデスクトップ agy インストーラは含まれていません;
ヘッドレスインストールパスができるまでは、ホスト側で Antigravity を実行してください。```bash
bun run quorum run-all --coding-agents antigravity --jobs 1
グループ化された全エージェントホストスイープ、エージェントごとの認証情報、認証マウントの詳細、およびトラブルシューティングについては、[docs/coding-agent-care-and-feeding.md](https://github.com/prime-radiant-inc/superpowers-evals/blob/HEAD/docs/coding-agent-care-and-feeding.md) を参照してください。
## Windows Runtime
Windows 11 での評価には、`--os windows` を使用します (Linux+KVM ホストのみ):```bash
bun run quorum run scenarios/<name> --coding-agent claude --os windows
セットアップとデプロイについては docs/windows/eval-runtime.md を参照してください。
アクターを正しく区別してください。混同することは、トリアージで最もよくある誤りです。 これらの名前は、ドキュメント、CLI出力、コード、ファイル名、コミットメッセージなど、あらゆる場所で使用されています。
1回の実行には2つのLLMが関与します。Gauntlet-Agent(QAテスター)とCoding-Agent(対象)です。別々のモデル、別々のログ、別々のトークンコスト。
評価の次元は (scenario, coding-agent, credential, os) です。リポジトリルートの credentials.yaml は名前付き認証情報を定義します。各エントリは、モデル、ワイヤプロトコル(api:openai-chat, openai-responses, anthropic, または gemini)、デフォルト以外のエンドポイント用のオプションの base_url、認証タイプ(api-key, subscription, または oauth)、オプションの api_key_env、提供するランタイムファミリー(harnesses)、オプションのスケジューラオーバーライド(max_concurrency, launch_spacing_seconds)、および compat ブロック(, )を宣言します。
各エージェントYAMLは default_credential を宣言します。実行時にオーバーライド可能:```bash
bun run quorum run scenarios/ --coding-agent claude --credential sonnet
bun run quorum run-all --coding-agents claude,opencode --credentials sonnet,haiku,opencode_gpt5 --jobs 4
`quorum check` は `credentials.yaml` と各エージェントの `default_credential` を検証します。
スケジューラは、その同時実行制限とレート制限ラッチを、認証情報の **limiterKey** で鍵付けします — 設定されている場合は認証情報の `base_url`、それ以外の場合は認証情報名とその `api` を連結したものです(例:`https://…/v1|openai-chat`、または `base_url` を持たないネイティブ認証情報では `opus|anthropic`)。同じ limiterKey を共有するセルは、1つの上限と1つのレート制限ラッチを共有します。いずれかのセルでレート制限応答が発生すると、そのエンドポイントに対してキューに入れられている残りのすべてのセルが直ちにスキップされます。
標準の名前付き認証情報(`credentials.yaml` を参照):`opus`、`sonnet`、`haiku`(Claude ハーネス)、`codex_sub`(Codex サブスクリプション)、`kimi_default`、`openrouter_glm_5_2`(Pi デフォルト)、`pi_default`(ネイティブ Pi OAuth オプトイン)、`opencode_gpt5`、`gemini_default`、`serf_default`、`glm_5_2_chat`、`glm_5_2_responses`、`ollama_local`。
### 外部 Serf キャンペーン
短期間の Serf モデル/プロバイダキャンペーンは、リポジトリの正規の `credentials.yaml` ではなく、外部の認証情報ファイルを使用します。それを `quorum run`、`quorum run-all`、または `quorum check` に `--credentials-file` で明示的に渡します。実際のキャンペーン YAML とすべての生の実行アーティファクトは Git の外部に保管してください。YAML にはルーティングラベルと選択された API キーの環境変数名が含まれますが、キーの値は決して含まれません。
各キャンペーンプリセットは、正確に1つのモデルと1つのプロバイダを固定し、フォールバックを無効にし、プロンプト、サンプリング、推論、ツール、トークン制限のオーバーライドを含めてはなりません。その専用キーは、信頼できるランタイム認証情報バンドルを通じて提供します。キーはキャンペーンの意図したデータポリシーを強制し、キャンペーンの支出上限を持ち、共有容量のキャンペーンの場合は BYOK バインディングがない必要があります。BYOK 比較は、別のキーと候補ファイルを持つ別のキャンペーンです。
ディスパッチの前に、`run-all` は外部ファイルを一度解析し、その正規スナップショットを `results/batches/<batch-id>/credentials.snapshot.yaml` に書き込みます。すべての子プロセスはその不変のスナップショットを受け取ります。直接の `quorum run` は、同じ正規スナップショットをその実行ディレクトリに書き込みます。バッチ開始後にソース YAML を編集しても、後続のセルを変更することはできません。スナップショットには、スキーマで認識されたルーティングメタデータと環境変数名が含まれますが、秘密の値は含まれません。ただし、これらは機密性の高い実行アーティファクトの一部として残ります。
まずエージェントに依存しないスモークテストを実行し、その後、最終的なスモークテストの判定が `pass` である認証情報に対してのみ、高コストなシナリオを実行します。```bash
quorum run-all \
--scenarios 00-quorum-smoke-hello-world \
--include-drafts \
--coding-agents serf \
--credentials-file /secure/campaign.yaml \
--credentials serf_example_a \
--jobs 1
quorum run-all \
--scenarios serf-builder-fractals \
--coding-agents serf \
--credentials-file /secure/campaign.yaml \
--credentials serf_example_a \
--jobs 1
--jobs 1 はシーケンシャルなレイテンシ/コストのベースラインです。1つのマトリックスセルは1回の有料試行です。キャンペーンスケジューラは自動的にセルを再試行または繰り返しません。ラベル付きの比較を quorum costs <batch-id> でレンダリングします。最終的な pass 行のみが比較可能とマークされ、fail と indeterminate は表示されますがランク付けされず、欠落した測定値はゼロではなく欠落としてレンダリングされます。Charged、estimated、delta の列は Coding-Agent のコストです。既存の --with-gauntlet 列は別の Gauntlet-Agent ハーネスオーバーヘッドです。
ライブアクセプタンスは、信頼されたメンテナによる手作業であり、公開CIの自動化ではありません:
--jobs 1 で実行します。verdict.json, trajectory.json,
openrouter-generations.json, coding-agent-token-usage.json および
quorum costs <batch-id> を検査します。モデル、プロバイダ、プリセットバージョン、BYOKが
falseであること、トークン/キャッシュバケット、期間、課金コスト、見積もり、デルタ、および
量子化とカタログ日を含む候補ラベルを確認します。--jobs 1 で実行します。最終的な pass、すべての決定論的チェック、コミットされたメインチェックアウト配信、および完全な比較行が必要です。--jobs 2 で実行します。キー、生成、ラベル、またはエコノミクスの相互汚染がない明確な帰属を確認します。リリースレビューされ、サニタイズされた結論のみを、日付入りの docs/experiments/ ノートに公開し、成功だけでなく失敗も記録します。外部のキャンペーンYAMLと生のアーティファクトはGitの外に置きます。
bun run quorum list bun run quorum new my-new-scenario bun run quorum check my-new-scenario bun run quorum run scenarios/ --coding-agent bun run quorum run scenarios/ --coding-agent claude --credential sonnet bun run quorum run-all --coding-agents claude,codex --jobs 2 bun run quorum run-all --coding-agents claude --credentials sonnet,haiku --jobs 2 bun run quorum show bun run quorum costs
引数なしの`quorum check`は、すべてのシナリオと`credentials.yaml`を検証します。
`run-all`は、各シナリオの`# coding-agents:`ディレクティブでフィルタリングされた、選択されたすべてのCoding-Agentに対して、含まれているすべてのシナリオを実行します。
## 判定とアーティファクト
quorumは3値の判定を生成します:
- `pass` - Gauntlet-Agentが合格し、すべてのポストチェックが合格しました。
- `fail` - Gauntlet-Agentが不合格、またはポストチェックが不合格になりました。
- `indeterminate` - セットアップ/プリチェック/キャプチャ/quorumの失敗、Gauntlet `investigate`、またはトレースチェックが存在する場合の空のトレース。
終了コードは`pass`が0、`fail`が1、`indeterminate`が2です。
各実行は`results/`の下に1つのディレクトリを生成します:```text
results/<scenario>-<coding-agent>-<os>-<timestamp>-<nonce>/
|-- verdict.json composed result; start here
|-- gauntlet-agent/ Gauntlet-Agent evidence
|-- coding-agent-workdir/ files the Coding-Agent produced
|-- home/ throwaway Coding-Agent HOME
|-- trajectory.json normalized ATIF trace
`-- coding-agent-token-usage.json Coding-Agent token cost, when priced
results/ は、実行アーティファクトに機密性の高いトランスクリプト、認証情報、ツール呼び出し、ファイルシステムの状態が含まれる可能性があるため、gitignore されています。
これらは CI および日常的な PR で期待されるチェックです。```bash bun run check # biome ci . && tsc --noEmit && bun test — the full gate bun run quorum check # validate every scenario directory
`bun run check` は単一のゲートです(Biomeのlint/format + 完全厳格な `tsc` + `bun test`)。個別のステップは `bun run lint`, `bun run typecheck`, `bun test` です。
## アーキテクチャ
quorumは**Bun上のTypeScript**です。コンソールは `bun run quorum <cmd>`([commander](https://github.com/tj/commander.js) CLI、`src/cli/index.ts` にあり、`quorum` バイナリとしても公開されています)。ゲートは `bun run check`(Biome + 完全厳格な `tsc` + `bun test`)です。
プロセスとファイルの境界を越えるデータ構造 — `verdict.json`、バッチインデックス、経済性、Gauntletの結果、エージェントYAML — は `src/contracts/` にある **zodスキーマ** であり、すべての境界で検証されるため、不正な外部ファイルはverdictを破損させる代わりに大きなエラーを出して失敗します。`cli/` 層はコマンドを解析し、`runner/` パイプライン(1シナリオ × 1コーディングエージェント)または `run-all/`(マトリックス)にディスパッチします。コーディングエージェントごとの違いは、エージェント名でキー付けされた2つの並行ファンアウトに存在します:`agents/` は使い捨ての実行ごとの `$HOME`(`<run>/home`)の下にエージェントの設定をシードし、`normalize/` はそのエージェントのセッションログを統一されたツールコールトレースに変換します。ライブなエージェントCLI呼び出しやその他の非隔離サブプロセスは `agents/command-runner.ts` のシームを通るため、ユニットスイートはフェイクを注入し、実際のCLIを起動しません。`scheduler/` は `run-all/` の下の共有並行エンジンです。ダッシュボードは別の読み取り専用パッケージで、`results/` と `grid-manifest.json` をスキャンします。`env.ts` は `process.env` を読み取る唯一のモジュールです。```text
src/
cli/ commander CLI: run, list, new, check, show, costs, run-all, grid-manifest
index.ts command wiring + run / costs / run-all / grid-manifest actions
render.ts verdict renderer for triage (quorum show)
render-batch.ts batch-matrix renderer (quorum show <batch>)
resolve-target.ts run/batch target resolution; scenario.ts scenario loading
runner/ per-run orchestration (one scenario × one Coding-Agent)
index.ts setup → pre-checks → gauntlet drive → capture → post-checks → compose
context.ts populate the Gauntlet-Agent context dir (HOWTO + launch-agent shim)
phase.ts phase.json (setup/agent/checks) for the dashboard
stopped.ts SIGINT → stopped (indeterminate) verdict; errors.ts staged run-error stages
agents/ per-Coding-Agent provisioning (resolveAgent dispatch)
index.ts agent registry + dispatch (incl. the inline Claude/Default adapters)
command-runner.ts injectable subprocess seam (live CLIs faked in tests)
<agent>.ts codex/gemini/kimi/opencode/pi/copilot/antigravity adapters
normalize/ session-log → normalized tool-call trace, one module per dialect
capture/ session-log snapshot/diff + tool-call capture + token usage; cwd-filter
obol/ obol cost estimation (session-log + gauntlet sidecar)
economics.ts token-cost composition → coding-agent-token-usage.json
composer.ts three-valued verdict from the gauntlet + checks layers
checks/ sources prelude.sh + checks.sh, runs pre()/post(), collects check records
prelude.sh bare-verb DSL: defines each check verb as a bash function that
delegates to the TS dispatchers (no bin/ shims, no PATH prepend)
scheduler/ central concurrency dispatcher (one global slot pool, per-harness limits + spacing)
run-all/ scenario × Coding-Agent matrix over the scheduler; batch index
setup-helpers/ scenario fixture builders + the `setup-helpers` CLI (dispatch registry)
contracts/ zod schemas at the JSON boundaries (verdict, batch, economics, gauntlet, agent-config)
scaffold.ts `quorum new` / `quorum check`
setup-step.ts runs scenario setup.sh (sources prelude.sh via BASH_ENV so bare verbs resolve)
story-meta.ts story.md frontmatter (quorum_max_time, quorum_tier, status)
env.ts the single process.env boundary
paths.ts repo root, UTC stamps, nonces
invariant.ts assertNever exhaustiveness guard for closed unions
check/ typed check verbs: fs-verbs.ts (file/git/env + bootstrap),
dispatch.ts (table + `not`), transcript-dispatch.ts, record.ts (sole emitter)
cli/check-tool.ts the dispatcher behind every check verb function (file-exists,
file-contains, command-succeeds, git-*, assert-checkout-clean,
requires-tool, not, files-exist, the *-installed/hook/extension
checks); check-transcript.ts and setup-helpers/cli.ts are the
other two dispatchers the prelude delegates to
cli/list-check-verbs.ts prints the FS_VERBS verb set the prelude loops over (drift-proof)
coding-agents/ per-Coding-Agent material:
<name>.yaml CLI config
<name>-context/ HOWTO prose and launchers for the Gauntlet-Agent
scenarios/ scenarios (one directory each)
fixtures/ shared static fixture repos (e.g. template-repo/, sdd-*/)
test/ bun test suite
docs/ design notes, specs, plans, testing protocols, baselines
packages/dashboard/ read-only web matrix UI: scan/view, typed HTML templates, SSE bus, Bun.serve
合格しない実行のトリアージは、以下から始まります。```bash bun run quorum show []
Then use [docs/superpowers/skills/triaging-a-failing-eval.md](https://github.com/prime-radiant-inc/superpowers-evals/blob/HEAD/docs/superpowers/skills/triaging-a-failing-eval.md)
for the attribution atlas. For agent-specific auth, provisioning, and capture
checks, use [docs/coding-agent-care-and-feeding.md](https://github.com/prime-radiant-inc/superpowers-evals/blob/HEAD/docs/coding-agent-care-and-feeding.md).
For the current known-good baseline, see [docs/baselines/](https://github.com/prime-radiant-inc/superpowers-evals/blob/HEAD/docs/baselines/).
## コントリビューションルール
このリポジトリは `superpowers` の品質基準を継承しています。
- 1つのPRにつき1つの問題。
- 生成された実行アーティファクトやシークレットはコミットしないでください。
- 公開CIにライブ評価を追加しないでください。
- PRテンプレートを使用し、Coding-Agent設定、シェル実行、セットアップヘルパー、チェックツール、またはGauntlet-Agent入力を変更する際のセキュリティ/評価ラボのリスクを説明してください。
- 動作形成評価方法論の変更には、単なる散文ではなく証拠が必要です。
## 親サブモジュールのバンプ
`superpowers-evals` は `superpowers` によって `evals` サブモジュールとして使用されています。
ここで `main` にPRがマージされた後、親の `superpowers` リポジトリに対して `dev` をターゲットとしたフォローアップPRを開き、`evals` サブモジュールポインタをマージされた `superpowers-evals` コミットにバンプしてください。
その親サブモジュールバンプPRが存在するまで、`superpowers-evals` のマージが完全に伝播したとは見なさないでください。
---
セキュリティ報告 → [SECURITY.md](https://github.com/prime-radiant-inc/superpowers-evals/blob/HEAD/SECURITY.md)。
~/.claude~/.codex~/.gemini~/.kimi-code~/.pi~/.copilot~/.config.copilot-env| アクター | 説明 | 所在 / ファイル |
|---|
| Gauntlet | 汎用QAフレームワーク。gauntlet CLI。ブラックボックステスター。 | リポジトリ: github.com/prime-radiant-inc/gauntlet; PATH上で gauntlet として利用可能(bun link または GAUNTLET_ROOT 経由) |
| Gauntlet-Agent | Gauntlet内部のLLMで、Coding-Agentを駆動し、ストーリーのACに対して自己評価を行います。 | モデル例: claude-sonnet-4-6; イベントストリーム → <run>/gauntlet-agent/results/<runId>/run.jsonl; 判定 → result.{json,md} |
| Coding-Agent | テスト対象エージェント(SUT)。インスタンス: Claude, Codex, Antigravity, Gemini, Kimi, OpenCode, Pi, Copilot。 | 設定とセッションログは使い捨ての $HOME(<run>/home/…)以下。書き込むファイル → <run>/coding-agent-workdir/ |
| Quorum | TypeScript/Bun ラッパー。セットアップ、Coding-Agentの適応、決定論的チェック、最終判定を担当。 | リポジトリ: superpowers-evals/src/; <run>/verdict.json |
thinking_formatmax_tokens_field