> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# check_governance

> check_governance は AdCP における汎用的な検証ゲートです。オーケストレーターとセラーは、キャンペーンアクションを実行する前にこれを呼び出します。

# check\_governance

<Note>
  **実験的機能。** キャンペーンガバナンス（`sync_plans`、`check_governance`、`report_plan_outcome`、`get_plan_audit_logs`）は、実験的サーフェスとして AdCP 3.0 の一部です — 少なくとも 6 週間の予告をもって 3.x リリース間で変更される可能性があります。これを実装するセラーは `experimental_features` で `governance.campaign` を宣言しなければなりません（MUST）。完全なコントラクトについては [実験的ステータス](/docs/reference/experimental-status) を参照。
</Note>

キャンペーンアクションのための汎用ガバナンスチェック。オーケストレーター（バイヤー側）とセラーの両方がこのタスクを呼び出します。ガバナンスエージェントは、存在するフィールドからチェックタイプを推論します。

| Check type    | Who calls | Discriminating fields                     | Purpose                                                   |
| ------------- | --------- | ----------------------------------------- | --------------------------------------------------------- |
| **Intent**    | オーケストレーター | `tool` + `payload`                        | セラーに送信する前に意図したアクションを検証。予算はコミットされない。                       |
| **Execution** | セラー       | `planned_delivery` + `governance_context` | セラーが実際に配信するものを検証。予算は後で `report_plan_outcome` を通じてコミットされる。 |

ガバナンスエージェントがすべての状態を維持します。呼び出し元はチェック ID をチェーンしたり会話履歴を追跡したりしません — アクションをポストし、ガバナンスエージェントが `plan_id` で相関させます。後続のライフサイクルチェックでは、呼び出し元は継続性のために前のレスポンスの `governance_context` を含めます。

