AIのいうことを、私は確かめずに済ませています。「テストは通っています」も、「画面で確認しました」も、「修正は完了しました」も同じです。それでも、確認は済んでいます。自動テストのように、AIに読まれなくても落ちる仕組みが、私より先に走っているからです。この仕組みは、問題があれば失敗を返します。この連載では、確認が先に済んでいる状態を、仕組みを一つずつ置いて作っていきます。

各回の終盤の節が、「検証手順」です。先に読む必要はありません。置いた仕組みがなぜ要るのかを、自分の目で確かめたくなったときに戻ってください。

症状から対処を学ぶ

各回は、うまくいかない症状から始まります。その対処には、関連するAIの性質や仕様と、なぜその対処が適切かの解説が付いています。

先に、なぜその対処が適切かを覚える必要はありません。対処に要るのは、仕組みを一つ置くことだけです。

AIの性質や仕様を覚えても、それらの組み合わせ次第で、AIは間違えることがあります。そうした、通常の設計開発では気付きにくい、複数の性質や仕様が絡む落とし穴を、症状から順に学ぶことができます。

まず、心当たりを確かめる

まず一つだけ、数えてみてください。

直近のセッション(AIとの一続きのやり取り)で、AIや自分が、確かめるために何かを実行した回数です。テスト、画面の撮影、動作確認などです。

そのうち、実行する前に、どこまで確かめるかが決まっていたものは何回ありましたか。

まだAIと一緒に開発していないなら、数える対象が無くて当然です。ここから先は、確認のどこが決まっていなかったのかを順に見ていきます。数える回数が無くても、そのまま読むことができます。

ここまでに、似た文を 3 回書きました

私が書いたのは、2 作目 第 4 回の「私が確かめたのは、一度だけです」、2 作目 第 6 回の「私は、その依頼に応えていません」、1 作目 第 12 回の「私は、成果物も、作業ログも、不足点の一覧すらも、読まなくなりました」の 3 つです。それぞれ、サブエージェントに渡す入力、AI から来た目視確認の依頼、AI が仕上げた作業結果の話です。

前の作を読んでくださった方は、この記事の冒頭の文に見覚えがあるかもしれません。確認をやめても大丈夫だ、という形の文は、冒頭の文で 4 回目になります。

3 つとも、何を確かめるかの話でした。

確かめる相手は、前の作で手放しました

この連載は 4 作目です。

  • 1 作目「読まない技術」: AIの出力を、読まなくて済む形にした
  • 2 作目「AIの意見を聞かない技術」: AIの提案・判断を、二度検討しなくて済む形にした
  • 3 作目「言わない技術」: 人間の入力を、言わなくて済む形にした
  • 4 作目(この連載): 確認そのものを、その場で決めなくて済む形にする

3 作を読み返して気づいたことがあります。私が確かめるのをやめたものは、上の 3 つとも「確かめる相手」のほうでした。私は、何を確かめるかを、一つずつ手放してきました。

残っていたのは、確かめ方です。

二択で答えると、残りはAIが決めます

確認は、やるかやらないかの二択に見えます。

実際には、やると答えたあとにも、決めることが残っています。いつ・何回・どこまで・どの手段で確かめるかです。私が二択で答えた時点で、残りは誰かが決めることになります。決めるのは、その場にいるAIです。手元の記録にも、重いテストの一部を走らせないと、AIが自分で決めた日があります。

AIから「テストは通っています」と報告が来ました。あとになって、そのとき走らなかったテストがあったと分かりました。報告には、走らなかったテストのことは書かれていませんでした。次に同じ報告が来たとき、あなたなら次のどちらを選びますか。

  • 報告を読んで、走らなかったテストが無いかを確かめる
  • いつ・何回・どこまで・どの手段で確かめるかを、確認を走らせる前に決めておく

答えは、先に決めておくほうです。走らなかったテストが報告に無かったのは、どこまで確かめるかを、あなたが確認の前に決めていなかったからです。確認を「やる」とだけ答えた時点で、いつ・何回・どこまで・どの手段で確かめるかは決まらないまま残り、残りはその場のAIが決めます。どう決まったかは、報告には出てきません。私の手元でも、AIから「テストは通っています」という報告を受け取ったとき、そのとき走らなかったテストがどれだけあるかは、報告のどこにも書かれていませんでした。報告をいくら読んでも、報告に書かれていないことは見つかりません。確認を走らせる前に決めておけば、どこまで確かめて、どこを確かめていないかは、報告を待たなくても分かっています。

理解したことは一文にできます。

確認をやるかやらないかだけで決めると、いつ・何回・どこまで・どの手段で確かめるかは、AIが決める。だから、それらは、確認を走らせるより先に決めておく。

3 作目の本編の最終回に書いたこと

3 作目の本編の最終回に、私はこう書きました。

私に足りなかったのはレビューではありませんでした。置いた自動テストが何を見ていないかを、私は知りませんでした。

自動テストは合格でした。合格が意味するのは、「見た範囲では問題がない」ということだけです。テスト結果に出るのはその合格だけで、見ていない範囲は、どこにも出ません。あのときは、置いた自動テストが何を見ていないかを「数えるまで知りませんでした」と書いて、そのまま 3 作目を終えました。

この連載は、そこから始まります。

確認を速くする工夫

私の手元の報告で走らなかったテストは、実行を速くするために、普段の実行から外してあった重いテストでした。確認を速くした工夫のぶんが、そのまま報告から消えて、見ていない範囲は、どこにも出ていませんでした。見ていない範囲がどこにも出ないまま速くなったものを、確認と呼ぶことはできません。だから各回で、私は確認を速くする仕組みを置くとき、見ていない範囲を出す仕組みも必ず 1 つ置きます。

舞台は前 3 作と同じで、私が個人で運営している typingtube です。YouTube の音楽動画でタイピング練習ができる、本番で動いている Web サービスです。

前 3 作を読んでいなくても、この連載から読み始めることができます。前 3 作で書いたことは、各回の冒頭に 1 行だけ書いてあり、その 1 行を読めば足ります。

ただし、この連載は、自動テストやhook(AIのコマンド実行に割り込む仕組み)を置き終えたあとの話です。まだ置いていないなら、先に 1 作目から読んでください。

この連載は、私 1 人の現場の記録です。複数人のチームでは、確認の結果は他人にも伝えるものなので、確かめ方には、自分の都合だけで決めることのできない部分が残ります。

連載の構成

最終回では、5 回で置いた仕組みがどうつながり、私が確かめずに済むようになるのかをまとめます。

各回は、ファイルやスクリプトを一つ置けば完結する構成です。第 3 回から第 5 回では、私が同じ 1 本のスクリプトに、回ごとに書き足していきます。その 3 回だけは、順に読んでください。

全部の仕組みを今日置く必要はありません。各回の冒頭には、自分の環境で症状を確かめる操作を書いてあります。症状が出ている回の仕組みから置いてください。


次回は「スクリーンショットを撮らない技術」。私は、AI に画面を撮らせるのをやめました。 それでも、見た目の崩れは見つかっています。