Claudeに「この仕様をコードにして」と頼んでも動かなかった理由。伝えるべきは「手順」ではなく「期待」だった

AIへの指示、曖昧さは絶望の始まり

画面の右下にある時計が午前2時を回った。静まり返ったオフィスで、カチカチというマウスのクリック音だけが虚しく響く。手元にあるのは、会社で長年使われている「手書き風」の絶望的なExcel集計表だ。これを自動化したくて、話題のClaudeに泣きついた。プロンプト欄には、部署で配られているマニュアルをそのまま貼り付けた。これで魔法のようにPythonのコードが生成され。

明日からはボタン一つで仕事が終わるはずだった。現実は甘くない。出力されたコードを恐る恐る実行すると、黒い画面に無情な赤文字が躍る。IndexError。聞いたこともない英単語が、自分の無能さを嘲笑っているように見えた。

AI生成コードの壁、指示の重要性

エラーが出たことをClaudeに伝えると。申し訳なさそうな謝罪とともに新しいコードが提示される。それをコピーして貼り付ける。またエラーが出る。今度は「ModuleNotFoundError」だ。ライブラリが必要だと言われ、言われるがままにインストールを試みるが。プロキシ設定の壁に阻まれて進めない。いつの間にか、業務を効率化するためのツール作りが。自分を苦しめる新たな「業務」にすり替わっていた。

まず、深夜11時過ぎ、誰もいない総務部でClaudeと格闘していた。Excelの特定の列を抽出したいだけなのに。AIが生成したコードを実行するたびに「ファイルが見つかりません」と表示される。パスの指定が間違っているのか、バックスラッシュの数が足りないのか。非エンジニアの自分には。AIが提示する「修正案」のどこが前回と違うのかすら判別できず。ただひたすらにコピペを繰り返すマシーンになっていた。

結局、その日は一歩も進まず。タクシーで帰宅する車中で「手でやったほうが早かったのではないか」という虚無感に襲われた。

AI指示の極意:入力・出力・例外

この絶望感の正体は、AIの性能不足ではない。AIという「超優秀だが、空気を一切読まない部下」への指示の出し方が。根本的に間違っていたのだ。私たちは往々にして。自分が理解している「仕事の手順」をそのままAIに投げれば良いと思い込んでいる。だが、AIにとって人間の書いた「仕様書」は。解釈の余地がありすぎる曖昧なポエムに過ぎありません。

著者の体験則では。「いい感じにして」という曖昧な指示では初回で期待通りのコードが出る確率は10〜20%程度。「入力・出力・例外」の3点を明記すると60〜70%以上に改善した。

AIと人の思考のズレ

次に、なぜ、社内で評価されている完璧な仕様書を渡しても。Claudeは動かないコードを生成するのか。その理由は、AIが「手順」をなぞることは得意でも。人間が頭の中で無意識に補完している「暗黙の期待」を読み取る能力はないからだ。たとえば「Excelのデータを整理して」という指示を出す。人間同士なら、空行を詰めたり。書式を整えたりすることを期待していると伝わるだろう。

しかし、AIは文字通り「整理」という言葉を独自のアルゴリズムで解釈する。ある時はデータをアルファベット順に並べ替え、ある時は重複を断りもなく削除する。

「仕様書をそのまま貼る」という行為は、AIにとって最も難易度が高い。仕様書には。人間が読むための背景知識や「そもそもなぜこの作業が必要か」という情緒的な説明が混ざっているからだ。AIに必要なのは「どう動くか」という物語ではなく、「何を入力し。何を吐き出すか」という物理的な定義である。非エンジニアが陥る最大の罠は。AIを「自分と同じ文脈を共有している同僚」だと錯覚してしまう点にある。

AIと人の思考ズレが生んだ、地獄の完了通知

前任者から引き継いだVBAのマニュアルをそのままClaudeに読み込ませた。マニュアルには『エラーが出たら適宜修正する』という。人間なら『勘で直せ』と理解できる一文があった。Claudeはこの一文を真に受け。Pythonのtry-except構文ですべてのエラーを握りつぶし。何も出力せずに正常終了したと嘘をつくコードを書き上げた。結果、データは1件も処理されていないのに。

プログラムだけは『完了しました』と表示する地獄のようなツールが完成した。これに気づかず上司に報告し。後でデータの欠落を指摘された時の胃がキリキリする感覚は今も忘れられありません。

