
運用表は注文を「完了」、CRMは「保留」とする。CRMが新しいからと、Agentが運用表を保留へ戻そうとする。
だが、一方は履行、もう一方は営業フォローかもしれない。AIによるシステム間データ同期は、同名列や最新時刻ではなく、意味と権威を先に確認する。 Budaの運用業務で扱う差異を、許可済み出力から審査資料にまとめるところから始める。
身元確認済みの四対象を比較する
二システム各四行は架空教材で、実データや実行結果ではない。canonical entity-idと元IDの対応は管理者が確認済み。名前から人物を推測・統合しない。
| entity-id | 運用元 / status | CRM元 / status | 状況 |
|---|---|---|---|
| E01 | OPS:11 / completed | CRM:81 / pending | 意味を照合 |
| E02 | OPS:12 / shipped | CRM:82 / packing | CRM元更新が新しい |
| E03 | OPS:13 / ready | CRM:83 / ready | 運用total=120.00 USD、CRM=null |
| E04 | OPS:14 / shipped | CRM:84 / shipped | 今は一致。後で変更し得る |
namespaceとrecord-idを双方保持する。export-timeは取得時刻で、各行の業務更新時刻ではない。本物のupdatedAtがなければnull。E02の順序は架空の元メタデータに基づき、取得時刻から推測しない。対応不明なら比較前に止め、欠落行を削除扱いにしない。
差分より先に定義表を置く
意味、単位、通貨、時区、締め、nullable、許容値、ownerを項目ごとに記す。次は架空の社内規則だ。
| 項目 | 運用 | CRM | 比較 |
|---|---|---|---|
| E01 status | 履行進捗 | 営業フォロー | 別の意味。不可 |
| E02–E04 status | shippedは発送済み | 履行の写し | 承認済み対応で可 |
| total | 税抜USD注文額 | 同義、null可 | nullの意味は別確認 |
| updatedAt | 時区付き業務更新 | 同種。欠落null | 順序参考、権威ではない |
通貨の違う数を減算したり、時区を推測すると偽の差異になる。固定変換はスクリプトでよいが、規則を先に与える。モデルに単位や日付形式、空値の意味を補わせない。

まず四分類する
変化なし: E04は今一致し、提案不要。ただし後の版変更なら再確認する。
表現差: 承認済み対応でshippedと別の言語ラベルが同義なら業務競合ではない。原値と対応版を残す。この標本には追加の表現差行がなく、数合わせしない。
真の競合: E02は双方履行。同社の架空R2規則は運用を正としCRMを写しにするので、CRM:82をshippedへ変える候補を出せる。新しいCRMで逆上書きしない。
不明・欠落: E03のnullは0でも削除でもない。出力漏れ、未入力、明示クリアを確認し、規則なしならunknown。詳しい値が自動的に勝つわけではない。
E01は意味不一致なので対応を止め、別項目の設計をownerへ渡す。同期しないのが正しい場合もある。
変更しない理由も一緒に渡す
conflicts.csvへentity、項目、双方IDと原値、版、更新・取得時刻、分類、規則版、反証、不足、確認役割、入力指紋を残す。
proposed-changes.csvは根拠の足りる候補だけ。対象システム・記録・項目、現値、提案値、authority、確認状態、期待元版を記す。実行patchではない。
C02(架空):E02
OPS:12 v7 = shipped / CRM:82 v9 = packing
R2:履行は運用が正、CRMは写し
候補:CRM:82.fulfillment_statusをshippedへ
反証:CRMが新しい。人による修正でないか確認
役割:履行責任者が事実、CRM管理者が対応を確認
前提:v7/v9とR2が不変。未書込
R2が未承認ならauthorityはundecided。誰が何を決めるかを記す。ファイルhashは審査対象の写しを識別できても、元システムが現在不変とは証明しない。元版がない場合は不足を明記し、人が再確認する。
承認後の版変更で候補は失効する
C02確認後にOPS:12がv8なら、旧表を実行しない。双方と規則を再読し、差分と候補を見直す。

これは書込前の確認方法で、システム横断transaction、原生rollback、自動修復の実装主張ではない。条件付き更新や部分失敗は別の許可済み処理で管理者が確認する。既存の安定同期へ第二writerを同時投入しない。
Driveの四入力から読取専用で始める
匿名化export、definitions、確認済みsource-map、承認規則版をBuda Driveへ置く。Agent専用とSpace共有の範囲を確認する。Sessionはファイル権限境界ではない。
指定出力と規則だけを読む。確認済みentity-idを使い原値・版を保持。無変化、表現差、競合、不明を分ける。意味違いは停止し、権威なしはundecided。conflicts.csvとproposed-changes.csvだけを出し、production書込、同期、削除、0や削除イベントの推測はしない。
Agentは根拠整理と説明を担い、固定対応と単位変換、diffは決定的スクリプトへ渡す。
四つの推奨確認
未実施の確認案は、同名異義で上書きしない、新しい非権威値が勝たない、欠落を0やクリアにしない、確認後の版変更で失効する、の四つ。同期成功率ではなく停止動作を検証する。
RevOps治理のfield ownerを各候補へ具体化する。人物重複の本人確認、財務の注文・請求・入金関係、報告の異常分流とは判断対象が違う。
どのシステムが正しい?
業務事実の責任者が項目別に決める。全項目の勝者を一つにせず、規則がなければ止める。
更新時刻がないなら?
nullとし取得時刻と分ける。管理者へ元版や履歴を求め、不明なまま自動上書きしない。
競合表から自動補完できる?
表だけでは許可にならない。別途書込承認、対象項目確認、元版再読が必要で、変更時は再審査する。
管理者には何を渡す?
双方記録、意味と規則版、対象、反証、不足、判断と版前提。正解の値一列だけでは足りない。
匿名化出力を手で一巡確認してからBuda AIのMarketplaceで適切なデータSkillを検索・インストールする。本番接続と定期実行は別途設定し、まず食い違いの理由を説明できる状態にする。