evaluate について
機械、意味、任意の合意形成によるチェックで実行セッションを評価する Ouroboros のスキルです。承認できるのは機械チェックの合格だけで、他の段階は助言を行うか、承認を保留します。
主な機能
- 01Lint、ビルド、テストの機械チェック
- 02受け入れ基準の意味的レビュー
- 03任意の複数モデル合意
- 04バックグラウンド評価ジョブ
- 05承認判断と次の手順の提示
活用シーン
- 01Seed に照らしたコードの確認
- 02受け入れ前のビルドとテストの検証
- 03目標や基準との整合性レビュー
- 04評価不合格の原因調査
MCP 対応
Ouroboros MCP ツールで評価を開始し、ジョブを監視します。Ouroboros MCP サーバーがない場合の代替手順も説明されています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ q00/ ouroboros --skill evaluateインストール後、Claude Code で/evaluateを入力して読み込まれたか確認します。
詳細
/ouroboros:evaluate
3 段階の検証パイプラインで実行セッションを評価します。
/ouroboros:evaluate <session_id> [artifact]
各ステージの権限
- 機械的検証(lint、ビルド、テスト、静的解析、カバレッジ。モデルのコストは発生しません):承認を付与できる唯一のステージです。少なくとも 1 つの設定済みチェックを実行し、すべてに合格する必要があります。
- セマンティック検証(AC への準拠、目標との整合性、逸脱):助言のみを行います。承認を保留してフィードバックを提供できますが、承認を付与することはできません。
- コンセンサス(複数のモデルを使用。不確実な場合、または要求された場合のみ):助言のみを行います。却下すると承認は保留されます。承認を付与したり、ステージ 2 のブロックを解除したりすることはできません。
ステージ 1 のチェックを実行していない場合、結果は acceptance_state: unverified(承認されていない状態)となり、モデルレビューはフィードバックとして添付されます。
手順
MCP ツールの読み込み(遅延スキーマへの対処)
Ouroboros ツールは遅延読み込みされる場合があり、あるターンで読み込んだスキーマが次のターンまでにアンロードされることがあります。各 ouroboros_* 呼び出しの直前に、アクティブなランタイムのツール検出機能でツールを読み込んでください。ouroboros_start_evaluate には "+ouroboros evaluate" を、ouroboros_job_wait、ouroboros_job_status、ouroboros_job_result には "+ouroboros job" を使用します。スキーマが読み込まれていない状態で呼び出すと、「Invalid tool parameters」というエラーが発生します。ツールがすでに呼び出し可能な場合、検出は何も行わず、空の結果が返されることが想定されます。フォールバックは、ツールが実際に利用できない場合にのみ使用してください。
手順
- セッション:指定された
session_idを使用します。指定がない場合は、会話内で直近に実行されたセッション ID を使用します。 - 成果物:ユーザーが指定したファイル(アクティブなランタイムの
inspect_code機能で読み取ります)を使用します。指定がない場合は、直近の実行出力を使用します。不明な場合はask_userで確認します。 2.5. 動作の検証(動作を伴う作業):ステージ 1 ではすでにビルド/テストが実行されているため、ランタイムで操作できる場合は、さらに進めます。差分を推論するのではなく、結果を実行し、実際の効果を確認します(run_shellによるコマンド出力、エンドポイントの応答、レンダリングされた UI など)。可能であればorchestrate_subagentsを使って 1 つの検証用子セッションで行い、子セッションの起動が制限されている場合はインラインで行います。観察した動作に基づいて AC と敵対的ケース(misleading_output、hung_command、stale_state、dirty_worktree、…)を検証します。取得した証拠(コマンド、出力、成果物のパス)をartifactに記録します。ランタイムで操作できない場合は、動作を観察できなかったと伝えます。 - 開始:却下された判定が設定済みの Ralph チェーンを継続できるよう、バックグラウンド評価を開始します。
Tool: ouroboros_start_evaluate Arguments: session_id: <session ID> artifact: <the code/output to evaluate, plus observed-behaviour evidence from 2.5> seed_content: <original seed YAML, if available> acceptance_criterion: <specific AC to check, optional> artifact_type: "code" (or "docs", "config") working_dir: <absolute project root, recommended> trigger_consensus: false (true if user requests Stage 3) auto_evolve: <optional override; omit to use execution.auto_evolve>working_dirはステージ 1 のコマンド実行とステージ 2 のソースの可視性の両方を設定します。判明している場合は、プロジェクトルートの絶対パスを指定します。 - ジョブを監視する:開始結果には、
response.meta.job_observerと末尾の `` content sentinel にオブザーバー契約が含まれています。構造化メタデータがない場合は、sentinel から契約を復元し、次の条件をすべて満たさない限りフェイルクローズします。テキスト末尾に sentinel がちょうど 1 つだけ存在すること、その境界内のペイロードがjob_observerだけをキーとするオブジェクトにデコードされること、その契約が正規 v1 検証に合格すること(サーバーが独自のjob_id、cursor、session_id、execution_id、follow_result_job_keysから構築する v1 契約とフィールドごとに一致すること)、ジョブの識別情報が表示されている開始レシートと一致すること、構造化された契約と異ならないこと。表示された ID から契約を再構築してはいけません。有効な契約がある場合は、そのまま変更せずに、読み取り専用のオブザーバー子セッション 1 つだけに渡します。その指示にはすでにfollow_result_job_keysを通じてchained_ralph_job_idを追跡する処理が含まれているため、メインセッションで同じジョブをポーリングしてはいけません。子セッションがない場合は、次のターンまたは明示的なステータス要求時にouroboros_job_status/ouroboros_job_resultで追いつきます。ユーザーが監視を求めた場合に限り、ouroboros_job_waitでライブに待機します。チェーンされた Ralph ジョブが終了状態になった後にのみ、収束結果を提示します。chained_ralph_skipped: seed_unavailableは Seed が利用できなかったことを意味します。却下判定を維持し、継続は安全のためスキップされたと伝えます。OpenCode プラグインモードで自動進化が無効の場合、プラグインの子セッションが最終的な出力先となり、job_idはNoneです。 - 提示:各ステージの結果、最終的な承認判定、却下された場合はその理由と修正案を提示します。結果に応じて次のアクションを選択します。
- 承認:承認するか、さらに改善するため
ooo evolveを実行します - ステージ 1 で却下され、
code_changes_detected: trueの場合:ビルド/テストの失敗を修正してからooo evaluateを実行するか、自動修正ループとしてooo ralphを実行します - ステージ 1 で却下され、
code_changes_detected: falseの場合:まずooo runを実行してコードを生成します - ステージ 2 で却下された場合:修正を加えて
ooo runを実行するか、ooo evolveを実行します - ステージ 3 で却下された場合:要件を再検討するため
ooo interviewを実行するか、ooo unstuckを実行します acceptance_state: unverified:.ouroboros/mechanical.tomlに実行可能なチェックを追加する(またはouroboros detectを実行する)後、ooo evaluateを実行します。セマンティックレビューはフィードバックであり、判定ではありません
- 承認:承認するか、さらに改善するため
フォールバック(Ouroboros MCP サーバーがない場合)
MCP サーバーが使うプロンプトを使用して、自身が evaluator の役割を担います。$OUROBOROS_AGENTS_DIR/evaluator.md が設定されている場合はそのファイルを使用し、そうでない場合は run_shell で出力したインストール済みパッケージのコピーを使用します。
uvx --isolated --python '>=3.12' --from ouroboros-ai python -c "import importlib.resources as r, sys; print(r.files('ouroboros.agents').joinpath(sys.argv[1]).read_text(encoding='utf-8'))" evaluator.md
それもない場合は、ソースチェックアウト内の src/ouroboros/agents/evaluator.md を使用します。
Seed に照らして定性的な助言として評価します(数値による採点は行わず、Python コアなしで承認権限を行使してはいけません)。
RFC #1392 状態ブレッドクラムフッター
最終回答の末尾は、必ず ◆ <current state> → next: <recommended action> の1行で締めくくってください。利用可能な場合は ouroboros_session_status でライブセッションの状態を取得し、そうでない場合はこのスキルの実際の結果から状態を判断してください。直線的な Step N of M フッターは使わないでください。次のステップが実際の選択肢である場合は、2~3個の選択肢を示してください。