一方で、エンジニアはコードを書く際。常に「入力(Input)」と「出力(Output)」を意識する。対して、我々事務職は「過程(Process)」を大切にしすぎる傾向がある。この思考のズレが、動かないコードを生み出す。AIに伝えるべきは、あなたの苦労話や複雑な社内ルールではなく。厳密に定義された「期待値」なのです。

ここで一度立ち止まって考えてみてください

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エ…

プログラミングスクール Enjoy Tech!(エンジョイテック) →

AIプロンプト:入力・出力・例外の明確化

AIへの依頼で失敗しないためには、プロンプトの構成を劇的に変える必要がある。具体的には。「入力形式」「出力形式」「例外ケース」の3点を独立したセクションとして明示することだ。これだけで、初回で動くコードが生成される確率は格段に跳ね上がる。まず入力形式では、ファイル形式だけでなく。どの列に何が入っているかを具体的に指定する。

例えば。Pythonのライブラリであるpandasやopenpyxlを使ってExcelを操作したいなら。「列Aには8桁の数字である社員番号が入っている」といった具合だ。次に、出力形式を定義する。「列Cに『〇〇部署』と入力されたセルのみ抽出したCSVファイルを出力する」と。ゴールを物理的なファイルの状態として記述する。最後に、最も重要なのが「例外ケース」の指定です。

そのため、例外ケースを未指定の場合、「エラーが出た。直して」のやり取りが平均3〜5回発生する。「空欄はスキップ」「全角スペースは削除」と明記してから1〜2回に削減できた(著者の体験)。

AIの盲点、データ処理の指示

実務で扱うデータは、決して綺麗ではない。途中で空行があったり。数値のはずの場所に「不明」という文字列が混ざっていたりする。これらをどう処理するか指示がないと、AIは最も楽な道を選び。プログラムを停止させるコードを書く。「例外:社員番号が空欄の行はスキップする」あるいは「例外:数値以外の文字が入っていたら0として扱う」といった具合に。あらかじめ逃げ道を作っておく。

4000行ある備品管理リストを整理するコードを依頼した際。一部のセルにだけ全角スペースが混入していた。これが原因で計算エラーが多発したが。プロンプトに『入力値の前後の空白や全角スペースはあらかじめ削除して処理せよ』と一行追加しただけで。それまでの3時間の苦労が嘘のように解消された。AIは、こちらが指摘しない限り。目に見えない半角・全角の差すら考慮してくれない冷徹な存在だと痛感した瞬間だった。

AIコード解説で理解と品質向上

しかし、運良くコードが動いたとしても、そこで満足してはいけない。次にやるべきは、そのコードをClaudeに解説させることだ。「このコードが何をしているか。非エンジニアにもわかるように一行ずつ説明して」と頼む。これにより、AIがどのような論理で問題を解決したのかが可視化される。これは単なる学習のためではなく、次の修正依頼のための「文脈作り」として機能する。

解説を読ませることで。AI自身のメモリに「このユーザーはこの処理を重要視している」という情報が刻まれる。次に「前回のコードを参考に。今度は日付でフィルタリングする機能を追加して」と依頼した際。AIは以前のロジックと整合性を保ったまま機能を追加できる。このフィードバックループを回すことで。継ぎ接ぎだらけのスパゲッティプログラムになるのを防げる。

AIコードの癖を見抜き、対話で改善

また、解説を求めることで。自分が全く理解していないライブラリ(例えばpandasなど)の癖が見えてくる。エンジニアではないからといって、中身をブラックボックスにしておくのは危険だ。AIは時として、非常に効率の悪い、あるいは脆弱な方法でコードを書くことがある。それを「なぜこの方法を選んだのか」と問いただすことで。より洗練されたコードへと磨き上げることができる。

さらに、一度動いたコードに機能を追加し続けたら、5回目の修正で全く動かなくなった。原因を探るためにAIに説明を求めたところ。いつの間にか重複した処理が3つも生成されていた。AIも、対話を重ねるうちに自分の過去の発言と矛盾し始めることがある。一度立ち止まって『今のコードの全体像を整理して』と指示を出すことで。AIの『脳内』をリセットし、再び正常な思考に引き戻すことができた。

AIを「部下」にするマネジメント術:明確な指示と基礎知識

AIを使って業務を自動化する道のりは、プログラミングを学ぶ過程というよりも。マネジメントを学ぶ過程に近い。Claudeは、何百万冊もの本を読み。何億行ものコードを見てきた天才的な頭脳を持っている。しかし、その頭脳には「主体性」が一切ない。あなたが「何かいい感じにやって」と言えば。AIは「いい感じ」という言葉の平均値を計算し、どこにでもありそうな。

