Claude Codeによる自動プログラミングの実例に基づき、プロンプトのテクニックを共有します

この記事では、実際のケースを通じて、Claude Codeの実使用例を皆さんに共有します。共有する前に、まず簡単な調査をしてみましょう。
元の要件:ある有料ユーザーが、私の記事に更新日時を追加してほしいと希望していました。
この要件は一見、実装が難しいように見えます。なぜなら、私のウェブサイトの記事はデータベースに保存されておらず、すべてnext.jsのSSGで構築されているからです。そもそも更新日時がありません。
ここでのテクニックは:問題を解決する際に、元の要件をそのままClaude Codeに与えないことです。理由は以下の通りです:
1、元の要件は比較的曖昧で、AIが誤解する可能性があります。もし誤解した場合、最終的に日時は追加されるかもしれませんが、その日時は信頼できないかもしれません。
2、Claude Codeのトークン消費は本当に非常に高価です。そのため、曖昧な要件は大量のトークンを無意味に消費する可能性があります。
したがって、元の要件を一度分解する必要があります。まずdeepseekで相談してみたところ、deepseekは2つの解決策を提案してくれました:
1、ファイルのビルド時間。毎回ビルドする際にファイルのビルド時間を取得する必要がありますが、turbopackのバンドル戦略は少し異なり、ビルドするたびにファイルのハッシュ値が変更されるため、このビルド時間は信頼できないかもしれません。
2、gitコミットの時間。これが比較的信頼できると思いました。
大まかな解決方向が決まったので、私はこの簡単なプロンプトを作成しました:すべての.mdx記事のヘッダーにgitコミット時間をコンパイルする
Claude Codeは比較的信頼できます。プロンプトが正確であれば、基本的に問題はなく、ガンガン実行してくれます。
7ドルのクレジットを消費し、約20分かけて、ついに実行に成功しました。
予想通り、予想外のことが起こりました。なんと171個のファイルの変更をスキップしてしまったのです。
ここで非常に厄介な点は、実際にスキップされたファイルは、単に追加のpassパラメータが渡されているだけで、他は完全に同じだということです。
<PostLayout pass>...しかし、AIは柔軟性に欠け、この追加パラメータを完全に異なるカスタムコンポーネントと定義してしまい、処理をスキップしてしまいました ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/あなたのパス/page.mdx');
return (
{children}
);
}しかし、実際に私が必要としていた結果はこうであり、実行結果は完全に一致するはずでした。
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
{children}
);
}そしてこの時、私はプロンプトで失敗してしまいました。
私は再びプロンプトを入力しました:上記と同じ方法でスキップされた171個のファイルをリファクタリングしてください
この表現は、よく考えてみると少し曖昧です。なぜなら、Claude Codeはすでに提案をくれていましたが、私はその提案を認めていませんでした。私の意図は、すでに修正された数百のファイルと同じ方法でスキップされたファイルを修正することでしたが、実行過程で、AIは「上記で提案されたその方法」と理解してしまったのです。
この曖昧さにより、AIは私が望まない方法でガンガン20分間実行し、途中で2回エラーを自己修復し、猛烈に私のトークンを消費し、二つの解釈が衝突してエラーを引き起こしました。
最終的に、私はこの実行を放棄せざるを得ず、再度私の意図を明確に伝え直しました。
まとめ
1、プロンプトには、比較的安定した正確な解決策を含めるのが最善です。AIに考えさせることは少なければ少ないほど良く、これにより幻覚率を減らすことができます。
2、要件のプロンプトには曖昧さがあってはいけません。曖昧さはエラーを引き起こしやすく、Claude Codeは最終的に修復できるかもしれませんが、これにより大量のトークン消費が発生します。また、LLMは予測メカニズムに基づいて結果を生成するため、初期の誤読や曖昧さは、その後のすべてのステップを間違った方向に進ませることになり、AIは論理的一貫性を保とうとし、存在しないものを生成することもあります。書けば書くほど問題が大きくなり、開発者のレビュー難易度も上がります。もしあなたがAIの幻覚に騙されてしまったら、深刻な結果を招くことになります。
3、自然言語の制約力はコードほど正確ではありません。プロンプトにファイル名、コード変数、コード固有の用語、専門用語などを含めることで、Claude Codeの幻覚を大幅に減らすことができます。





