👨‍🏫

抽象→具体の情報整理でClaudeCodeの精度を10倍上げる

に公開

はじめに

初めまして、ClaudeCodeに文字を打ち込むインターフェースと化しているmngstkrです!
普段はインフラ&バックエンド領域でエンジニアをしつつ、株式会社whitenでR&Dエンジニアもやらせてもらってます(ほとんど幽霊部員部ですが)
早速ですが皆さんClaudeCode使っていますよね!!!
基本的な使い方や激有能なtipsは他の記事に任せて、今回は数ヶ月使って見て気づいた私なりの使い方についてご紹介できればと思います。

TL;DR

最近は長い文章読むのが苦手になってきてTL;DRだけ見て分かった気になって失敗してます。
私と同じ轍を踏まないためにも是非最後まで読んでくださいね☆

情報整理が全て

  • Claude Codeへの指示は人への依頼と同じ。抽象的だと結果もブレる
  • でも最初から完璧には無理ゲー!そこで魔法のプロンプト↓

理解するまで、質問させる

  • Do not make any changes, until you have 95% confidence that you know what to build ask me follow up questions until you have that confidence
  • Claude側から必要な情報をヒアリングしてもらう

段階的に進める

  • いきなり完成品を求めない
  • 計画→設計→実装のフェーズに分ける

めっちゃ当たり前のこと言ってるけどback to the basicってことでこれが一番汎用性高いと思ってます。
じゃあ詳細にレッツゴー

情報整理が全て

「リファクタリングして」「この機能追加して」みたいな雑な指示を投げて数分待った挙げ句、なんとも言えないコードが出てきたこと経験したのは私だけではないはず(そうだよね?🥺)
でもそれはそのはず、後輩や同僚に「このAPI、いい感じに修正しといて」って言って想定通りのものが出来上がるのってそうそうないはず。
ClaudeCodeも同じで抽象的な指示ほど結果がブレると思ってます。
具体と抽象は良く逆ピラミッド構造で表現されますが、抽象の部分(底面)から具体の部分(頂点)に向けての三角形の面積をいかに良い塩梅にする=最適な情報の幅を決定するかが肝だと思っています。
イメージで言うと下記の画像になります

Context(面積)を増やすほど情報の幅は広がりますが一方でOutPutがブレやすくなります。
なので最適なアウトプットが得られる情報の幅で調整する必要がありますが、最初から完璧に情報整理するのは結構手間もかかるし割と無理ゲーです。そもそも何が必要な情報なのか分からないから、Claude Codeに頼んでるわけで。
そこで登場するのが次の「魔法のプロンプト」です。

理解するまで、質問させる

私が愛用しているのがこのプロンプトです。
Do not make any changes, until you have 95% confidence that you know what to build ask me follow up questions until you have that confidence
要するに「95%理解できるまで質問しろ」ということです。
海外のYoutuberがこのプロンプトを紹介していまして知って以来ずっと重宝しています。
https://youtu.be/LvsgCdWss4I?si=-tnf-WeTGReexM6n
これを冒頭に付け加えるとClaude Codeがヒアリングを開始してくれます。
ヒアリングを通じて先ほどの画像の情報の幅をClaudeCodeに決めさせるイメージです。

余談ですが、毎回このプロンプトをコピペするのはめんどくさいので私はRaycastと言うランチャーアプリのスニペット機能を使用しています。
Raycastについては私の友人&先輩エンジニアのいちごさんの記事がとても参考になるので導入していない方は是非みてみて下さい!
https://zenn.dev/ichigoooo/articles/5111e8a96a4c19

段階的に進める

最後に段階的に進めるです。具体的には計画→設計→実装の3段階に分けるようにしています。下記の図のように、各段階で情報の幅を段階的に狭めていくイメージです。

  • 計画フェーズでは、抽象度を高めに保ちながら全体像を整理します。
    • この時に前述したプロンプトを用いて母数となる情報の幅を決定します。
  • 設計フェーズでは、計画をベースにもう少し具体的な設計を考えます。
  • 実装フェーズで、ようやくコードを書いてもらいます。

この時点では情報の幅がかなり狭まっているので、ブレ幅も少なくなっています
この方法に変えてから、「なんか思ってたのと違う」みたいな失敗が格段に減りました。各段階でレビューして軌道修正できるし後から「ここ変更したい」となった時も、どの段階に戻ればいいかが明確です。

最後に

いかがでしたか?
今回紹介した内容をまとめると(抽象化すると)、結局は「コミュニケーション」の話に通ずるかと思います。
ClaudeCodeも一緒に働く相手として考えて、丁寧に情報を伝えて、段階的に進める。当たり前のことなんですが、AIだからといって雑に扱いがちになってしまうかと思います。
この記事で紹介したプロンプトや進め方は、ClaudeCode以外のLLMでも使えると思います。というか、普段の仕事でのコミュニケーションにも活かせる部分があるかもしれません。
ClaudeCodeの便利なTipsやサードパーティーツールは日々進化していますが一度立ち止まって根本的な部分を見直すとまた見えてくるものがあるかもしれません!
それでは良いClaudeCodeライフを!!!!!

Discussion