{
  "format": "agent-article-v0",
  "article_id": "EA-250",
  "canonical_url": "/tools/ea-250-ai",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EVD-EA-250-URL-33C55EC7474C",
    "EVD-EA-250-URL-1A761BCBE536",
    "EVD-EA-250-URL-AA806CF1A099",
    "EA-250-CURRENT-APPROVAL",
    "EA-250-CURRENT-BODY-READBACK"
  ],
  "unknown_ids": [
    "EA-250-UNKNOWN-01"
  ],
  "operational_object_ids": [],
  "provider": [],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-20",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "MANUAL-EA250-DRAIN-20261020-C1",
    "SRC-EA-250-URL-33C55EC7474C",
    "SRC-EA-250-URL-1A761BCBE536",
    "SRC-EA-250-URL-AA806CF1A099",
    "BODY-SHA256:a77e155a4253c2f61f0312441ad21984cf97b4c97ca642678aa4a8cec708ce03"
  ],
  "article_sources": [
    {
      "id": "EVD-EA-250-URL-33C55EC7474C",
      "evidence_class": "RESEARCH",
      "title": "[S1] Confluent, Schema Evolution and Compatibility.",
      "href": "https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-250-URL-33C55EC7474C"
      ],
      "supporting_locators": [
        "SOURCES_AND_PROVENANCE",
        "S1",
        "- [S1] Confluent, Schema Evolution and Compatibility. https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html"
      ],
      "scope": "SOURCES_AND_PROVENANCE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-250-URL-1A761BCBE536",
      "evidence_class": "RESEARCH",
      "title": "[S2] dbt, Model contracts.",
      "href": "https://docs.getdbt.com/docs/mesh/govern/model-contracts",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-250-URL-1A761BCBE536"
      ],
      "supporting_locators": [
        "SOURCES_AND_PROVENANCE",
        "S2",
        "- [S2] dbt, Model contracts. https://docs.getdbt.com/docs/mesh/govern/model-contracts"
      ],
      "scope": "SOURCES_AND_PROVENANCE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EVD-EA-250-URL-AA806CF1A099",
      "evidence_class": "RESEARCH",
      "title": "[S3] dbt, Model versions.",
      "href": "https://docs.getdbt.com/docs/mesh/govern/model-versions",
      "supports": [],
      "limit": "元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。",
      "origin_class": "SOURCE_PACKET_REFERENCE",
      "source_or_experiment_ids": [
        "SRC-EA-250-URL-AA806CF1A099"
      ],
      "supporting_locators": [
        "SOURCES_AND_PROVENANCE",
        "S3",
        "- [S3] dbt, Model versions. https://docs.getdbt.com/docs/mesh/govern/model-versions"
      ],
      "scope": "SOURCES_AND_PROVENANCE",
      "provenance_status": "SOURCE_PACKET_REFERENCE_PROJECTED"
    },
    {
      "id": "EA-250-CURRENT-APPROVAL",
      "evidence_class": "RESEARCH",
      "title": "現行本文の監査・revision対応",
      "supports": [
        "現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。"
      ],
      "limit": "監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "MANUAL-EA250-DRAIN-20261020-C1"
      ],
      "supporting_locators": [
        "1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER#ea_id=EA-250&revision_id=EA-250-RESEARCH-20261020-R1&candidate_id=MANUAL-EA250-DRAIN-20261020-C1",
        "EA-250-RESEARCH-20261020-R1"
      ],
      "provenance_status": "CURRENT_CANONICAL_APPROVAL_READBACK"
    },
    {
      "id": "EA-250-CURRENT-BODY-READBACK",
      "evidence_class": "IMPL",
      "title": "現行本文の収録照合",
      "supports": [
        "公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。"
      ],
      "limit": "本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。",
      "checked_at": "2026-10-21",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "BODY-SHA256:a77e155a4253c2f61f0312441ad21984cf97b4c97ca642678aa4a8cec708ce03"
      ],
      "supporting_locators": [
        "content/staging/EA-250.md",
        "a77e155a4253c2f61f0312441ad21984cf97b4c97ca642678aa4a8cec708ce03",
        "EA-250-RESEARCH-20261020-R1"
      ],
      "provenance_status": "CURRENT_APPROVED_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "PUBLIC_CLAIM",
      "text": "データ契約は、作る側と使う側が、項目、型、意味、品質、更新、権限、変更手順を共有する約束です。AIが入力をそれらしく解釈しても、契約違反が直ったことにはなりません。項目名や型の互換性と、金額・時刻・対象集団等の意味の互換性を分け、変更の影響を検索、prompt、tool、評価データまで追います。"
    },
    {
      "heading": "ESTABLISHED",
      "text": "Confluent Schema Registryは、BACKWARD、FORWARD、FULLおよびそれぞれのtransitiveな互換性検査を説明します。BACKWARDは新しい読み手が古いデータを読める方向、FORWARDは古い読み手が新しいデータを読める方向です。transitiveな設定は過去の複数版との互換性を確認し、非transitiveな検査は直前版との確認になります。デフォルトのBACKWARDを、全過去版との互換性として扱いません[S1: Compatibility types / Transitive property]。\n\ndbt model contractsは、モデルを構築する際の列名・型等の契約検査を提供します。対応するmaterializationや制約の強制はデータ基盤により異なり、全resourceへ一律に適用されるものではありません[S2: Prerequisites / Define a contract]。dbt model versionsは、破壊的変更を別版として公開し、利用側の移行を扱う仕組みです[S3]。\n\nこれらは製品が確認する範囲の説明です。schema検査が通ったことを、業務意味・アクセス許可・回答品質の全てが正しいという証明にしません。AI側の変換で型だけを合わせて、変更の意味を隠すことも避けます。"
    },
    {
      "heading": "CONTRACT_CONTENT",
      "text": "以下はAI運用向けの辞典の提案です。契約を文書だけにせず、検査できる条件、責任者、変更時の受入結果へ結び付けます。\n\n| 契約の面 | 明示する情報 | AI側で必要な検証 |\n| --- | --- | --- |\n| 構造 | 項目、型、必須、null、配列、列挙 | parse・schema・欠損時の扱い |\n| 意味 | 単位、通貨、timezone、期間、集計範囲 | 集計や回答が同じ意味を保つか |\n| 品質 | 重複、欠損、参照整合、受入閾値 | 出力を補完せず失敗を表すか |\n| 時間 | 更新頻度、基準時刻、遅延、遡及修正 | 古い情報を現在値として使わないか |\n| 権限 | owner、tenant、ACL、利用目的 | 取込・検索・操作時の許可を保持するか |\n| 変更 | 契約版、通知、移行期限、互換性範囲 | 古いconsumerと評価結果をどう扱うか |\n\n例として金額が`integer`のまま、単位が円から千円へ変わった場合、構造の検査だけでは検出できません。`updated_at`の文字列形式が同じでも、UTCから地域時刻へ変われば、期間検索や締め日の意味が変わります。顧客IDが同じ型でも、一意性の範囲が全社からtenant内へ変われば、tenantを含む識別が必要になります。これは一般的な失敗例であり、参照製品の実障害を主張するものではありません。"
    },
    {
      "heading": "EVOLUTION_AND_MIGRATION",
      "text": "変更を、追加、削除、改名、型変更、意味変更、品質条件変更、権限変更へ分けます。「項目を追加しただけ」でも、厳密なschema、tool引数、全文hash、prompt内の列順に依存するconsumerは影響を受ける可能性があります。互換性はproducerとconsumerの組合せ、形式、使用している版、保存済みデータの範囲に対して判定します。\n\n移行では、旧版を必要とするconsumerを棚卸しし、新旧版を混ぜず識別できる形で併存させます。変換adapterを置くなら、変換前後の契約版と、失われる情報を記録します。変換できない値をAIに推測させて無言で埋めず、未対応として返すか、承認された縮退へ進めます。移行期間を過ぎても旧版利用が残る場合は、呼出しの観測と担当者への引渡しを行います。\n\n過去データの再処理は、当時のschemaと意味を読める構成で行います。新schemaを登録したことだけでは、保存済みデータ、索引、cache、評価用の正解値は変わりません。旧データを新しい単位として読まないよう、データ版と変換版を結び付けます。rollbackも、古いreaderが新しいデータを読めるかを確認し、単にアプリのcommitを戻せば成立するとは考えません。"
    },
    {
      "heading": "AI_CONSUMER_IMPACT",
      "text": "| AIの利用面 | 変更の波及 | 受入検査 |\n| --- | --- | --- |\n| RAG索引 | metadata名、filter、ACL、chunk生成 | 旧新データの検索、削除・権限反映 |\n| prompt | 項目説明、単位、欠損条件 | 誤解しやすい対照入力の回答 |\n| tool | 引数と戻り値のschema・意味 | 厳密な検証、無言の型変換の拒否 |\n| 評価 | 正解値・採点条件・対象範囲 | 旧評価結果を継承できる範囲 |\n| audit | 出所、版、判断時点 | 当時の入力と結果を再現できるか |\n\nAIが旧項目名から新項目を連想できても、互換性の受入証拠にはしません。正しい変換を行う専用処理と、その上のAI処理を分けます。検索可能であることと、その情報をその利用者へ示してよいことも分けます。schemaからACL列が落ちた場合、本文だけが正常でも公開条件を満たしません。"
    },
    {
      "heading": "FAILURE_AND_CONTROL",
      "text": "契約違反を検出したデータは、原本・失敗理由・契約版を付けて隔離し、担当者と再処理条件を決めます。全体を止めるか、正当な部分集合だけを公開するかは業務の影響で決めます。例外を無期限の「承認済み」にせず、範囲、期限、失効条件、残るリスクを明示します。\n\n受入検査には、nullと空文字、未知の列挙値、単位変更、桁溢れ、timezone境界、複合key、項目の削除・改名、過去版の再生、tenantの混同を含めます。構造の互換性検査に加え、意味を確認できる少数の固定入力と期待値を持ちます。AIで作ったテストだけを正解とせず、業務上の定義と独立した確認者へ照合します。"
    },
    {
      "heading": "LIMITATIONS_AND_OPEN_UNKNOWN",
      "text": "今回、実Schema Registryやdbt project、warehouse、RAG索引の移行試験は実施していません。形式別の互換性規則、adapter・materialization別の強制条件、既存consumerの実依存、意味の受入基準、旧版利用の残数はUNKNOWNです。本文の契約表は共通標準の必須項目だと称するものではなく、採用組織の設計案です。厳しすぎる契約で必要な変更を妨げることもあるため、実際のconsumerと移行負荷を確認して適用します。"
    },
    {
      "heading": "SAFE_WORDING",
      "text": "「特定の契約版・producer/consumerの組合せで、構造と業務意味の受入を検証した」と記します。「schema互換なのでAIの回答も正しい」とは記しません。変換結果と利用側の結果をreadbackします。"
    },
    {
      "heading": "SOURCES_AND_PROVENANCE",
      "text": "- [S1] Confluent, Schema Evolution and Compatibility. https://docs.confluent.io/platform/current/schema-registry/fundamentals/schema-evolution.html （2026-10-20確認、形式・方向・transitivityを区別）\n- [S2] dbt, Model contracts. https://docs.getdbt.com/docs/mesh/govern/model-contracts （同日確認、適用対象・制約の強制範囲は実基盤依存）\n- [S3] dbt, Model versions. https://docs.getdbt.com/docs/mesh/govern/model-versions （同日確認、破壊的変更と移行の説明）\n- 旧来歴: R1R-007-EA0250、退避Doc 1Vd0BP7G2UyPDRQs_-8dPvTgQ78Tk6kcVGuMJjqNdr84 tab t.0:13317–14700は所在確認だけの記録。旧Luna成果を推測再構成せず、canonical topicを維持して現行資料から本記事を完成しました。"
    }
  ],
  "human_url": "/tools/ea-250-ai",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-250-ai",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-250-ai"
}