Wollipogの使用
キャンペーンの権限については、Campaign Authority Preflightを参照してください。 このドキュメントは、有効なモード/境界、正確な決定権限者、未解決のヒューマンゲート、エビデンスアップロード/プロバイダ開示をカバーしています。キャンペーンを許可したり、インストール済みポリシーを変更したりするものではありません。
wollipog コマンドが PATH 上にある場合に使用します。Wollipogがホストするセッションは、WOLLIPOG_CONTROL_PLANE_URL、WOLLIPOG_SESSION_ID、および保護されたトークンファイルを自動的に提供します。そのトークンを印刷、コピー、またはコマンドラインで渡さないでください。
コアコマンド:
wollipog session list --json
wollipog session get <session-id> --json
wollipog session events <session-id> [--after <seq> [--event-epoch <n>]] [--limit <n>] --json
wollipog session capabilities --runner <id> --agent <id> [--offset <n>] [--limit <n>] [--include-hidden] --json
wollipog session capabilities --runner <id> --agent <id> --model <id> --json
wollipog session create --runner <id> --agent <id> --workspace <id> --prompt <task> [--model <id>] [--effort <level>] --json
wollipog session prompt <session-id> <message> --json
wollipog session wait <session-id> --for input_required,completed,failed,stopped --json
wollipog session stop <session-id> --json
wollipog session unarchive <session-id> --json
wollipog session stop-job <session-id> <job-id> --json
wollipog session release-hold <session-id> <hold-id> --json
wollipog pr wait <number|owner/name#number|host/group/project!iid|url> [--head <sha>] [--timeout <ms>] --json
wollipog pr closures <number|owner/name#number|url> [--intended <issue>]... --json
wollipog pr closures --file <description.md> [--repo <owner/name>] [--intended <issue>]... --json
wollipog review session run --repo <owner/name|gitlab-host/group/project> --pr <number> --head <sha> --brief-file <path> [--full-reason <text>] --json
wollipog review session get <review-session-id> --json
wollipog artifact attach --file <absolute-path> [--name <display-name>] --json
wollipog automation request --proposal '<json>' --json
wollipog automation get <occurrence-id> --json
wollipog automation execute <occurrence-id> --digest <resource-digest> --json
wollipog location-switch request --request '<json>' --json
wollipog location-switch get <occurrence-id> --json
wollipog location-switch execute <occurrence-id> --digest <resource-digest> --json
wollipog worktree create --branch <name> [--base <ref>] --json
wollipog worktree attach --path <absolute-path> --json
wollipog worktree select --path <absolute-path> --json
wollipog worktree discard --path <absolute-path> --json
wollipog worktree delete-refs [--path <absolute-path>] --ref <ref>=<object-id> [--ref ...] --json
wollipog decision request --request-id <id> --resource-key <key> --snapshot '<json>' --json
wollipog decision get <occurrence-id> [--session <descendant-id>] --json
wollipog decision list [--session <descendant-id>] [--limit <1-100>] [--cursor <occurrence-id>] --json
wollipog decision consume <occurrence-id> --snapshot '<json>' [--action '<json>'] --json
wollipog decision reconcile <occurrence-id> --snapshot '<json>' --json
wollipog decision withdraw <occurrence-id> --reason <text> [--session <child-id>] --json
確認済みで完全にアーカイブされたキャンペーンチャイルドの拒否されたダーティワークツリーに対しては、その制御オーケストレーターのみが session unarchive を使用できます(制御プレーンとランナー上のプロトコル266以降)。これにより、再起動やファイルの削除を行わずに可視性が復元されます。その後、チャイルドを再起動して作業の保存とクリーンアップを依頼し、新しい最終レポートを確認してから再度アーカイブします。Retirementは依然としてダーティ、未プッシュ、未配信の作業を拒否します。古いランナーは明示的にリカバリを拒否します。スクラッチレポートは管理対象外のワークツリーの外部に保管してください。
--after なしの場合、session events は最新の --limit 件のイベントを返します(デフォルト30、最大100)。長い範囲(例えば、チャイルドが既知の時点以降に行ったすべて)を読み取るには、前方にページングします。--after 0 から開始するか、既に読み取ったseqとその eventEpoch を一緒に使用して開始し、前のページの lastSeq と eventEpoch を --after <lastSeq> --event-epoch <eventEpoch> として hasMore が false になるまで繰り返します。historyIncomplete は、制御プレーンがログ全体をまだロードしていないことを意味するため、後続のイベントが存在する可能性があります。返された lastSeq を保持し、後で再試行し、そのページを終わりと見なさないでください。イベント履歴が置き換えられたために呼び出しが失敗した場合は、古いイベントエポックなしで --after 0 から再開してください。各イベントは最大400文字に制限された1行のサマリーであるため、長いメッセージは切り捨てられます。MCPの get_session_events ツールは同じ after、limit、eventEpoch を受け取ります。
すべてのイベント読み取りは、履歴がハイドレートされている間はページングされたままです。短いまたは空の不完全なページはログの終わりではありません。--after なしの場合、不完全な結果は最新のキャッシュされたウィンドウであるため、ハイドレーションが追いついたら --after なしで再試行して真の最新ウィンドウを取得してください。GET /api/sessions/:id/events の直接HTTP読み取りは、limit が省略された場合、デフォルトで200イベントになります。nextAfter と eventEpoch を使用して続行し、1つのレスポンスをログ全体として扱わないでください。プロトコル222ランナーは、ハイドレーション全体を通じて境界リーダーを使用します。デフォルトページを提供する制御プレーンにアップグレードする前に、古いCLI/MCPインストールを更新してください。古いリーダーの全ログフォールバックは、境界のある最初のページを最新のウィンドウと誤認する可能性があります。識別可能な古いエージェントセッションフォールバックは、ランナーアップグレードガイダンスとともに失敗します。ペアリングされたデバイスCLI呼び出しも同じアップグレード優先の移行が必要です。これは、それらの人間の認証情報がリーダーバージョンを識別しないためです。
session stop-job(MCP stop_background_job)は、チャイルドセッションの未完了のバックグラウンドジョブをそのIDで終了します。このIDは session get が unfinishedBackgroundJobs としてリストします。条件が決して発火しないモニターなどの決して終了しないジョブが、完了した兄弟の結果やキューに入れられたハンドオフを待たせている場合に使用します。そのジョブのみが終了し、強制終了として記録されます。チャイルドの会話、他のジョブ、およびキューに入れられたプロンプトは保持されます。プロバイダが時間内に停止を確認しない場合、ジョブは実行中のままになります。後で終了した場合でも、あなたの停止として記録されるため、名前を残すためにリクエストを繰り返さないでください。session stop と session restart は代わりにすべてのジョブを終了します。stopはキューに入れられたプロンプトを破棄し、restartはそれらを保持して再開後に実行します。現在のランナーは、確立されたClaude Code、Codex App Server、およびPiの会話を再開します。一度も実行されていないセッションは新しく開始されます。セッション機能 agentCapabilities.restartResumesConversation は、次のRestartが再開するかどうかを報告します。古いランナーはこれを省略し、新しく開始する可能性があるため、不在は継続性の保証を提供しません。stop-job を使用できるのは、セッションの所有者とその制御オーケストレーターのみです。チャイルドのキューに入れられたハンドオフホールドが canRelease を報告する場合、session release-hold(MCP release_queue_hold)を session get からのホールドIDとともに使用すると、すべての未完了ジョブを一度に終了し、それぞれをあなたが強制終了したものとして記録し、再起動せずにハンドオフとキューに入れられたプロンプトを順番に実行します。これは stop-job と同じ権限を必要とし、ホールドがあなたが読み取った後に変更された場合は拒否されます。
オーケストレーターキャンペーンは、ポリシー境界として管理ツールを使用する必要があり、プロンプトから権限を推測してはいけません。キャンペーン開始時および人間がポリシーを変更した後に get_campaign を呼び出します。これは、有効な動作、型指定された決定権限者、リビジョン、アドミッションおよびガードレール制限、チャイルドおよびフォローアップ数、UIレビューの互換性、および waiting_human、active、blocked、verified_complete、complete_with_handoffs のいずれかを返しますが、資格情報は返しません。その behavior は、次のチャイルド作成が強制するChild Harness、Child Model、Child Effort、Follow-Ups、およびCompletionを保持します。キャンペーンの実行中に人がこれらを変更できます。変更された値は active_campaign ソースとより高い behavior.revision を持ちます。これらはその後作成されるチャイルドに適用され、既存のチャイルドは独自の設定を維持し、エージェント(オーケストレーターを含む)はこれらを変更できません。
オーケストレーターの役割はデフォルトで 実装の委任 です。計画、委任、監視、レビューを行います。複数のIssueをカバーする通常のリクエストは、人間が明示的にオーケストレーションまたは委任を要求しない限り、キャンペーンやチャイルドの作成を許可しません。親は許可された計画アーティファクトを直接維持できます。人間が明示的に親に実装を依頼した場合は、まず開いているチャイルド割り当てとプルリクエストを重複チェックし、次に親用の専用のWollipogワークツリーを作成して選択し、リポジトリの通常のテスト、レビュー、UIエビデンス、マージ、およびクリーンアップワークフローに従ってください。プロバイダの権限とガバナンスは引き続き適用されます。
厳格なプロジェクト分離 は、人間が制御する別の実行設定です。新しいセッションはデフォルトで無効になっています。有効な場合、プロジェクトの場所はOSで強制された読み取り専用になり、親はセッションプライベートなスクラッチでのみ動作し、親の実装とセルフワークツリー操作は拒否されます。必要な bwrap、Seatbelt、または監査済みプロバイダ境界は、起動前にチェックされます。実行ポリシーフィールドのない既存のオーケストレーターセッションは厳格として扱われ、自律的に緩和することはできません。
すべてのチャイルド作成は、サーバーから派生したキャンペーンポリシーブロックを初期割り当てで受け取ります。自動モデルまたは労力の場合は、get_agent_capabilities を使用し、選択したペアを同じ create_session 呼び出しで送信します。固定値はサーバーで強制されます。このブロックは包括的な承認ではありません。チャイルドは、実装に関する質問、PRマージ、マージ済みブランチの削除、フォローアップの公開、UIエビデンスについて、request_workflow_decision、get_workflow_decision、および consume_workflow_decision を使用する必要があります。これらのMCPツールが利用できない場合は、上記の同等の自己スコープの wollipog decision request、get、および consume コマンドを使用します。正確なリソーススナップショットとオプションのPRマージアクションはJSONオブジェクトです。CLIは request、consume、および reconcile に対して --session を拒否し、解決操作を公開しません。読み取り専用の get_workflow_decision はオプションの sessionId を受け入れます。list_workflow_decisions は、オプションの sessionId、limit、および cursor を使用して、保留中および承認済みの決定を列挙します。ターゲットを省略すると自身を読み取ります。オーケストレーターはアクセス可能な子孫をターゲットにでき、両方のセッションへのアクセスが必要です。正確な読み取りには終端状態が含まれます。404は消費を証明しません。nextCursor がなくなるまで従います。ページは現在の状態を反映するため、ページング中に決定が解決されると消える可能性があります。結果が重要な場合は、既知の発生を正確に読み取ってください。子孫の読み取りとリストには、制御プレーンプロトコルv214が必要です。ツールのない古いランナーは、更新されたCLIまたは読み取り専用HTTPエンドポイント GET /api/sessions/:id/workflow-decisions/:occurrenceId および GET /api/sessions/:id/workflow-decisions?limit=50&cursor=<occurrence-id> を、トークンがプロビジョニングされている既存のセッション資格情報とともに使用できます。プロバイダ分離セッションはランナーリレーキーのみを保持し、直接HTTP呼び出しを認証できません。ベアラートークンを探すのではなく、ツールのためにランナー/CLIをアップグレードしてください。古い制御プレーンは list_descendant_requests を通じて保留中のリクエストのみを公開します。信頼性の高い子孫状態検査のためにそれらを更新してください。現在の所有者のみが正確な保留中の発生を解決できます。
不要な保留中の人間所有の review_round_extension については、制御オーケストレーターは代わりに、チャイルドの sessionId、正確な occurrenceId、および引き出しを説明しチャイルドの次の指示を与える空でない reason を指定して withdraw_descendant_workflow_decision を呼び出すことができます(制御プレーンv265以降)。これはそのリクエストのみを削除し、オーケストレーターの引き出しを監査し、耐久性のある再開パスを通じて理由を配信し、チャイルドを停止または再起動しません。決定は revoked と withdrawal の来歴で読み取られます。承認を付与せず、消費できません。承認された決定および引き出し用に指定されていないカテゴリは拒否されます。正確な結果には get_workflow_decision を使用します。まだ人が必要とするリクエストはそのまま残ります。
保留中または承認済みの決定が不要になり、消費も武装もされていない場合は、空でない reason を指定して withdraw_workflow_decision(decision withdraw)でそれを撤回します(制御プレーンv269以降)。古いスナップショットで消費して取り消させないでください。sessionId を省略して自分のものを撤回します。制御オーケストレーターは、自分が所有する決定を撤回するために、自分のチャイルドの sessionId を渡すことができます。人間が所有する決定は、リクエスターが撤回するものとします。撤回は何も承認も消費もしません。決定は revoked と読み取られ、撤回したセッションとその理由を指定し、その後は決して消費できず、verify_campaign_child をブロックしなくなります。まだ保留中の決定を待っているチャイルドは理由とともに再開されます。すでに承認を保持しているチャイルドは起こされません。消費された決定、武装された pr_merge(代わりに調整する)、および人間が所有するIssueクローズ、スコープ、フォローアップアドミッション、自動化リクエストは拒否されます。
認証、シークレット、永続的な許可、ガバナンスの変更、予算の増加、ツールのガードレールは人間のみに留められます。別途人間が確立した予算権限により、制限付きの管理ワーカーの予約と割り当てが許可される場合があります。キャンペーン名から推測したり、計測されていないワーカーを使用して会計を回避したりしないでください。停止または再起動は、セッションが消費していないすべての決定を取り消します。再起動後、セッションは取り消された各発生を指定する [Wollipog Session Restart] メッセージを受け取ります。以前の承認に基づいて行動せず、まだ必要なものを再度リクエストしてください。正確な武装されたPRマージコマンドがすでに成功したが、その承認された発生が未消費のままである場合は、その発生の変更されていないリソーススナップショットを使用して reconcile_workflow_decision(または wollipog decision reconcile)を使用します。コマンドを再実行することはありません。Codex App Serverチャイルドの場合、正確に完了したアドミッション、プロバイダコマンド、およびマージされたフォージヘッドを証明します。最初に同じApp Serverセッションを再開します。Claude Codeチャイルドのエンキューは、自動またはフルアクセスモードでは許可レシートを生成しません。