> ## 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.

# L3 — プロトコルセマンティクス

> AdCP スタックのプロトコルセマンティクス層。ライフサイクルステートマシン、冪等性、エラーカタログ、非同期タスクコントラクト、適合性テストサーフェス、webhook 発出。SDK の価値のほとんどが存在する場所。

L3 はエージェント側で AdCP が *何を意味するか* を強制します。ワイヤー形状は整形式（L0）、呼び出し元は本物（L1）で認可済み（L2）。今: リクエストは世界の現在の状態を考慮して合法か？

エージェントにとって、L3 はプロトコルサーフェスの大部分です — [一から 3〜4 人月のビルド](/docs/building/cross-cutting/sdk-stack#why-sdks-matter-more-in-adcp-than-in-eg-http) はほぼ完全にここに存在します。呼び出し元にとって、L3 はコンシューマー側: 状態遷移を強制するのではなく、エラーコードを分類し状態遷移を扱う、数週間のハンドラーグルー。

## L3 の SDK が提供しなければならないもの

SDK を選ぶか新しい言語に移植する場合、これが L3 のビルドターゲットです:

* すべての仕様定義リソースの **ライフサイクルステートマシングラフ**、仕様正しいエラーコード（`NOT_CANCELLABLE` / `INVALID_STATE` など）を発する遷移アサーションプリミティブ付き。
* クロスペイロード衝突検出と `IDEMPOTENCY_CONFLICT` エンベロープの no-payload-echo 不変条件を持つ **冪等性キャッシュ**。
* **非同期タスクストア + ディスパッチャー** — ツールは非同期にオプトインする。SDK は `task_id` を返し、ポーリングを受け入れ、終端アーティファクトを発する。
* **Webhook エミッター** — 署名済み、リトライ済み、冪等。
* 解決されたアカウントが sandbox または mock モードのとき状態を決定的に駆動するよう配線された（そうでなければ拒否される）**適合性テストサーフェス**（`comply_test_controller`）。
* 仕様のエコーコントラクトを扱う **リソースごとの永続性プリミティブ**。
* 上のすべてを賢明なデフォルトで結びつける **サーバー構築エントリポイント**。

累積的なクロス層のストーリー（L0+L1+L2+L3 が何をもたらすか）については、[SDK スタックリファレンス](/docs/building/cross-cutting/sdk-stack#l3--protocol-semantics) を参照。2.5 と 3.0 の間で L3 で何が変わったかについては、[What changed at L3 in 3.0](/docs/building/cross-cutting/version-adaptation#what-changed-at-l3-in-3-0) を参照。

## この層のページ

* **[Task lifecycle](/docs/building/by-layer/L3/task-lifecycle)** — ステータス値、遷移、ポーリング。
* **[Async operations](/docs/building/by-layer/L3/async-operations)** — 同期、非同期、インタラクティブなタスク処理。
* **[Webhooks](/docs/building/by-layer/L3/webhooks)** — プッシュ通知、署名、リトライ、冪等性。
* **[Error handling](/docs/building/by-layer/L3/error-handling)** — エラーカテゴリー、コード、リカバリー分類。
* **[`comply_test_controller`](/docs/building/by-layer/L3/comply-test-controller)** — サンドボックス専用の適合性テストサーフェス。
