はじめに
Claude Codeを用いて約1ヶ月で個人開発(紹介はこちら)を行いました。自分では一切コードを書かずに、自然言語で指示をしてコードを書かせる、いわゆるVibe Codingで開発するスタイルです。Vibe Codingとは、AIに対して自然言語で「こんな感じで作って」と指示を出し、細かい実装はAIに任せる開発手法を指します。
Claude Codeを起動すると、通常はファイルの編集ごとに権限チェックがありますが、これをスキップするオプション--dangerously-skip-permissions
を使って開発をスムーズにしました。このオプションを使えば、一度指示を出しておけばタスクが完了するまで自動的に処理を進めてくれると考えていました。
しかしながら、実際にClaude Codeに任せて開発をしていく過程で、現段階のモデルでは完全に任せきりにするにはまだまだ早いということに気づきました。実際、数週間で終わる予定だった開発が、バグ修正などの手戻りのせいで1ヶ月かかってしまいました。
以下に自分がClaude Codeを開発で使う中で気づいた難しさを共有します。自分が開発の初期に知っておきたかった内容となっています。
Claude Codeで開発する際の難しさ5選
指示していない余計なことをする
例えば、「ログイン機能を実装して」という指示に対して、ログイン機能とユーザー登録機能を実装しようとしてきます。指示をしてタスクが完了するのを確認すると、不要なものが大量に生成されていることが何度もありました。
これは指示の仕方に注意が必要で、具体的かつ詳細な指示をしないと正確にタスクを実行できないためです。
公式にも指示の仕方について記載がありました。
リクエストは具体的に
「バグを修正して」ではなく
「間違った認証情報を入力した後にユーザーが空白画面を見るログインバグを修正して」と試してください
既存のコードを読まないで実装をする
すでに実装してある機能を利用せずに、同じ機能を別途実装することがありました。
開発の初期にはこのようなことは起きなかったのですが、開発が進むにつれてコード量も増え、Claude Codeのほうも全体を把握し続けることが難しくなってきたようです。
そのため、具体的にこの機能を再利用するように指示に含めたり、定期的にこのあたりのコードを読んでから作業をするようにと指示するようにしました。このことから、どのあたりにどのような機能が実装されているかは自身で覚えているか、適切なドキュメントに記載しておく必要があります。
secretをpushしようとする
envの内容を平気でpushしようとします。(pushしてしまったこともあり、envの内容を作り直したことも)CLAUDE.mdに記載しても直らなかったので、git-secretsで自動で防ぐようにしました。
testが通っていないのに強制的にpushする
huskyによるpre-commitやpre-push時でのlint, format, testで修正が終わっていなくても、–no-verifyオプションを使って強制的にpushしようとすることがあります。このほかにもエラーを修正するのではなく、エラーを握りつぶす処理を書くようなこともあります。
現時点では、タスクを実行するために他の事柄については一時的な対症療法をとる挙動がしばしば見られます。タスクの難易度が高かったり、何度もエラーが出る際にこのような挙動を取る確率が高く感じられます。
デザインの細かい調整ができない
大まかなデザインは作成してくれますが、まだ細かい調整はできませんでした。要素が被っていたり、はみ出していることを指摘しても見当違いの修正をしたりで結局直せずじまいということがよくありました。このような場合は具体的に修正したい要素のclassなど指定して指示をするとうまくいきました。
これはコードから作られる画面自体をClaude Codeが把握しているわけではないと推測できます。まだ試していませんが、ブラウザ画面を扱えるPlaywright MCPなどを活用すれば、具体的な指示をせずともうまくやってくれるようになると期待しています。
今最初から開発するならどうするか?
以上のような難しさに対処するために以下のStepで開発を進めます。
- 要件定義を事前に入念に行う
- CLAUDE.mdを作成する
- 指示は具体的かつ詳細にする
- レビューをしっかりと行う
要件定義を事前に入念に行う
Claude Codeと協力しつつ、要件定義を行います。できるだけ詳細をつめて作業の際に、選択肢の余地がでないようにします。これは後のタスク指示の際に、具体的かつ詳細な文章で指示をするのに役立ちます。要件定義した内容はドキュメントとしてmdファイルで保存しておくとClaude Codeに読み込ませやすいです。
CLAUDE.mdを作成する
記事の前半の「Claude Codeで開発する際の難しさ5選」で問題となった内容などを記載し意図しない動作を防ぎます。
しかしながら、Claude CodeはCLAUDE.mdの内容をすぐに忘れるので、毎タスクごとに読み込ませるように以下の記事の内容をもとに読み込むように対策します。

指示は具体的かつ詳細にする
省略せずに適切な指示を出すことを心がけます。要件定義をしっかりと行なっていれば毎回ゼロから考える必要はなく負担は軽減されるはずです。
レビューをしっかりと行う
生成されたコードを信用しすぎずに必ず確認するようにします。自分だけでなく、Claude Code自身や別のAgent(Copilotなど)にレビューさせるのも手です。
おわりに
本記事では、Claude Codeで個人開発する中で気づいた難しさを紹介し、対策や今から開発するならどうするかを具体的に説明しました。
現時点での結論として、Claude CodeによるVibe Codingでは開発を完全に任せることはできないということが言えます。
自身でプロジェクトに関して要件定義、全体の把握、適切な指示、コードの読解、レビューなどを行なっていく必要は依然としてあり、これらは開発を進めていく上で重要です。