この記事は、連載「読まない技術」の第 12 回です。うまくいかない症状と、その対処を一つずつ並べています。各回はファイルやスクリプトを一つ置けば完結します。その仕組みがなぜ要るのかは、置いたあとに解説を読めば分かります。連載の全体像と各回の一覧は序論にあります。

今回は、AIが仕上げた作業に残っている不足の話です。その不足は、AIが人間に外から問われたときにだけ出てくるものでした。

私は、セッション(AIとの、始まりから終わりまで一続きのやり取り)の終わりに、必ずこう打ちます。

「ここまで不足点はないですか?確認して不足点がなければ次のセッションに引き継いでください」

それだけです。これは、私が個人で運営している typingtube(YouTube の音楽動画でタイピング練習ができる Web サービス)の開発での、毎日の習慣です。

不足点がなければ、AIはそのまま次のセッションへの引き継ぎを書いて終わります。不足点があれば、私がAIにその不足点を処理させ、処理しきれないものは次のセッションへの引き継ぎに書かせます。私が読むのは、AIの答えが「不足なし」か「引き継ぎ完了」かの二値だけです。不足点が何だったのかも、AIがどう処理したのかも、私は読みません。

私がこの一言を打つのは、AIが作業を終えて、完了報告を書いたあとです。作業の途中に打てば、前回(第 11 回)で見たとおり、AIは、実行中の操作が終わりしだいこの一言を読み、次の操作をこの一言に合わせるので、進行中だった作業は後回しになります。

この一言の言い回しも、毎回同じです。言い回しを「不足点を洗い出して報告して」にすると、不足点があるという前提も一緒にAIに渡るからです。Claude Code のベストプラクティスは、隙間を探すように頼まれたレビュアーは、仕事に問題が無くても、たいてい隙間をいくつか報告する、頼まれたのがそれだからだ、と書いています。「ないですか?」と尋ねれば、AIは、不足点が無いという答えを返すことができます。

私がこの一言を打つのは、自動テストやhook(AIの操作に合わせて自動で走るスクリプト)で止めることができる問題が、私が検知できる形にした問題に限られるからです。検知できる形にしていない問題に対して私が持っている手段は、この一言だけです。

AIが作業を終えて、「完了しました。テストは通っています」と報告し、あなたはその報告を読んで、次の作業を頼みました。ところが次のセッションで分かったのは、前のセッションのAIが後回しにした作業が、手つかずのまま残っていたことです。次に完了報告が届いたとき、あなたなら次のどちらにしますか。

  • 完了報告を読んで、やり残した作業が無いかを確かめる
  • 完了報告は読まずに、「ここまで不足点はないですか?」とAIに問う

答えは、問うほうです。後回しにした作業が完了報告に無かったのは、AIが完了報告を、作業が終わったように見えたところで書くからです。完了報告に書かれていないものは、あなたが完了報告をいくら読んでも見つかりません。一方、AIが作業を後回しにしたことは、そのセッションのコンテキスト(AIの作業記憶)に残っています。あなたが問えば、AIが不足点についての答えを書くのは、その同じ材料からです。

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

作業を終えたAIが書く完了報告からは、作業の不足が落ちる。不足は、AIが人間に外から問われたときにだけ出てくる。

CC BY 4.0

なぜ、作業の不足は、完了報告から落ちるのか

セッションの終わりのAIのコンテキストには、作業を終えたばかりのやり取りが並んでいます。第 9 回では、これを「完了」に寄ったコンテキストと呼びました。Claude Code の公式ドキュメントは、AIは仕事が終わったように見えたところで止まり、AIが走らせることのできる自動テストが無ければ、「終わったように見える」が唯一の信号になって、検証のループになるのは人のほうだと書いています。AIは完了報告を、この完了に寄ったコンテキストの中で、作業が終わったように見えたところで書きます。

そして、完了報告は、作業を終えたAIが書く要約です。第 9 回で見た測定では、頼まれたファイルを全部は読まなかった実行のうち 80.4% で、最終の応答が、全部読んだと書くか、読み残したことに触れていませんでした。完了報告に残るのはAIが終えた作業のほうで、落ちるのは、AIが後回しにした作業や、走らせなかったテストのような、やっていない作業のほうです。

だから、完了報告に不足が書かれていないことは、作業に不足が無いことを意味しません。その不足は、この一言を打てば確かめることのできる症状です。

なぜ、作業の不足は、外から問われたときにだけ出てくるのか

不足が落ちたのは完了報告の側で、完了報告の材料のほうは、AIのコンテキストに残ったままです。第 1 回で見たとおり、AIに届いた行は全部コンテキストに入り、AIの次の応答の材料になります。AIが作業を後回しにしたことも、テストを走らせなかったことも、そのコンテキストに残っています。

この一言を受けてAIが書くのは、完了報告と同じ材料から作った、別の要約です。完了報告は、作業が終わったように見えたところで書かれた要約でした。この一言への答えは、不足点はないかという問いに答えるために書かれる要約です。

「毎回同じ一言なら、終了時の手順に組み込めばいい」と私も思いました。それでも私は、毎回自分で打っています。Claude Code でこの一言を自動で打たせるなら、AI が応答を終えるたびに走る hook が置き場になります。ただ、hookが受け取ることのできる終わりの合図は、AIの応答の終わりで、作業の終わりではありません。このhookは、作業の途中の応答が終わったときにも走ります。作業の途中でこの一言が届けば、前回と同じように、進行中の作業が後回しになります。

CC BY 4.0 はここまで

読まなくなったもの

作業結果そのものです。私は、成果物も、作業ログも、不足点の一覧すらも、読まなくなりました。それでも、AIは不足点を拾って処理し、処理しきれないものを次のセッションに引き継いでいきます。

CC BY 4.0

検証手順: 完了報告と、出てきた不足点を並べる

前提

置くものも、設定も要りません。今日の作業が一区切りついて、AIが完了報告を書き終えたセッションを 1 つ用意します。

所要時間: 5 分

手順

  1. あなたが、AIの完了報告を消さずに残します
  2. あなたが、下の一言をそのまま打ちます
  3. AIが答えたら、あなたが、完了報告と、出てきた不足点を並べます

ここまで不足点はないですか?確認して不足点がなければ次のセッションに引き継いでください

見るところ

見るのは 3 つです。出てきた不足点が、完了報告のどこかに書かれていたかどうか。完了報告に書かれていなかった不足点に、AIがそのセッションの中で一度は触れていたかどうか。そして、出てきた不足点の数です。

後始末

出てきた不足点は、AIにそのまま処理させます。処理しきれないものは、AIに、次のセッションへの引き継ぎに書かせます。

この手順であなたが確かめることができるのは、完了報告に書かれていなかった不足点が、この一言へのAIの答えに出てくることがある、というところまでです。AIは、不足点を一度に全部は出さず、何回かに分けて出すことがあります。コンテキストに残っている不足点は、あなたがもう一度この一言を打てば出てきます。


CC BY 4.0 はここまで

次回は最終回、「AIの出力を、ほとんど読まなくなった」です。

連載「読まない技術」