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

# リファレンステストベクター

> ワイヤーフォーマットの一致を確認するため SDK と実装が差分を取る機械可読フィクスチャ。仕様とともにバージョン管理され、各リリースで凍結される。

**ステータス**: Request for Comments
**最終更新**: 2026 年 4 月 20 日

## これらは何か

リファレンステストベクターは、仕様の特定のワイヤーフォーマットルールにピン留めされた機械可読な JSON フィクスチャです。出力がベクターの `expected_*` フィールドとバイト単位で一致する SDK は、そのルールのワイヤーフォーマットについてリファレンスと一致しています — 適合性クレームではありません（それは [ストーリーボード](/docs/building/conformance) のみが決定します）が、相互運用の必要な前提条件です。分岐する SDK は、自身のテストが合格しても相互運用バグを持っています。

ベクターは [ストーリーボード](/docs/building/conformance) を補完します。ストーリーボードはエージェントをエンドツーエンドで実行して pass/fail の判定を生成します。ベクターはライブラリを凍結された入力に対して分離して実行します。ベクターは署名者に「この 9421 リクエストはこの署名ベースを生成しなければならない（MUST）」と伝えます。ストーリーボードはエージェントに「バイヤーがこのリクエストを送るとき、このような形状の結果で応答しなければならない（MUST）」と伝えます。ほとんどの準拠スタックは両方を必要とします — ベクターはライブラリ内の正準化ドリフトを捕まえ、ストーリーボードはワイヤーでの動作ドリフトを捕まえます。

ベクターは適合性仕様ではありません — [ストーリーボード](/docs/building/conformance) がそれです。ベクターは、ストーリーボードと SDK ユニットテストが消費するリファレンス入力です。

## バージョニング

コンプライアンスツリーの下に公開されるベクターセット — `request-signing`、`webhook-signing`、`plan-hash`、`webhook-receiver-envelope`、`catalog-macro-substitution` — は仕様とともにバージョン管理されます。`/compliance/{version}/test-vectors/{set}/` で提供されるコピーは、そのバージョンの GA リリースで凍結されます。ベクターのバイトを変える修正は次の AdCP マイナーリリースで出荷されます。`/compliance/latest/test-vectors/{set}/` は最新の GA を追跡し、リリース間であなたの下で移動します。

`/test-vectors/{name}.json` で提供されるトランスポートとレスポンス抽出のベクターは、現在バージョン管理されていません: 各ファイルは変更されたときにその場で上書きされます。これらのフィクスチャを消費する SDK は、これらのファイルがバージョン管理されたコンプライアンスツリーに巻き込まれるまで、コミットにピン留めされたコピーをベンダリングすべきです（SHOULD）。例えば `https://raw.githubusercontent.com/adcontextprotocol/adcp/<sha>/static/test-vectors/<name>.json` から取得し、`<sha>` をロックファイルに記録します。

SDK は、利用可能な場所でバージョン管理されたパスを取得し、テスト中のバージョンを記録すべきです（SHOULD）。ピン留めされたバージョンについては、`/compliance/{version}/...` の CDN コピーが真実の源泉です。`/compliance/latest/...` は安定したピンではなく便宜的なエイリアスです。

## 公開されたセット

