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 に画面を撮らせるのをやめました。 それでも、見た目の崩れは見つかっています。