はじめての道具箱 — AI への頼み方
— 壊れても、原因をつかめて、戻れるように —
直してもらったら、動いていた所まで壊れた。そんなとき、原因をつかめて、すぐ戻れるようにする2つの習慣を説明します。
この記事を読むとできること
想定している使い方
ブラウザで開くチャット型の AI(Gemini や ChatGPT など)にコードを書いてもらい、 それを自分の Mac に保存して動かす使い方です。この記事の操作や画面の説明は、すべて Mac を前提にしています。
読む目安:約10分 ・ 道具箱の項目 E3(AI への頼み方)・ 図4枚
「1回に1つだけ頼む」とは、AI への修正の頼みごとに、変える所を1つしか入れないことです。「動いた版を取っておく」とは、うまく動いた時点のコード(コンピューターへの命令を書いた文章)を、別のファイルとして残しておくことです。
コードは、1か所の直しが、思わぬ別の機能に響くことがあります。
一度に3つ頼んで壊れたら原因の候補は3つ、1つずつ頼んでいれば直前の1つだと、すぐ分かります。
もう1つは戻る先です。チャットの AI に「前の動いていたコードに戻して」と頼んでも、同じコードが返らないことがあります。Mac に動いた版があれば、確実に戻れます。
図の見方:上の段は、いくつも頼んだ場合で、壊れても原因も戻る先も分かりません。下の段は、1つ頼んで、動いたら取っておく場合で、濃い箱のとおり、壊れても戻れます。
1回に1つとは、次の4つの動きを繰り返すことです。「動かす」とは、貼り替えたコードを Mac で実行し、ブラウザで開くことです。開き方は localhost とポート番号 にあります。
「1つ」の大きさの目安は、動いたかどうかを1分ほどで確かめられることです。検索の機能なら、まず「文字を入れると絞られる」だけを頼み、動いたら「カテゴリーでも絞れる」を頼みます。
確かめるときは、頼んだ所だけでなく、前から動いていた所も見ます。先祖返り(直したはずの所が前の状態に戻ること)が、そこで見つかるからです。うまくいかなかったら、原因は直前の1つなので、AI にはそれだけを伝えます。
図の見方:上から下へ4つの動きが並んでいます。濃い箱の「取っておく」が、あとで戻る先を作る所です。点線の枠は、うまくいかなかったときの動きです。
筆者の体験メモ
筆者は2026年1〜6月、Gemini のチャットでコードを書いてもらいながら、自分用の道具を作っていました。検索を AND 検索(入れた言葉を全部含むものだけを探す検索)にも対応させてもらったところ、カテゴリー検索が壊れて、選ぶ欄(プルダウン)が空になったことがあります。モニターの位置を自動で見つける機能を足してもらったときは、画面の配置が崩れ、「一番安定していた頃のコードに戻して、そこから改修したい」と、手で巻き戻しました。
Finder(Mac でファイルやフォルダを見るアプリ)で、動いたコードを書いたファイル(この例では app.py)をクリックして選び、⌘ と D を同時に押します。同じ内容のファイルがもう1つでき、これが取っておく版です。
できたファイルは、選んで Return キーを押すと名前を書き換えられます。名前は、もとの名前 + 日付 + 何ができた時点かの形にそろえます。名前だけで、どの版か分かるからです。日付を月日の数字で付ければ、同じ年のうちは名前順が時間の順になります。
作業中のファイルは1つだけにして、AI のコードをそこへ貼り替えます。貼り替えは、app.py を右クリックし、「このアプリケーションで開く」からテキストエディット(Mac 標準の、文字を書くアプリ)を選んで開き、⌘ と A で全部を選び、AI のコードを ⌘ と V で貼って、⌘ と S で保存します。一部だけだと新旧が混ざるので、全部を入れ替えます。戻すときは、作業中の app.py の名前を「app_壊れた.py」のように変えて脇へ置き、取っておいた版を複製して、名前を app.py に付け直します。取っておいた版そのものには、手を加えません。
図の見方:1行が1つのファイルです。点線の行が作業中の版、下の2行が、動いた時点で複製した版(濃い行が最新)です。フォルダ名・ファイル名・日付は例です。
チャットの AI が書いたコードは、コピーして Mac のファイルへ貼り付けて使います。この途中で壊れることがあり、形は大きく3つです。
1つ目は、途中で切れることです。コピーの範囲が末尾まで届かなかったり、AI の返事が途中で終わったりすると起きます。動かすと「unexpected EOF」(EOF は「ファイルの終わり」の略。終わりが見つからないという意味)のようなエラーが出ます。コピー漏れは、コード枠(コードだけを囲んだ四角い表示)にあるコピー用のボタン(枠の右上などにあるコピーの印)で防げます。
2つ目は、記号が変わることです。全角スペース(日本語入力で打つ、幅の広い空白)のように、見分けにくい文字が混ざると、コードとして読めなくなり、「unknown token」(知らない文字がある、という意味)のようなエラーが出ます。
3つ目は、1文字の書き損じです。HTML のタグ(画面の部品を示す、「<」と「>」で囲んだ目印)の打ち間違いのように、1文字の違いで画面が開かなくなったり、機能が消えたりします。どれも貼る前には気づきにくいので、エラーの文字をそのまま AI に貼って伝えるのが近道です。
図の見方:上から3つの箱が、壊れ方の形と、そのとき出る文字です。下の濃い箱は、3つに共通する対処です。
筆者の体験メモ
筆者は、貼ったコードが途中で切れて「unexpected EOF」と出たことがあります。「コードが全部消えてしまった。もう一度書き出して」と AI に頼んだこともありました。Mac の自動操作用のスクリプト(AppleScript)を貼ったときは、全角スペースや記号の形が変わり、「unknown token」と出ました。HTML のタグを1か所書き損じてエラーになり、そのあとブラウザが古い内容を読み続けて、ダークモードや小さい窓での再生の機能が消えたこともあります。
| 起きていること | 原因 | どうするか |
|---|---|---|
| 直してもらったら、前に直したはずの機能が消えた | AI に前の版のコードを渡して頼んだため、返ってきたコードも前の版が土台だった。または、ブラウザが古い内容を読み続けている | ブラウザを、保存しておいた古い内容(キャッシュ)を使わず読み直します(Safari は ⌘ と option と R、Brave や Chrome は ⌘ と Shift と R を同時に押します)。それでも消えていたら、取っておいた版に戻し、1つだけ頼みます |
| エラーの文字を貼って直してもらったら、別の所が壊れた | 1回の直しで触る所が多く、ほかに響いた | 取っておいた版に戻し、壊れた所だけを1つの頼みとして伝え直します(「AI への伝え方」の④) |
| 貼ったら「unexpected EOF」のようなエラーが出た | コードの終わりが、貼る前に切れていた | コピーの範囲が末尾までか確かめます。AI の返事が途中で終わっているなら、全部を出し直してもらいます(「AI への伝え方」の③) |
| 「unknown token」のようなエラーが出た | 貼り付けで、全角スペースや記号の形が変わっていた | エラーの文字を AI に貼って、貼り付けで変わった記号がないか見てもらいます |
| 一番安定していた頃の版に戻りたいが、残っていない | 動いた時点で取っておかなかった | 出し直しを頼んでも同じものは返らないことがあります。次からは、動いた時点で複製しておきます |
※ この道具箱は対話型コーディング(ブラウザの画面でチャットの AI と文章をやりとりして、コードを書いてもらうやり方)の前提です。 チャットの AI はあなたの Mac を見られないので、頼むのは「コードを書いて」、困ったら出た文字を貼って伝えます。 コツは、「いま動いている所」と「今回変える1つ」を分けて伝えることです。 下の文は、そのまま写すためのものではなく、言い方の見本です。
① 1つだけ頼むとき
「いま貼るコードは、検索が動いています。今回は『カテゴリーで絞り込む』の1つだけを足してください。ほかは変えないで。どこをどう変えたかを先に説明して、そのあとコードを全部出して」
② 動いている版を元に、次の1つを頼むとき
「次のコードは、検索と並べ替えが動いている版です(ここに貼る)。これを元にして、一覧の件数を上に表示する、という1つだけを足してください。もとの機能は、そのまま残して」
③ 返事のコードが途中で切れたとき
「返ってきたコードが、途中で終わっています。最初から最後まで、全部を出し直してください」
何度も切れるなら、頼む量が多すぎるので、さらに小さく分けます。
④ 直したら別の所が壊れたとき
「前の版では検索が動いていました。今回の直しのあと、カテゴリーの選ぶ欄が空になります。前の版(ここに貼る)と、今の版(ここに貼る)を見比べて、変わった所だけ教えて。直し方は、そのあとで聞きます」
「動いたみたい」で終わらせず、次の3つを見ます。
頼んだ1つが、動くか見る。「カテゴリーで絞る」を頼んだなら、カテゴリーを選び、一覧が絞られるか見ます。
前から動いていた所が、まだ動くか見る。検索・並べ替え・保存のように、見る所を3〜5個メモしておくと、毎回同じ見方ができます。1つでも動かなければ、取っておかずに、「AI への伝え方」の④で伝えます。
取っておいた版を、名前で見分けられるか見る。名前順に並べ、最後の版の名前から、日付と「何ができた時点か」が分かれば合格です。