アカウントは1つのガバナンスエージェントにバインドされます（[`sync_governance`](/docs/accounts/tasks/sync_governance) と [アカウントごとに1つのガバナンスエージェント](/docs/governance/campaign/specification#one-governance-agent-per-account) を参照）。被管理アクションのすべてのライフサイクル呼び出しは、その同じエージェントに送られます。

<Tip>
  **専門家ごとのレビューはここに表面化します。** 内部的な分解（法務、ブランドセーフティ、カテゴリ）は別個のエンドポイントとして公開されません — `categories_evaluated`、および `denied`、`conditions`、情報提供的な `approved` レスポンスでは `findings[].details` に、エージェント内部のラベルとして現れます。これらの値は不透明な監査値として扱ってください。固定リストに対してパターンマッチングしないでください。
</Tip>

## チェックタイプ

### 意図チェック（オーケストレーター）

オーケストレーターは、セラーにツール呼び出しを送信する前に、`tool` と `payload` を伴って `check_governance` を呼び出します。ガバナンスエージェントは意図したアクションをキャンペーンプランに照らして評価します。

1. オーケストレーターがセラーツール（例: `create_media_buy`）を呼び出すことを決定する
2. オーケストレーターがツール名と完全なペイロードを伴って `check_governance` を呼び出す
3. `approved` なら、オーケストレーターはツール呼び出しをセラーに送信する
4. `denied` なら、オーケストレーターはツール呼び出しを送信しない
5. `conditions` なら、オーケストレーターはペイロードを調整して `check_governance` を再呼び出しする
6. ガバナンスエージェントが人間のレビューを必要とする場合、タスクは非同期になり、最終的に `approved` または `denied` に解決する

### 実行チェック（セラー）

セラーは、ガバナンスエージェントが設定された（[`sync_governance`](/docs/accounts/tasks/sync_governance) で設定）アカウントでリクエストを処理する際に、`governance_context` と `planned_delivery` を伴って `check_governance` を呼び出します。実行チェックは常に拘束的です — ガバナンスエージェントが拒否した場合、セラーは進めてはなりません。

チェックを実行する前に、セラーはバイヤーからプロトコルエンベロープに到着した署名付き `governance_context` トークンを検証します。バイヤーは**意図フェーズ**のトークンを生成します（[JWS プロファイル](/docs/building/by-layer/L1/security#adcp-jws-プロファイル)に従う）。セラー自身の実行チェックは、ライフサイクルの残りについて、割り当てられた `media_buy_id` にバインドされた `purchase`/`modification`/`delivery` フェーズのトークンを生成します。

```
on receive(create_media_buy request):
  token = request.envelope.governance_context
  persist(token)                                      # always persist for audit/forwarding
  verify(token, {                                     # per Security — Signed Governance Context
    sellerId:    my_adagents_url,
    planId:      request.plan_id,
    phase:       "intent",                             # buyer produces intent tokens
    mediaBuyId:  null,                                 # intent tokens have no media_buy_id
  })                                                  # throws on any of 15 checks failing
  call check_governance(planned_delivery, token)      # seller-side execution check — produces purchase-phase token
  proceed only if governance_agent verdict = approved
```

検証をまだ実装していないセラーも、トークンを変更せずに永続化して転送しなければなりません（MUST）— 監査人や規制当局はこれに依存します。検証は「転送のみ」のコンプライアンスから暗号的な説明責任へのランプであり、段階的に採用できます。

実行チェックは、3 つのフェーズを通じてメディアバイのライフサイクル全体をカバーします。

| Phase          | When                    | What's checked           |
| -------------- | ----------------------- | ------------------------ |
| `purchase`     | `create_media_buy` の確認前 | 予算、ジオ、チャンネル、フライト日程、ポリシー  |
| `modification` | `update_media_buy` の確認前 | 変更の大きさ、再配分、新しいパラメーター     |
| `delivery`     | 配信中に定期的に                | ペーシング、支出率、ジオドリフト、チャンネル分布 |

セラーは、コミット済みガバナンスチェックを段階的に採用できます。

* **レベル 1: 購入のみ** — `create_media_buy` ごとに 1 回の呼び出し。最小限の実行可能な統合。
* **レベル 2: + 変更** — `update_media_buy` ごとに 1 回の呼び出し。
* **レベル 3: + 配信レポート** — アクティブな配信中の定期的な呼び出し。

## 呼び出し要件

プランにガバナンスエージェントが設定されている場合、バイヤーエージェントはすべての支出コミットリクエスト（`create_media_buy`、`update_media_buy`、`acquire_rights`、`update_rights`、`activate_signal`、`build_creative`）の前に `check_governance` を呼び出さなければなりません（MUST）— 例外なく。ドル下限も、異常しきい値も、コールドスタート免除もありません。すべてのコミットがガバナンスエージェントを通ります。バイヤー側の呼び出しは意図チェック（`tool` + `payload`）であり、バイヤーがセラーへのリクエストに添付する意図フェーズの `governance_context` トークンを生成します。ガバナンスエージェントは、プランの `budget.reallocation_threshold` と `human_review_required` フィールドに従って、自動承認、条件適用、拒否、または人間のレビューへのエスカレーションを内部的に決定します。

セラー側の強制が、[署名付き `governance_context` トークン](/docs/building/by-layer/L1/security#署名付きガバナンスコンテキスト)を通じて MUST を実効化します。ガバナンスエージェントが設定されたプランの支出コミットを受け取ったセラーは、有効で期限内の意図フェーズトークン（`phase: "intent"`、`sub` がプラン ID に等しい、`aud` がこのセラー宛て）を要求しなければならず（MUST）、そうでなければ `PERMISSION_DENIED` で拒否しなければなりません（MUST）。次にセラーは自身の実行チェックを実行します — `planned_delivery` と受け取った `governance_context` を伴って `check_governance` を呼び出す — これがライフサイクルの残りについて、新たに割り当てられた `media_buy_id` にバインドされた `purchase` フェーズのトークンを生成します。意図チェックをスキップするバイヤーは有効な意図トークンを生成できないため、コミットはセラーが実行チェックに到達する前に拒否されます。

プランにガバナンスエージェントが設定されていない場合、`check_governance` の呼び出しは必須でも意味もありません — 呼び出す対象がありません。セラーは、独自の商業ポリシーの問題として、ガバナンスエージェントが設定されていないプランでの取引を拒否してもかまいません（MAY）。

完全な定義（監査要件、セラー側の保持 MUST、冪等性との相互作用を含む）については [仕様](/docs/governance/campaign/specification#spend-commit-invocation) を参照。

## ステータス値

| Status       | Meaning            | Caller action                                   |
| ------------ | ------------------ | ----------------------------------------------- |
| `approved`   | 計画通り進める。           | `expires_at` の前に行動するか、再呼び出しする。                  |
| `denied`     | 進めない。              | 上流の呼び出し元にエラーを返す。                                |
| `conditions` | 呼び出し元が調整を受け入れれば承認。 | 条件を適用し、調整したパラメーターで `check_governance` を再呼び出しする。 |

### 期限切れ

`expires_at` は `verdict` が `approved` または `conditions` の場合に存在します。失効した承認は承認ではありません — 呼び出し元は進める前に `check_governance` を再呼び出ししなければなりません。

### 条件

`verdict` が `conditions` の場合、呼び出し元は進める前に調整したパラメーターで `check_governance` を再呼び出ししなければなりません（MUST）。`required_value` を持つ条件は機械処理可能です — 呼び出し元はプログラム的に値を適用できます。`required_value` のない条件はアドバイザリです — 呼び出し元は `reason` を解釈してそれに応じて調整すべきです。

ガバナンスエージェントは、同じアクションに対する 3 回の失敗した再呼び出しの後、（`conditions` ではなく）`denied` を返すべきです（SHOULD）。これは無限の交渉ループを防ぎます。特に、セラーがキャンペーンプランを見えないセラー側チェックで有効です。

### 人間によるレビュー

ガバナンスエージェントが人間のレビューが必要と判断した場合（例: アクションがプランの `reallocation_threshold` を超える、またはプランが `human_review_required: true` を運ぶ）、エージェントは内部的にエスカレーションを処理します。`check_governance` タスクは非同期になります — 呼び出し元は標準の非同期タスクライフサイクルステータス（`submitted`、`working`）を受け取り、人間が行動すると最終的に `approved` または `denied` を得ます。呼び出し元は、非同期タスクをサポートすること以外に、このケースの特別な処理を必要としません（[タスクライフサイクル](/docs/building/by-layer/L3/task-lifecycle)を参照）。

`committed` チェック（セラー側）では、セラーがタイムアウトを設定します。ガバナンスエージェントがタイムアウト内に応答しない場合、セラーはそれを `denied` として扱い、オーケストレーターにエラーを返します。オーケストレーターは、ガバナンスエージェントが解決した後にメディアバイを再開始できます。

### 結果とのリンク

レスポンスには `check_id` が含まれます。これを [`report_plan_outcome`](./report_plan_outcome) で使い、結果をそれを認可したガバナンスチェックにリンクします。

## ガバナンスエージェントが利用不可の場合

ガバナンスエージェントが設定されていて、呼び出し元がそれに到達できない場合（タイムアウト、ネットワークエラー）、呼び出し元は進めてはなりません（MUST NOT）。ガバナンスはゲートです — ゲートに到達できないとき、デフォルトは停止です。呼び出し元はバックオフを伴って再試行し、失敗を上流にレポートすべきです（SHOULD）。

## 配信ケイデンス

レスポンスに `next_check` が存在することは、ガバナンスエージェントが継続的な配信レポートを期待しているというシグナルです。セラーは `next_check` の時刻までに呼び出すべきです（SHOULD）。ガバナンスエージェントは、期限の見逃しを次の配信チェックでの検出事項として扱ってもかまいません（MAY）。

## リクエスト

### 意図チェック（オーケストレーターがセラーに送信する前にチェック）

```json theme={null}
{
  "tool": "check_governance",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "caller": "https://orchestrator.example.com",
    "tool": "create_media_buy",
    "payload": {
      "product_id": "premium_video_300k",
      "budget": 150000,
      "currency": "USD",
      "geo": { "countries": ["US"] },
      "channels": ["olv"],
      "flight": {
        "start": "2026-03-15T00:00:00Z",
        "end": "2026-06-15T00:00:00Z"
      }
    }
  }
}
```

最初の `check_governance` 呼び出しで、ガバナンスエージェントは `payload` から必要なものを抽出します。レスポンスには、呼び出し元がプロトコルエンベロープに添付し、この被管理アクションの後続のすべてのガバナンス呼び出しに含める `governance_context` 文字列が含まれます。3.0 では、ガバナンスエージェントは、セラーが真正性、認可スコープ、鮮度（15 ステップのセラーチェックリスト）を検証できるよう、[AdCP JWS プロファイル](/docs/building/by-layer/L1/security#署名付きガバナンスコンテキスト)に従って署名されたコンパクト JWS を発行しなければなりません（MUST）。トークンは必須の `plan_hash` 監査層クレームも運びます — 正規化ルール、保持義務、およびガバナンスエージェントの実装者が出荷前に検証すべき 11 個の参照ベクターについては [プランバインディングと監査](/docs/governance/campaign/specification#plan-binding-and-audit) を参照。

### 意図チェック（権利ライセンス）

```json theme={null}
{
  "tool": "check_governance",
  "arguments": {
    "plan_id": "plan_acme_summer_2026",
    "caller": "https://buying.pinnacle-agency.example",
    "purchase_type": "rights_license",
    "tool": "acquire_rights",
    "payload": {
      "brand": { "domain": "acmeoutdoor.com" },
      "right_type": "image_generation",
      "pricing_option_id": "standard_monthly",
      "campaign": {
        "countries": ["US"],
        "start_date": "2026-04-01",
        "end_date": "2026-06-30"
      }
    }
  }
}
```

### 実行チェック — purchase

```json theme={null}
{
  "tool": "check_governance",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "caller": "https://seller.example.com",
    "governance_context": "gc_from_buyer_envelope",
    "phase": "purchase",
    "planned_delivery": {
      "geo": { "countries": ["US"] },
      "channels": ["olv"],
      "start_time": "2026-03-15T00:00:00Z",
      "end_time": "2026-06-15T00:00:00Z",
      "total_budget": 150000,
      "currency": "USD",
      "frequency_cap": { "max_impressions": 3, "per": "user", "window": { "interval": 1, "unit": "days" } },
      "audience_summary": "Adults 25-54, US, premium video inventory",
      "enforced_policies": ["us_coppa"]
    }
  }
}
```

### 実行チェック — modification

```json theme={null}
{
  "tool": "check_governance",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "caller": "https://seller.example.com",
    "governance_context": "gc_from_buyer_envelope",
    "phase": "modification",
    "modification_summary": "Budget increase from $150,000 to $200,000 and flight extension to 2026-07-15.",
    "planned_delivery": {
      "geo": { "countries": ["US"] },
      "channels": ["olv"],
      "start_time": "2026-03-15T00:00:00Z",
      "end_time": "2026-07-15T00:00:00Z",
      "total_budget": 200000,
      "currency": "USD",
      "frequency_cap": { "max_impressions": 3, "per": "user", "window": { "interval": 1, "unit": "days" } },
      "audience_summary": "Adults 25-54, US, premium video inventory",
      "enforced_policies": ["us_coppa"]
    }
  }
}
```

### 実行チェック — delivery

```json theme={null}
{
  "tool": "check_governance",
  "arguments": {
    "plan_id": "plan_q1_2026_launch",
    "caller": "https://seller.example.com",
    "governance_context": "gc_from_buyer_envelope",
    "phase": "delivery",
    "planned_delivery": {
      "geo": { "countries": ["US"] },
      "channels": ["olv"],
      "start_time": "2026-03-15T00:00:00Z",
      "end_time": "2026-06-15T00:00:00Z",
      "total_budget": 150000,
      "currency": "USD",
      "frequency_cap": { "max_impressions": 3, "per": "user", "window": { "interval": 1, "unit": "days" } },
      "audience_summary": "Adults 25-54, US, premium video inventory",
      "enforced_policies": ["us_coppa"]
    },
    "delivery_metrics": {
      "reporting_period": {
        "start": "2026-03-15T00:00:00Z",
        "end": "2026-03-22T00:00:00Z"
      },
      "spend": 12500,
      "cumulative_spend": 12500,
      "impressions": 850000,
      "cumulative_impressions": 850000,
      "geo_distribution": { "US": 100 },
      "channel_distribution": { "olv": 100 },
      "pacing": "on_track",
      "audience_distribution": {
        "baseline": "platform",
        "indices": {
          "age:18-24": 0.8,
          "age:25-34": 1.4,
          "age:35-44": 1.3,
          "age:45-54": 1.1,
          "gender:female": 1.05,
          "gender:male": 0.95
        },
        "cumulative_indices": {
          "age:18-24": 0.85,
          "age:25-34": 1.35,
          "age:35-44": 1.25,
          "age:45-54": 1.1,
          "gender:female": 1.03,
          "gender:male": 0.97
        }
      }
    }
  }
}
```

## レスポンス

### approved（意図チェック）

```json theme={null}
{
  "check_id": "chk_001",
  "verdict": "approved",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Proposed create_media_buy is within plan parameters. Budget: $150,000 of $500,000 plan total. Geo: US (within plan). Channel: OLV (within 40-70% target range).",
  "categories_evaluated": ["budget_authority", "geo_compliance", "channel_compliance", "flight_compliance", "delegation_authority"],
  "policies_evaluated": ["us_coppa", "alcohol_advertising"],
  "expires_at": "2026-03-15T01:00:00Z"
}
```

オーケストレーターは `expires_at` の前に `create_media_buy` をセラーに送信します。

### approved（実行チェック — 配信オプトイン付き purchase）

```json theme={null}
{
  "check_id": "chk_002",
  "verdict": "approved",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Planned delivery is within plan parameters. Budget: $150,000 of $500,000 plan total. Geo: US (within plan). Channel: OLV (within 40-70% target range).",
  "mode": "enforce",
  "expires_at": "2026-03-15T01:00:00Z",
  "next_check": "2026-03-22T00:00:00Z"
}
```

セラーはメディアバイを進めます。`next_check` の存在は、ガバナンスエージェントがその時刻から配信レポートを期待していることを示します。

### approved（実行チェック — delivery）

```json theme={null}
{
  "check_id": "chk_003",
  "verdict": "approved",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Delivery on track. Week 1 spend: $12,500 of $150,000 (8.3%). Pacing is on target for 13-week flight. Geo and channel distribution match plan parameters.",
  "next_check": "2026-03-29T00:00:00Z"
}
```

セラーは配信を続け、次のガバナンスチェックを `next_check` にスケジュールします。

### denied（意図チェック）

```json theme={null}
{
  "check_id": "chk_004",
  "verdict": "denied",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Proposed media buy targets CA (Canada) which is not within the plan's geography.",
  "findings": [
    {
      "category_id": "strategic_alignment",
      "severity": "critical",
      "explanation": "Geo targeting includes CA but plan only covers US.",
      "details": {
        "plan_countries": ["US"],
        "payload_countries": ["US", "CA"]
      }
    }
  ]
}
```

オーケストレーターはツール呼び出しをセラーに送信してはなりません（MUST NOT）。

### denied（実行チェック — delivery ジオドリフト）

```json theme={null}
{
  "check_id": "chk_005",
  "verdict": "denied",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Delivery has drifted outside plan parameters. 12% of impressions delivered in CA (Canada) which is not within the plan's geography.",
  "findings": [
    {
      "category_id": "strategic_alignment",
      "severity": "critical",
      "confidence": 0.98,
      "explanation": "Geo distribution shows 12% delivery in CA, but plan only covers US.",
      "details": {
        "plan_countries": ["US"],
        "actual_distribution": { "US": 88, "CA": 12 }
      }
    }
  ]
}
```

セラーは直ちに配信を一時停止し、再開する前にジオターゲティングを修正しなければなりません（MUST）。

### conditions（実行チェック — purchase）

```json theme={null}
{
  "check_id": "chk_006",
  "verdict": "conditions",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Budget approved but frequency cap must be applied per brand policy.",
  "conditions": [
    {
      "field": "planned_delivery.frequency_cap",
      "required_value": { "max_impressions": 5, "per": "user", "window": { "interval": 1, "unit": "days" } },
      "reason": "Brand policy requires daily frequency cap of 5 or fewer impressions per user."
    }
  ],
  "expires_at": "2026-03-15T01:00:00Z"
}
```

セラーは計画された配信を調整し、進める前に更新したパラメーターで `check_governance` を再呼び出ししなければなりません（MUST）。

### conditions（実行チェック — delivery オーバーペーシング）

```json theme={null}
{
  "check_id": "chk_007",
  "verdict": "conditions",
  "plan_id": "plan_q1_2026_launch",
  "explanation": "Delivery is pacing 40% ahead of schedule. Cumulative spend of $42,000 after 2 weeks exceeds expected $23,000 for this point in the flight.",
  "conditions": [
    {
      "field": "pacing",
      "reason": "Reduce daily spend rate to align with the planned flight duration. At current pace, budget will be exhausted by week 7 of 13."
    }
  ],
  "next_check": "2026-03-31T00:00:00Z"
}
```

セラーはペーシングを調整し、直ちに `check_governance` を再呼び出ししなければなりません（MUST）。`next_check` は、ガバナンスエージェントが修正を検証できるよう通常より近くに設定されます。

## フィールド

### リクエスト

| Field                                                         | Type         | Required  | Description                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------------------------- | ------------ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `plan_id`                                                     | string       | Yes       | キャンペーンガバナンスプラン識別子。                                                                                                                                                                                                                                                                                                                                                                                                   |
| `caller`                                                      | string (URI) | Yes       | リクエストを行うエージェントの URL。                                                                                                                                                                                                                                                                                                                                                                                                 |
| `purchase_type`                                               | enum         | No        | 検証される金銭的コミットメントの種類: `media_buy`（デフォルト）、`rights_license`、`signal_activation`、または `creative_services`。省略した場合、ガバナンスエージェントは `media_buy` を想定します。                                                                                                                                                                                                                                                                          |
| `tool`                                                        | string       | Intent    | チェックされる AdCP ツール。意図チェック（オーケストレーター）に存在します。ガバナンスエージェントは `tool` + `payload` の存在で意図チェックを識別します。                                                                                                                                                                                                                                                                                                                           |
| `payload`                                                     | object       | Intent    | セラーに送信される完全なツール引数。意図チェックに存在します。                                                                                                                                                                                                                                                                                                                                                                                      |
| `governance_context`                                          | string       | No        | 前の `check_governance` レスポンスからのガバナンスコンテキストトークン。後続のライフサイクルチェックに含めることで、ガバナンスエージェントが継続性を維持できます。実行チェックでは、ガバナンスエージェントは `governance_context` + `planned_delivery` でチェックを識別します。これは、すべての購入タイプにわたる唯一のライフサイクル相関子です。JWS プロファイルとセラー検証については [署名付きガバナンスコンテキスト](/docs/building/by-layer/L1/security#署名付きガバナンスコンテキスト) を、`plan_hash` 監査層クレームについては [プランバインディングと監査](/docs/governance/campaign/specification#plan-binding-and-audit) を参照。 |
| `phase`                                                       | enum         | Execution | `purchase`、`modification`、または `delivery`。デフォルトは `purchase`。実行チェックに存在します。                                                                                                                                                                                                                                                                                                                                             |
| `planned_delivery`                                            | object       | Execution | 実際に配信されるもの。実行チェックに存在します。[planned delivery](/docs/governance/campaign/specification#integration-with-create_media_buy) を参照。                                                                                                                                                                                                                                                                                           |
| `delivery_metrics`                                            | object       | Delivery  | 実際の配信パフォーマンスデータ。`phase` が `delivery` の場合に必須。                                                                                                                                                                                                                                                                                                                                                                         |
| `delivery_metrics.audience_distribution`                      | object       | No        | ベースラインに対するオーディエンスの人口構成。バイアス/公平性ドリフト検出に使用。                                                                                                                                                                                                                                                                                                                                                                            |
| `delivery_metrics.audience_distribution.baseline`             | enum         | Yes       | 参照母集団: `census`（全国人口）、`platform`（プラットフォームのユーザーベース）、または `custom`。                                                                                                                                                                                                                                                                                                                                                     |
| `delivery_metrics.audience_distribution.baseline_description` | string       | No        | `baseline` が `custom` の場合のベースラインの説明（例: "US adults 18+ with broadband access"）。                                                                                                                                                                                                                                                                                                                                       |
| `delivery_metrics.audience_distribution.indices`              | object       | Yes       | 現在のレポート期間のインデックス値。キー形式: `dimension:value`（例: `age:25-34`、`gender:female`）。値 1.0 はベースラインとの同等、1.0 超はオーバーインデックス、1.0 未満はアンダーインデックスを意味します。                                                                                                                                                                                                                                                                                |
| `delivery_metrics.audience_distribution.cumulative_indices`   | object       | No        | すべてのレポート期間にわたるインデックス値。`indices` と同じ形式。ガバナンスエージェントが単一期間のノイズ対トレンドを検出するのに役立ちます。                                                                                                                                                                                                                                                                                                                                         |
| `modification_summary`                                        | string       | No        | 何が変わったかの人間可読な要約。`modification` フェーズで存在すべきです（SHOULD）。                                                                                                                                                                                                                                                                                                                                                                 |

### 配信メトリクス

| Field                    | Type    | Description                                                                                                                                                                            |
| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `reporting_period`       | object  | `start` と `end` のタイムスタンプ（ISO 8601）を持つレポートウィンドウ。必須。                                                                                                                                     |
| `spend`                  | number  | レポート期間中の支出。                                                                                                                                                                            |
| `cumulative_spend`       | number  | メディアバイ開始以降の総支出。                                                                                                                                                                        |
| `impressions`            | integer | レポート期間中のインプレッション。                                                                                                                                                                      |
| `cumulative_impressions` | integer | メディアバイ開始以降の総インプレッション。                                                                                                                                                                  |
| `geo_distribution`       | object  | 実際の地理的分布。キーは ISO 3166-1 alpha-2 コード、値はパーセンテージ。                                                                                                                                         |
| `channel_distribution`   | object  | 実際のチャンネル分布。キーは channels enum の値、値はパーセンテージ。                                                                                                                                             |
| `pacing`                 | enum    | `ahead`、`on_track`、または `behind`。                                                                                                                                                       |
| `audience_distribution`  | object  | ベースラインに対するオーディエンス構成。`baseline`（enum）、任意の `baseline_description`（string、カスタムベースライン用）、`indices`（現在の期間）、任意の `cumulative_indices`（全期間）を含みます。キーは `dimension:value` 文字列、値はインデックス数値（1.0 が同等）。 |

### レスポンス

| Field                  | Type      | Description                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `check_id`             | string    | このガバナンスチェックの一意識別子。`report_plan_outcome` で結果をリンクするのに使います。                                                                                                                                                                                                                                                                                                                                             |
| `verdict`              | enum      | `approved`、`denied`、または `conditions`。                                                                                                                                                                                                                                                                                                                                                                |
| `plan_id`              | string    | リクエストからエコー。                                                                                                                                                                                                                                                                                                                                                                                          |
| `explanation`          | string    | 決定の人間可読な説明。                                                                                                                                                                                                                                                                                                                                                                                          |
| `findings`             | array     | カテゴリごとに見つかった問題。`verdict` が `denied` または `conditions` の場合に存在。情報提供的な検出事項については `approved` にも存在してもかまいません（MAY）。各検出事項は `category_id`、`severity`、`explanation`、任意で `policy_id`、`details`、`confidence`（0-1）、`uncertainty_reason` を持ちます。`category_id` は**エージェント内部のラベル**であり、プロトコルレベルの enum ではありません — 表示/監査用に不透明として扱い、機械的パターンマッチングには使わないでください。                                                                  |
| `conditions`           | array     | `verdict` が `conditions` の場合に存在。呼び出し元が再呼び出し前に行うべき調整。                                                                                                                                                                                                                                                                                                                                                 |
| `categories_evaluated` | string\[] | このチェック中に評価されたガバナンスカテゴリ（例: `budget_authority`、`geo_compliance`、`channel_compliance`）。**エージェント内部のラベル** — 各文字列はガバナンスエージェントのポリシーモデルによって定義され、内部の専門家レビュー（法務、ブランドセーフティ、カテゴリ）がエージェントの単一エンドポイントの背後から監査用に表面化する手段です。プロトコル enum ではなく、固定リストに対してパターンマッチングするのは安全ではありません。                                                                                                                                            |
| `policies_evaluated`   | string\[] | このチェック中に評価されたレジストリポリシー ID。                                                                                                                                                                                                                                                                                                                                                                           |
| `mode`                 | enum      | `audit`、`advisory`、または `enforce` — このチェックが評価されたときにアクティブだったガバナンスモード。ガバナンスエージェントがチェック時のランタイム設定から記録します。プランフィールドからではありません。取引相手、規制当局、監査人が、`approved` の決定が意図的な `enforce` の強制を反映するのか `audit` モードのサイレントログを反映するのかを区別できるようにします。                                                                                                                                                                                |
| `expires_at`           | string    | `verdict` が `approved` または `conditions` の場合に存在。呼び出し元はこの時刻の前に行動するか再呼び出ししなければなりません。失効した承認は承認ではありません。                                                                                                                                                                                                                                                                                                   |
| `next_check`           | string    | セラーが次に配信メトリクスを伴って `check_governance` を呼び出すべき時刻。ガバナンスエージェントが継続的な配信レポートを期待する場合に存在。                                                                                                                                                                                                                                                                                                                     |
| `governance_context`   | string    | この被管理アクションのガバナンスコンテキストトークン。`verdict` が `approved` または `conditions` の場合に存在。プロトコルエンベロープに添付し、後続のすべてのガバナンス呼び出しに含めます。これはすべての購入タイプの唯一のライフサイクル相関子です。JWS プロファイルとセラー検証については [署名付きガバナンスコンテキスト](/docs/building/by-layer/L1/security#署名付きガバナンスコンテキスト) を、`plan_hash` 監査層クレームについては [プランバインディングと監査](/docs/governance/campaign/specification#plan-binding-and-audit) を参照。検証しないセラーも、トークンをそのまま永続化して転送しなければなりません（MUST）。 |
| `authority_remaining`  | object    | このチェック後に残るバイヤー側のプラン予算権限 — セラーの割り当て予算ではありません。実行チェックで `verdict` が `approved` または `conditions` の場合に存在。`budget_remaining`（number）、`currency`（string）、`budget_used_pct`（number、0-100）を含みます。オーケストレーターはこれを使って、メディアプランの総権限に対するプランレベルの支出を追跡します。                                                                                                                                                               |

## エラーコード

| Code                    | Recovery    | Description                                                                                                         |
| ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- |
| `PLAN_NOT_FOUND`        | correctable | この ID のプランがありません。バイヤーがまだプランを同期していない可能性があります。                                                                        |
| `AMBIGUOUS_CHECK_TYPE`  | correctable | リクエストが意図フィールド（`tool` + `payload`）と実行フィールド（`governance_context` + `planned_delivery`）の両方を含んでいます。いずれか一方のセットを送信してください。 |
| `CAMPAIGN_SUSPENDED`    | correctable | キャンペーンガバナンスが人間のレビュー待ちで一時停止されています。                                                                                   |
| `SELLER_NOT_RECOGNIZED` | correctable | 呼び出し元 URL がプランの `approved_sellers` リストにありません。                                                                       |

## 関連タスク

* [`sync_plans`](./sync_plans) — このガバナンスチェックが照合するプラン
* [`report_plan_outcome`](./report_plan_outcome) — アクションが確認された後に何が起きたかをレポート
* [`get_plan_audit_logs`](./get_plan_audit_logs) — プラン状態と監査証跡を表示
