10月22日の午前11時7分、僕はAI(Claude)にこう送った。
記事の画像で 赤=直しが要った って日本語おかしくない?
その朝、AIに書いてもらったPHPと証明書の記事(PHPの重大な脆弱性と、eMudhraの証明書の問題)の下書きのことだ。記事には、僕のサーバーとパソコンの全体図が入っている。その図の色分けの説明に「緑=はじめから安全 赤=直しが要った」とあった。「直しが要った」は、僕には不自然に見えた。
AIは1分後に、「赤=直す必要があった」に直すと返してきた。小さな直しのはずだった。その1分後に「直しました」と報告が来た。ところが、その続きにこう書いてあった。
ただ、直す途中で私が失敗をしました。
僕がその下書きに手で入れていた直しを、AIが上書きしていた。
何が起きたか
AIの報告をそのまま引く。
更新の前の確認で「WordPress側の本文が変わっている」と出ていました。それを見落として、上書きしてしまいました。
消えかけたのは、記事の中の「自分で確かめる方法」の手順にある確かめ用のアドレスを、僕が太字のリンクにした手直しだった。AIの報告では、こう書かれている。
確かめ用のアドレスを、太字のリンクにしてくれていた手直しです。
その朝の流れは、次のとおりだ。
| 時刻 | だれ | 何をしたか |
|---|---|---|
| 10時17分 | AI | 記事を下書きとして登録した |
| 10時40分 | AI | 僕が貼った報告をもとに表を書き換え、下書きを更新した。「更新の前に、WordPress側で手直しされていないことも確かめています」と報告 |
| (時刻は記録に無い) | 僕 | 下書きを開いて、確かめ用のアドレスを太字のリンクにした |
| 11時7分 | 僕 | 図の「直しが要った」がおかしいと伝えた |
| 11時8分 | AI | 図の文字を直して送った。確認で違いが出ていたのに、上書きした |
| 11時8〜9分 | AI | 元に戻した |
| 11時9分 | AI | 失敗を報告して謝った |
僕がいつ手で直したのかは、記録に残っていない。分かっているのは、AIが10時40分の更新の前に「手直しされていないことも確かめています」と報告していたことだけだ。
控えが残っていたので、戻せた
戻せたのは、上書きする前の本文が手元のファイルに残っていたからだ。AIの報告ではこうなっている。
上書きする前の本文が控えに残っていたので、そこに図の文字の直しだけを入れて戻しました。
AIは、WordPressの本文に太字のリンクと図の直しの両方が入っていることを確かめた、とも書いていた。状態は下書きのままだった。
この記事を書くときに、AIにその控えと、最後に送った本文を比べてもらった。違いは、図の色分けの説明の1行だけだった。太字のリンクは両方に入っていた。
報告の最後で、AIは「すみませんでした」と謝り、ほかにも手で直した所があれば教えてほしい、と聞いてきた。この問いに僕が答えた記録は無い。
確かめる仕組みは、ちゃんとあった
この件で大事なのは、確認をしていなかったわけではない、という点だ。
2日前の10月20日の夜にも、AIは送る前に確かめていた。僕の答えを下書き3本に入れる前に、こう報告している。
3本とも、登録したあとに手で直された跡はありません。
このときは、確かめたことをきちんと報告していた。
確かめ方は、こうだ。AIは、送るために組み立てた本文をファイルに残している。下書きを直して送り直す前に、WordPressから今の本文を取ってきて、手元の本文と比べる。同じなら、だれも手で直していない。違えば、だれかが直している。
10月22日も、確認そのものは違いを見つけていた。ただ、見つけた結果を出すだけで、送るのは止めなかった。
比べる道具は、結果を「content same: False」(本文が同じではない、という意味)の1行と、違う行の一覧で画面に出すだけだ。送る道具とは別になっていて、違っていても送るのを止める力は無い。この記事を書くためにAIの作業の記録を見直すと、10月22日もこの道具で比べていて、画面には「content same: False」と出ていた。AIはそれを読み飛ばして、送っていた。
AIがなぜ見落としたのかも、記録には書かれていない。報告にあるのは「見落として」までだ。
違っていたら止まる道具に変えた
AIは、謝ったのと同じ報告の中で、下書きを送る道具を変えたと書いていた。
前に送った本文と、WordPress側の今の本文が違っていたら、上書きせずに止まります。
変えたあとの道具は、送り直す前に次のことをする。
- WordPressから今の本文を取ってくる
- 前に送った本文と比べる。比べるときは「ハッシュ」を使う。ハッシュは本文から計算した短い文字列で、1字でも違えば別の文字列になる
- 違っていたら、送らない。今の本文をファイルに残してから、止まる
止まったときは、画面にこう出る。
止めました: WordPress側の本文が、前に送ったものと違います(手直しの可能性)。live_content_latest.html に保存しました。差を article.md に写してから、もう一度実行してください。
live_content_latest.html は、WordPressの今の本文を保存したファイルで、article.md は手元の原稿のファイルだ。つまり、手で直された跡があれば、その直しを手元の原稿に写してからでないと、送り直せない。止まるときに今の本文を残すので、それがそのまま控えになる。
前と後を並べると、こうなる。
| 前 | 後 | |
|---|---|---|
| 違いに気づくか | 気づく | 気づく |
| 違っていたとき | 結果を画面に出すだけ | 送らずに止まる |
| 送るかどうか決めるのは | 結果を読んだAI | 道具 |
| 今の本文の控え | 比べる道具が残す | 止まるときに送る道具が残す |
足りないところもある。比べているのは本文だけで、題名や抜粋は比べていない。僕が題名だけを手で直した場合は、止まらずにAIの題名で上書きされる。抜粋・カテゴリ・タグも同じだ。また、変えたあとの道具で一度も送っていない下書きは、比べる元が無いので止まらない。それから、わざと上書きしたいときのために、指定を1つ付ければ止まらずに送る抜け道も残してある。
この道具は、AIの報告によると、10月20日と10月22日の記事のフォルダの両方に入れた。
まだ分からないこと
変えたあとに、止まる仕組みが実際に止まったことがあるかは、まだ分からない。記録には出てこない。手で直していない下書きばかりなら、止まる場面そのものが来ない。
ほかにもPHPと証明書の記事の中で、僕が手で直していて消えた所がないか、という問いに、僕は記録の上ではまだ答えていない。
分かったこと
10月20日も10月22日も、AIは送る前に確かめてはいた。違ったのは、違いが出たあとだ。
結果を画面に出すだけの確認は、毎回だれかがその結果を読んで、手を止めることが前提になっている。それが一度でも抜けると、見つけていても防げない。今回は、それがAIの側で起きた。止まる形にしておけば、読み落としても送られない。
AIにWordPressの下書きを直させていて、自分でも同じ下書きを手で直すことがある人へ。この件から言えるのは、次の3つだ。
- 送り直す直前に、WordPress側の今の本文と、前に送った本文を比べる
- 違っていたら、知らせるだけにせず、送らずに止まる形にする
- 止まるときに今の本文をファイルに残す。それが戻すときの控えになる
今回、僕の太字のリンクが戻ったのは、比べる道具が、動かすたびにWordPressの今の本文をファイルに残す作りだったからだ。変えたあとの道具は、止まるときに自分で控えを残す。
おすすめ商品






