はじめての道具箱 — 壊さない・消さない
— 数がおかしいときは、黙って先へ進まない —
道具は、材料が欠けていても、結果がおかしくても、たいてい何も言わずに最後まで進みます。その結果、大事なデータが気づかないうちに間違った中身へ入れ替わることがあります。この記事では、いつもと違うときに道具自身が止まる「安全弁」の考え方を、はじめての人向けに説明します。
この記事を読むとできること
想定している使い方
ブラウザで開くチャット型の AI(Gemini や ChatGPT など)にコードを書いてもらい、 それを自分の Mac に保存して動かす使い方です。この記事の操作や画面の説明は、すべて Mac を前提にしています。
読む目安:約8分 ・ 道具箱の項目 D5(壊さない・消さない)・ 図3枚
安全弁とは、いつもと違う状態を道具自身が見つけて、先へ進まずに止まる仕組みのことです。止まれば、前のデータはそのまま残ります。
たとえば、5つの科目ごとの元ファイルから問題集を作り直す道具があるとします。うっかり1つの科目の元ファイルを置き忘れたまま実行しても、道具は文句を言いません。残りの4科目だけで問題集を作り、前の問題集を上書きして、「完了しました」と表示します。
道具は、渡された材料が「正しいかどうか」を考えません。書かれた手順を、書かれた順に実行するだけです。材料が欠けていても、前回より大きく数が減っていても、手順としては最後まで進めてしまいます。
困るのは、気づくのが遅れることです。上書きされたあとに画面を開いて初めて、1つの科目が丸ごと無くなっていると分かります。そのときには前の問題集も、すでに置き換わっています。
そこで、「いつもと違う」ときは進めないように、道具に見張りを付けます。人が毎回目で確かめなくても、道具が自分で止まってくれます。AI に頼むときも、「動けばよい」と頼むだけでは、この見張りは付きません。最初から「おかしいときは止まって」と伝えておく必要があります。
図の見方:上の段は、材料が欠けていても止まらない作りで、気づかないうちに前の問題集が欠けた中身へ置き換わります。下の段は、書き換える前に材料が揃っているか、数が減りすぎていないかを調べる作りで、おかしければ止まって理由を知らせるので、前の問題集には手が付きません。
見張る場所は、大きく2つに分けられます。1つ目は材料です。作り始める前に、必要なものが全部揃っているかを調べます。問題集の例なら、5つの科目の元ファイルがすべて見つかるかどうかです。足りないものがあれば、その時点で止めます。
2つ目は結果です。作り終えたあと、前の保存済みのデータに書き込む前に、結果の数を前回と比べます。材料が揃っていても、元ファイルの中身が空だったり、読み取りに失敗したりして、結果が極端に減ることがあるからです。こちらは、材料の点検をすり抜けた失敗を拾います。
どちらも、データを書き換える前に調べるのが大事です。書き換えたあとで気づいても、前のデータはもう戻りません。止まった場合は、書き込みの手前で終わるので、前のデータにはいっさい手が付きません。
たとえば、5つの科目ごとの元ファイル(Google ドキュメントから Word の形式で書き出したもの)を読み込んで、問題のデータを作り直す法律の問題集アプリには、安全弁を2つ入れています。1つは、5科目の元ファイルが揃っていないときは作り直しを中止することです。足りないまま出力すると、アプリから科目が丸ごと消えるためです。もう1つは、前回の問題数の8割を下回ったときも中止することです。元ファイルの置き忘れに気づけるようにしました。なお、この作りは、のちにエージェント型コーディング(AI が Mac の中で直接作業する形)に移ってから入れたもので、チャットの AI の頃の話ではありません。
「大きく減ったら止める」と言っても、どこから「大きく」なのかを決める必要があります。この境目を、しきい値(これを下回ったら止める、という目印の数)と呼びます。決め方の目安は、普段の増減では止まらず、事故のときだけ止まる位置です。
たとえば前回が1,000問で、基準を「前回の8割」にしたとします。今回が1,020問なら通ります。少し整理して880問になっても、通ります。700問まで減ったら、基準の800問を下回るので止まります。
基準を厳しくしすぎると、正しい整理でも止まってしまい、そのたびに人が確かめる手間が増えます。逆に緩くしすぎると、科目が1つ消えても通ってしまうことがあります(小さな科目が欠けても、数はあまり減らないためです)。だから、材料が揃っているかを調べる見張りは、数の見張りとは別に必要です。数字は「ふだんの増減」と「事故のときの減り方」を見比べて決めます。分からないときは、AI に「ふだんの増減はどのくらいか」を聞いて相談できます。
止まったあとの扱いも決めておきます。まず理由を画面に出し、人が原因を確かめます。置き忘れなどの間違いなら直して、もう一度実行します。本当に大きく減らす整理だったなら、「承知のうえで進める」という指定を、人が明示的に付けたときだけ通します。基準そのものを黙って緩めるのは避けます。
起きていることから探してください。
| 起きていること | 原因 | どうするか |
|---|---|---|
| 「前回より大きく減っています」と出て止まった。減らしたつもりはない | 元ファイルの置き忘れや、読み取りの失敗で、数が減っている可能性がある | 安全弁は役に立っています。元ファイルが揃っているか、中身が空でないかを確かめて、直してから実行し直します |
| 本当に整理して大きく減らしたのに、止まってしまう | 安全弁は、意図した減り方かどうかまでは分からない | 「承知のうえで進める」という指定を付けたときだけ通る作りにしてもらいます。基準の数字を黙って緩めるのは避けます |
| はじめて実行したとき、比べる前回のデータが無い | 前回の数がないので、比べようがない | 前回が無いときは比べずに通す作りにします。はじめの1回だけは、結果の数を人が目で確かめます |
| 止まらなかったのに、結果の中身がおかしい | 数が同じでも、中身が壊れることはある。数の見張りは、見張りの1つにすぎない | 中身についても、気づいた失敗に応じて見張りを足します。たとえば「空欄の問題が1件でもあれば止める」のように頼みます |
| 止まったのに、画面に何も出ないので、止まったことに気づかなかった | 止める処理はあっても、理由を人に知らせる表示がない | 「止めたことと、その理由を画面に出して」と頼みます。数字(前回と今回)も一緒に出してもらいます |
※ この道具箱は対話型コーディング(ブラウザの画面でチャットの AI と文章をやりとりして、コードを書いてもらうやり方)の前提です。 チャットの AI はあなたの Mac を見られないので、頼むのは「コードを書いて」、困ったら出た文字を貼って伝えます。 コツは、何を見張るかと、どこまで減ったら止めるかを、数字で伝えることです。 下の文は、そのまま写すためのものではなく、言い方の見本です。
① データを作り直す道具を頼むとき
「5つの科目の元ファイルから問題集のデータを作り直す道具を作って。5つのうち1つでも元ファイルが見つからなければ、作らずに止めて、足りない科目の名前を画面に出して。作り終えたあと、前回の問題数と比べて8割を下回っていたら、前のデータには書き込まずに止めて、前回と今回の数を画面に出して。コードを書いて」
② すでに作ってもらった道具に足すとき
「このコードは、前のデータを上書きする前に何も確かめていない。上書きする前に、材料が揃っているかと、結果の件数が前回の8割以上あるかを調べて、おかしければ止めるようにして。意図して減らしたときだけ、確認用の指定を付けると通る形にして。直したコードを全部書いて」
③ 基準の数字を相談したいとき
「この道具の件数は、ふだん増えたり減ったりする幅がどのくらいか考えて、事故のときだけ止まる基準はどのくらいがよいか教えて。理由も添えて」
うまくいかないとき
「安全弁が働いて止まったけれど、減らしたつもりはない。画面に出ている文字は:(ここに貼る)。元ファイルが欠けていたり、空だったり、読み取りに失敗していたりしないか、調べるための方法を教えて」
試すのは、本物のデータではなく、そのコピーだけにします。先にデータと元ファイルを別のフォルダへコピーし、道具がコピーのほうを読み書きするよう AI に切り替えを頼みます。効いているかは、「いま読んでいるファイルの場所を画面に出して」と頼んで確かめます。次の3つを順に確かめます。
いつも通りの材料で、止まらずに通るのを見る。コピーの材料を何も変えずに実行します。止まらずに終わり、画面に前回と今回の数が出れば成功です。ここで止まるなら、安全弁が厳しすぎるので、基準を見直してもらいます。
材料をわざと欠けさせて、止まるのを見る。コピーの元ファイルを1つだけ、Finder(Mac でファイルを見るためのアプリ)で別の場所へ移してから実行します。作り直しが始まらずに止まり、足りないものの名前が画面に出れば成功です。確かめ終えたら、元の場所へ戻します。次に、元ファイルを全部揃えたまま、1つの元ファイルの中身だけを大きく減らして実行します(たとえば問題の大半を削除したコピーを使います)。今度は数の見張りで止まり、前回と今回の数が画面に出れば成功です。
止まったあと、前のデータが無事なのを見る。手順2で止まったあとに、コピーのデータの更新日時(Finder で「情報を見る」を開くと分かります。実行の前に控えておきます)が変わっていないこと、道具を開いて中身が元のままであることを確かめます。止まったのにデータが変わっていたなら、見張りが書き込みのあとに置かれているので、書き込みの前に動かすよう直してもらいます。