そしてあなたの目の前の課題には一切役に立たないゴミを出力する。

AIに渡すべきは、感情のこもった仕様書ではなく、冷徹なまでに詳細な「設計書」だ。入力が何で、出力が何で、エラーが起きたらどうするか。この3点を定義することから逃げてはいけない。面倒に感じるかもしれないが、手動でコピペを繰り返す残業時間に比べれば。プロンプトを練る15分など安い投資です。

AIは脅威でなく、対話で得る時間とスキル

まず、AIはあなたの仕事を奪う脅威ではなく、あなたの指示通りに動く。疲れを知らない労働力だ。正しく指示を出せるようになった時、あなたの目の前には、深夜のオフィスではなく。定時に退社して家族と囲む食卓や。自分のスキルを磨くための静かな時間が広がっているはずだ。AIという名の部下に、今日はどんな「期待」を伝えるだろうか。

月末の集計作業に費やしていた約10時間の残業が。本記事の手法(入力・出力・例外定義)を実践してから2〜3時間に削減できた(著者の体験)。

最後に、もしPythonの基本をもう少し体系的に学びたいなら。一冊だけ薄い入門書をデスクに置いておくといい。コードを完全に書ける必要はないが。AIが出してきたコードが「何系のライブラリを使っているか」を知るだけで。指示の解像度は飛躍的に高まる。AIとの対話は、そこからが本当のスタートです。

関連リンクとチェックリスト

6/04/excel-screenshot-1.webp” style=”max-width:100%;height:auto;”/>

たとえば「ExcelファイルAのシート1の1行目はヘッダーです。A列には顧客ID(半角数字)、B列には氏名(全角カナ)、C列には購入金額(半角数字)が入っています」といった具合です。この具体性が、AIがデータを正しく解釈する上で非常に重要になります。曖昧な表現は避け、数値や文字種まで細かく指定することで、AIは迷わずに処理を進めることができるのです。

次に、出力形式です。これも「どのような形式で、どこに何を出力してほしいか」を明確に伝えます。「処理結果を新しいExcelファイルBに出力してください。シート名は『集計結果』とし、A列に顧客ID、B列に氏名、C列に合計購入金額を記述してください。合計購入金額は小数点以下を切り捨ててください」といった具体的な指示が求められます。出力ファイルの名前、シート名、各列のデータ型、さらには計算方法や書式設定まで細かく指定することで、期待通りの結果を得られます。まるで、新入社員に初めて業務を教えるかのように、一つ一つの手順を丁寧に説明するイメージです。

そして、最も重要なのが「例外ケース」の指定です

そして、最も重要なのが「例外ケース」の指定です。これは、非エンジニアが見落としがちな点だと感じています。「もし顧客IDが空欄だった場合、その行はスキップしてエラーログに記録してください。購入金額がマイナスだった場合は、0として扱ってください。ファイルが見つからない場合は、ユーザーにエラーメッセージを表示して処理を中断してください」といったように、起こりうるトラブルとその対処法を事前にAIに教えておくのです。これにより、AIは予期せぬ事態にも適切に対応し、無駄なエラーで処理が止まることを防いでくれます。

これらの「入力・出力・例外」をプロンプトの冒頭に箇条書きでまとめて記述するようにしてから、私のAIとの格闘は劇的に改善しました。AIは、こちらが想像する以上に「言われたことしかやらない」優秀な部下なのだと痛感しました。人間が当たり前だと思っている「常識」や「暗黙の了解」は、AIには一切通用しないのです。だからこそ、私たちはAIに「人間が思考するプロセス」を教え込むのではなく、「何を、どうしてほしいか」を極限まで具体的に、かつ論理的に伝える努力が必要だと学びました。

この経験を通じて

この経験を通じて、プログラミングの「プの字」も知らなかった私でも、AIを自分の強力な味方につけることができると確信しました。エラーと格闘する深夜のオフィスで、何度も心が折れそうになりましたが、諦めずに試行錯誤を続けた結果、今ではAIが生成したコードで業務の一部を自動化できるようになりました。これは、プログラミングスキルがない私のような事務職でも、AIとの適切なコミュニケーションさえ学べば、新しい働き方を手に入れられるという希望の光だと感じています。

関連リンクとチェックリスト

学習サービスとアンケート

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →