🎓 生成AI活用の勉強会・無料相談・最新情報をお届けします
オンライン勉強会の案内や、無料相談、ChatGPT・Claude活用の具体例をメールでお届けします。登録は無料、いつでも解除できます。
Claude Codeを使い始めたばかりだと、何をどう指示すればいいのか戸惑いますよね。単に「コード書いて」と言ってもうまくいきませんし、あまり詳しく説明しすぎると余計なことをされたり、逆に不十分な結果が返ってきたり。
実は、Claude Codeへの指示には「コツ」があります。適切に指示を出すことで、返ってくるコードの質が劇的に変わります。私が実際に使ってみたところ、同じ内容でも指示の方法次第で、修正が最小限で済むコードがすぐに手に入ることもあれば、何度も修正が必要になることもあります。平均して、良い指示を出せば初回から70〜80%の精度でやりたいことが実現できます。悪い指示だと20〜30%程度に落ち込みます。
そこで今回は、Claude Codeを毎日使い込んでいる私が、「実際にうまくいった指示パターン」を7つ厳選して紹介します。これらを覚えておくと、あなたのコード生成タスクは確実に効率化します。
パターン1:目的を最初に明確にする
なぜ「やりたいこと」を最初に言うのか
Claude Codeに指示を出すとき、多くの人が「こういう機能を持つコードをください」と直結的に頼みます。でも、実は一番大事なのは「そのコードで何を達成したいのか」という背景情報です。
背景を知ると、Claude Codeは単なる機能実装だけでなく、より実用的な設計を提案してくれます。例えば、「CSV形式のデータを処理するスクリプト」と言うのと、「営業記録を毎日自動集計して、月間売上目標との進捗を把握するスクリプト」と言うのでは、返ってくるコードが全く違います。後者の場合、エラーハンドリングやログ出力、重複排除といった実務的な要素が自動的に組み込まれます。
実際の指示例
悪い例:
Pythonで複数のHTMLファイルをスクレイピングするコードを書いてください
良い例:
Pythonで複数のHTMLファイルをスクレイピングしたいです。目的は、競合他社の商品情報(商品名、価格、説明文)を毎週自動で取得して、CSVに保存し、価格変動を監視することです。重複排除とエラーハンドリングは必須です。
良い例では、Claude Codeが「価格変動を監視する」という目的を理解しているので、データベース化のメリットや、定期実行の方法まで提案してくれる可能性が高まります。
パターン2:入力と出力を具体的に示す
データの形は言葉より例で伝える
Claude Codeに「データ処理をしてほしい」と言うだけでは、入力形式が曖昧です。実際のデータサンプルを1〜2件、そのまま提示することで、一気に精度が上がります。
例えば、JSONデータを処理する場合、「ユーザー情報を抽出してください」と言うより、実際のJSON構造を示す方が、Claude Codeは正確な処理コードを書けます。これに要する時間はわずか30秒〜1分ですが、修正が必要になる確率を50%以上削減できます。
実際の指示例
悪い例:
JSONファイルから顧客の名前とメールアドレスを抽出してください
良い例:
下記のようなJSON構造のファイルから、顧客の名前とメールアドレスを抽出してCSVに出力してください。
入力例:
{
"customers": [
{"id": 101, "name": "田中太郎", "email": "tanaka@example.com", "status": "active"},
{"id": 102, "name": "鈴木花子", "email": "suzuki@example.com", "status": "inactive"}
]
}
出力形式:
名前,メールアドレス
田中太郎,tanaka@example.com
鈴木花子,suzuki@example.com
良い例では、入力と出力の両方が明確です。これにより、Claude Codeは迷わずにコードを生成でき、初回の精度は90%以上になります。
パターン3:制約条件を先に伝える
「〜してはいけない」が重要
Claude Codeに何かを頼むとき、実は「やってはいけないこと」を先に言う方が、効率がいいです。例えば、「外部ライブラリを使わずに」「ファイルを上書きしないで」「実行時間は10秒以内に」といった制約は、コード設計に大きく影響します。
これらを後から「あ、そういえば…」と追加すると、せっかく生成されたコードが使えなくなり、ゼロから書き直しになることも珍しくありません。
実際の指示例
悪い例:
Excelファイルを読み込んで加工するPythonコードをください
良い例:
Excelファイルを読み込んで加工するPythonコードをください。
制約条件:
- 外部ライブラリはPythonの標準ライブラリのみ(pandas, openpyxlは不可)
- 元のExcelファイルは上書きしない。新しいファイルに出力する
- 実行環境はPython 3.8以上
- 処理対象は最大1万行のデータ
- 月1回の月末実行を想定しているので、ログは出力しなくていい
良い例の場合、Claude Codeは「pandasが使えない」という時点で、別のアプローチ(csvモジュールやopenpyxlなど)を検討します。これにより、回数と時間の節約が見込めます。
パターン4:ステップバイステップで指示を分割する
複雑な要望は分けて伝える
複数の処理を一度に頼むと、Claude Codeの精度が落ちます。特に「データ取得」→「加工」→「分析」→「グラフ化」→「メール送信」みたいに、5段階以上のステップがある場合、一気に頼むと各ステップで細かなズレが生まれます。
代わりに、1段階目のコードを完成させて、それを確認してから次に進むという方法が、トータルの時間短縮につながります。一見、時間がかかるように見えますが、修正ループが減るため、実際には30〜50%の時間削減が可能です。
実際の指示の流れ
Step 1(第1回目の指示):
CSVファイルから顧客データを読み込み、以下の内容で新しいCSVに出力するPythonコードを書いてください。
- 読み込み対象:customer_data.csv(id,name,email,sales の4列)
- 出力形式:clean_data.csv(同じ4列、ただし空白行は削除)
- エラーハンドリング:ファイルが見つからない場合はエラーメッセージを表示
Step 1で生成されたコードが満足できるものになったら、次のステップに進みます。
Step 2(第2回目の指示):
先ほどのコードの後に、さらに以下の処理を追加してください:
- clean_data.csvから「sales」が100以上のレコードのみを抽出
- 合計売上を計算して画面に表示
このように分割することで、各ステップでの精度が85〜95%になり、修正がほぼ不要になります。
パターン5:参考資料やリファレンスを参照させる
「こんな感じで」という例を見せる力
「こういう形のコードが欲しい」という説明より、実際に動いているコード例や、公式ドキュメントの該当部分をClaude Codeに見せる方が、確実です。Claude Codeは参考資料を理解して、それに合わせたコード生成が得意です。
特に、既に存在する自分のコードベースから「このファイルと同じスタイルで」と指示すると、プロジェクト全体の一貫性が保たれ、後々の統合が簡単になります。
実際の指示例
例:既存コードの参照
以下のcolorizer.pyのコーディングスタイル(関数の名付け、エラーハンドリング、コメント)に合わせて、新しい画像フィルター機能を追加してください。
---(既存ファイルの内容ペースト)---
新機能の仕様:
- 入力:PIL画像オブジェクト
- 出力:セピア色に変換した画像
- エラー時:ColorProcessingErrorを発生させる
既存コードを見ると、Claude Codeはその命名規則やエラーハンドリングの方法、ログ出力のスタイルなどを自動的に学習します。その結果、新しい関数も既存コードと違和感なく統合できるコードが生成されます。
パターン6:失敗パターンを共有する
「こうなったら困る」を先に伝える
Claude Codeに「どう書いちゃダメか」を示すことで、予期しない動作を防げます。例えば、「このパターンでエラーが出たことがある」「このライブラリのバージョン違いで動かなくなった」といった過去のトラブルを事前に伝えておくと、それを避けたコードが生成されます。
これは特に、チームで同じプロジェクトに複数のAIを使わせる場合に効果的です。「あ、これ前に同じ問題が起きたな」という事態を繰り返し防げます。
実際の指示例
良い例:
ユーザーが入力したテキストをデータベースに保存するコードをください。
注意点(以前のトラブル):
- この機能はMySQL 5.7では文字化けが起きた。8.0を前提に
- 同期的なDB保存では時々タイムアウトする。非同期処理で
- サニタイズが不完全だとSQLインジェクションの脆弱性がある。必ずパラメータ化クエリで
これらを踏まえたうえでコードを書いてください。
失敗パターンを共有することで、Claude Codeは「この人は経験豊富だ」と判断し、より防御的でロバストなコードを生成します。結果、本番環境での予期しないバグが70〜80%減少します。
パターン7:性能・品質指標を数値で指定する
「速い」「正確」は相対的。数字で指定しよう
「高速に処理できるコードをください」は曖昧です。代わりに、「1万件のデータを3秒以内に処理」など、具体的な数値目標を指定すると、Claude Codeはそれに向けた最適なアルゴリズムを選択します。
同様に、精度についても「エラー率は1%未満」「99%の正確性」といった指標があると、エラーハンドリングの充実度が自動的に上がります。
実際の指示例
悪い例:
大量のファイルをスピーディに処理するコードをください
良い例:
ローカルディレクトリにある10,000個のテキストファイルを処理するコードをください。
性能指標:
- 処理時間:30秒以内(ファイルサイズ平均1KB)
- メモリ使用量:500MB以下
- エラー率:0.1%未満(読み込み失敗時はスキップ)
環境:
- CPU:4コア、RAM:8GB
- Python 3.10+
良い例では、Claude Codeが「10,000ファイルを30秒」という制約から、マルチプロセッシングやキャッシング、バッチ処理といった最適化手法を判断できます。修正なしで本番環境で動く確率が大幅に上がります。
7つのパターンを組み合わせた実例
全パターンを使った完全な指示
これまでの7パターンを全て組み合わせた、現実的な指示例を紹介します。
【目的】
毎週月曜朝7時に、Amazon商品情報を自動スクレイピングして、価格変動を追跡するシステムです。
【現在の状況】
- 既存の価格DB(SQLite)に商品ID、名前、価格、更新日時が保存されている
- 毎週、competitor_products.csvから対象商品リスト(ASIN、URL)を読み込む
【実装してほしい内容】
1. competitor_products.csvを読む
2. 各商品のAmazonページをスクレイピング(BeautifulSoup使用OK)
3. 現在の価格をDB内の前回価格と比較
4. 価格変動があれば、