| Set                                                                                                                                                       | What it pins                                                                                                                                                                                                                                                    | Source                                                                  | CDN                                                                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| [`request-signing`](https://github.com/adcontextprotocol/adcp/tree/main/static/compliance/source/test-vectors/request-signing)                            | RFC 9421 リクエスト署名プロファイル: 正準署名ベース、カバードコンポーネント、署名パラメーター、タグ名前空間、alg 許可リスト、`adcp_use` 判別子、リプレイ重複排除、失効、content-digest セマンティクス、URL 正準化                                                                                                                                 | `static/compliance/source/test-vectors/request-signing/`                | `/compliance/latest/test-vectors/request-signing/`                                                                            |
| [`webhook-signing`](https://github.com/adcontextprotocol/adcp/tree/main/static/compliance/source/test-vectors/webhook-signing)                            | RFC 9421 webhook 署名プロファイル: 必須カバードコンポーネント（content-digest 必須 — `forbidden` オプトアウトなし）、`adcp/webhook-signing/v1` タグ、webhook 有効な `adcp_use` セット（`request-signing` に加え非推奨 `webhook-signing`）、`webhook_signature_*` エラータクソノミー。`request-signing` と `@target-uri` 正準化を共有 | `static/compliance/source/test-vectors/webhook-signing/`                | `/compliance/latest/test-vectors/webhook-signing/`                                                                            |
| [`plan-hash`](https://github.com/adcontextprotocol/adcp/tree/main/static/compliance/source/test-vectors/plan-hash)                                        | `plan_hash` プリイメージの JCS 正準化: required のみのベースライン、full-optional、bookkeeping 除去、omitted 対 explicit-null、配列順の感度、`ext.trace_id` の区別、Unicode 非正規化（RFC 8785 §3.2.5）                                                                                                    | `static/compliance/source/test-vectors/plan-hash/`                      | `/compliance/latest/test-vectors/plan-hash/`                                                                                  |
| [`webhook-receiver-envelope`](https://github.com/adcontextprotocol/adcp/blob/main/static/compliance/source/test-vectors/webhook-receiver-envelope.json)   | 完全な MCP webhook POST エンベロープの受信者側リプレイベクター: 正準配信レポートエンベロープの受け入れ、リトライ冪等性の保持、素の結果ペイロードまたは不正なエンベロープの拒否                                                                                                                                                               | `static/compliance/source/test-vectors/webhook-receiver-envelope.json`  | `/compliance/latest/test-vectors/webhook-receiver-envelope.json`                                                              |
| [`catalog-macro-substitution`](https://github.com/adcontextprotocol/adcp/blob/main/static/compliance/source/test-vectors/catalog-macro-substitution.json) | カタログアイテムマクロ置換の安全性: NFC 正規化、RFC 3986 パーセントエンコーディング、ネスト展開の保持、CRLF 無効化、bidi オーバーライド無効化、URL スキームインジェクション無効化                                                                                                                                                         | `static/compliance/source/test-vectors/catalog-macro-substitution.json` | `/compliance/latest/test-vectors/catalog-macro-substitution.json`                                                             |
| [`transport-error-mapping`](https://github.com/adcontextprotocol/adcp/blob/main/static/test-vectors/transport-error-mapping.json)                         | トランスポート層エラーエンベロープ形状: 各文書化された AdCP トランスポートエラーの JSON-RPC（`error.code` / `data`）と A2A（task `status.message`）キャリア                                                                                                                                                   | `static/test-vectors/transport-error-mapping.json`                      | [`/test-vectors/transport-error-mapping.json`](https://adcontextprotocol.org/test-vectors/transport-error-mapping.json)       |
| [`mcp-response-extraction`](https://github.com/adcontextprotocol/adcp/blob/main/static/test-vectors/mcp-response-extraction.json)                         | MCP `tools/call` エンベロープからの AdCP ペイロードのクライアント抽出                                                                                                                                                                                                                  | `static/test-vectors/mcp-response-extraction.json`                      | [`/test-vectors/mcp-response-extraction.json`](https://adcontextprotocol.org/test-vectors/mcp-response-extraction.json)       |
| [`a2a-response-extraction`](https://github.com/adcontextprotocol/adcp/blob/main/static/test-vectors/a2a-response-extraction.json)                         | A2A タスクステータスとアーティファクトからの AdCP ペイロードのクライアント抽出                                                                                                                                                                                                                    | `static/test-vectors/a2a-response-extraction.json`                      | [`/test-vectors/a2a-response-extraction.json`](https://adcontextprotocol.org/test-vectors/a2a-response-extraction.json)       |
| [`webhook-payload-extraction`](https://github.com/adcontextprotocol/adcp/blob/main/static/test-vectors/webhook-payload-extraction.json)                   | インバウンド AdCP webhook の受信者側フォーマット検出とペイロード抽出                                                                                                                                                                                                                       | `static/test-vectors/webhook-payload-extraction.json`                   | [`/test-vectors/webhook-payload-extraction.json`](https://adcontextprotocol.org/test-vectors/webhook-payload-extraction.json) |
| [`webhook-hmac-sha256`](https://github.com/adcontextprotocol/adcp/blob/main/static/test-vectors/webhook-hmac-sha256.json) *(legacy)*                      | レガシー HMAC webhook プロファイルの HMAC-SHA-256 署名計算とバイト等価不変条件。3.x で非推奨、4.0 で削除（[Webhook callbacks](/docs/building/by-layer/L3/webhooks#legacy-hmac-sha256-fallback-deprecated) 参照）。新しい統合は `webhook-signing` を使う                                                         | `static/test-vectors/webhook-hmac-sha256.json`                          | [`/test-vectors/webhook-hmac-sha256.json`](https://adcontextprotocol.org/test-vectors/webhook-hmac-sha256.json)               |

**ここから始める**: すべてのセットの Source 列の `README.md` が、ファイルレイアウト、鍵素材、前提条件（例: リプレイベクターに必要なランナー状態）、セットを SDK テストループに配線する方法を文書化します。ソースツリーの README が権威的です。このページのインデックスはカタログであり、統合ガイドではありません。

ディレクトリ CDN パス（3 つのコンプライアンスツリー行）はプログラム利用のためのベースパスです — CDN は個別のファイルを提供し、ディレクトリリストは提供しません。Source 列経由でツリーを参照してください。

## テスト鍵は公開されている

すべての署名ベクターセットは、ライブラリが同一の入力に対して署名者と検証者のロールを実行できるよう、`keys.json` に秘密鍵素材を出荷します。これらの鍵は **このスイートに対するグレーディングにのみ有効** です。

公開された `keys.json` ファイルの 1 つで宣言された `kid` を信頼する任意の本番検証者は悪用可能です — 秘密鍵は公開 CDN 上にあり、誰でもその kid の下で署名を偽造できます。執筆時点でこれには `test-ed25519-2026`、`test-es256-2026`、`test-gov-2026`、`test-revoked-2026`（request-signing）と `test-ed25519-webhook-2026`、`test-es256-webhook-2026`、`test-wrong-purpose-2026`、`test-response-purpose-2026`、`test-revoked-webhook-2026`（webhook-signing ベクター）が含まれます。任意のスイート `keys.json` に現れるすべての `kid` を、現在も将来も、グレーディング外では信頼できないものとして扱ってください。

本番署名者は独自のキーペアを鋳造し、独自の `jwks_uri` の下で公開します。本番検証者は、ライブトラフィックに公開された信頼ストアに任意のテスト `kid` を登録してはなりません（MUST NOT）。

## スコープ

上のセットは、すべてのサーフェスをまたぐトランスポート、署名、正準化ルール — ストーリーボードが検証できないバイトレベルのピン — を実行します。タスクごとのリクエスト/レスポンスフィクスチャは意図的にここに公開されていません: [適合性ストーリーボード](https://adcontextprotocol.org/compliance/latest/)（ワイヤー動作、エラーコード、ライフサイクル遷移）と [JSON Schema](https://github.com/adcontextprotocol/adcp/tree/main/static/schemas/source)（リクエスト/レスポンス形状）がそれらの間でタスクレベルの適合性をカバーし、凍結されたリクエスト/レスポンスペアの並行ツリーは、それが複製するストーリーボードに対してドリフトするでしょう。

実装者はスキーマから期待される形状を導出し、エージェントに対してストーリーボードを実行してワイヤー動作を確認します。機械可読なタスクごとのフィクスチャが欲しい SDK 作者は、別個のベクターセットを期待するのではなく、該当するストーリーボードからそれらを抽出すべきです。
