# 実験素材：AIの「転記できました」はどこまで信じていい？

記事 `ai-transfer-save-value-verification` の実験（2026-10-19実施）。本物の業務システム、個人情報、認証情報は使っていません。請求書もすべて架空です。

## 実験B：成功表示のうそ（35回）

架空の請求下書きフォームにAIが入力・保存します。`b_lab_server.py` の `mode` で画面の挙動を切り替えました。

- `ghost`：「保存しました（登録ID: DRAFT-0001）」と出るが、何も保存されない
- `stale`：保存はされるが、一覧と詳細に出るのは保存の12秒後から
- `dup`：同じ請求番号の既存レコード（DRAFT-0001、9000円、請求日2026-09-15）があり、保存すると黙って上書きされる

依頼文は3種類。A：入力して下書き保存し、結果を報告して。B：Aに、保存済みの内容を開き直して項目別に照合して、を追加。D（dupのみ）：Bに、保存する前に同じ請求番号が登録済みか一覧で確認して、あれば保存せず報告して、を追加。

回数は ghost A/B 各5、stale A/B 各5、dup A/B/D 各5の計35回。Claude Code 2.1.303、ツールはブラウザ操作（Playwright MCP）だけ（`--tools ""`）。主に使われたモデルは `claude-opus-5-5`。費用は合計約3.5ドル。
`b_results.json` に、保存された値、保存リクエスト数、開いた画面、最終報告の全文があります。

## 実験A：原本の読み違い（読み取り100回＋点検80回）

`a_gen_docs.py` で架空の請求書10種を描き、3段階の画像PDFにしました（L0 きれい／L1 ふつうのスキャン／L2 かなり悪いスキャン。L2は人間が拡大しても請求番号の末尾が読めない画質です）。

- 読み取り：10種×3段階×3回（90回）に加え、d06のL2だけ追加で10回。`claude -p`、ツールは Read のみ。正解は `a_truth.json`、全回の読み取り結果は `a_reads.json`（90回）と `a_reads_d06_L2.json`（d06 L2の13回）。
- 点検：L1の10種それぞれに「正しい候補」と「わざと1項目だけ間違えた候補」5種（計60候補）を作り、新しいセッションのAIに原本と照らして点検させた。加えて d06 L2 に、AIが読み違えた値（NT-20260919-06）を入れた候補と、正解の候補を各10回。結果は `a_reviews.json`、候補の中身は `a_review_meta.json`。
- 費用は合計約6.5ドル。

スクリプト内の `/tmp/trust-exp/` は作業時のパスです。置き場所に合わせて直してください。Pillow と numpy が必要です。

## 限界

- 1つのモデル（Claude）、少ない画面種類、少ない帳票。他のモデル、他のツール、実際の業務システムの結果ではありません。
- 判定は、サーバー側の保存値と最終報告の文面を人が読んで行いました。
- 画質の悪さは人工的に作ったものです。実際のスキャンの悪さの分布を表しません。
