☀️

Claude Codeを1年使って気づいた、朝のPlan Modeが一番生産性に効く理由

に公開

以前、「1年前の自分へ -- Claude Codeはこう始めろ」という記事を書きました。おかげさまで9いいねをいただきました(控えめに言えば大ヒット、正直に言えばまあそんなものです)。

あの記事で「朝30分のPlan Modeで午後の手戻りが消える」と書きました。今もその結論は変わっていません。ただ、使い続けるうちに「なぜ効くのか」の理解が変わりました。

Plan Modeが生産性に効く本当の理由は、手戻りの削減ではありません。自分自身がHuman in the Loopになる構造を作れるからです。

AIに「いい感じにやって」と言い続けた結果

Claude Code を使い始めた当初、私は「いい感じに実装して」を連発していました。AIが賢いのだから、細かく指示しなくても良いコードが出てくるだろうと。

実際、7割の確率で意図通りのコードが出てきます。問題は残りの3割です。JWTの保存方式が違う。ORMの選択が自分の想定と違う。認証フローの設計が微妙にずれている。午後3時にこれに気づくと3時間溶けます。私は実際に溶かしました。複数回。

これは要するに、Human in the Loopが機能していない状態です。AIが計画し、AIが実装し、人間は結果を眺めて「違う、そうじゃない」と言う。レビューが事後になっているから、修正コストが高くなる。

Plan Mode = 事前にループに入る仕組み

Shift+Tab で入るPlan Modeは、コード生成をオフにするモードです。ファイルは変更しません。コマンドも実行しません。ひたすら「何を、どういう順番で、どう作るか」を詰める対話をします。

> (Plan Mode) 今日はユーザー認証機能を実装したい。
> メール/パスワード認証、Google OAuth、パスワードリセットの3つ。
> 優先度と実装順を提案して。

Claude Code は設計判断を引き出してきます。「JWTの保存先はどこにしますか?」「メール送信は何を使いますか?」「Google OAuthのコールバックURLは?」

この問答が、事前のHuman in the Loopです。AIが計画を出し、人間が「そこはhttpOnly Cookieで」「メールはResendで」と判断を挟む。実装が始まる前に設計の選択肢が全て明示され、合意が取れている状態を作ります。

午後3時の「違う、そうじゃない」が、朝9時の「こっちにして」に変わる。修正コストが3時間から30秒になる。やっていることはただのフロントローディングですが、これをAIとの対話で強制的に回すのがPlan Modeの本質です。

Plan Modeの出力はファイルとして残る

ここで見落とされがちな利点があります。Plan Modeでの問答は、セッションログとして残ります。

これが地味に効きます。翌日「昨日どこまでやったっけ」を思い出す必要がない。1週間後に「今週何を設計判断したっけ」を振り返れる。「なぜこの設計にしたのか」の意思決定ログが自動的に蓄積される。

私は1日の終わりに、その日の作業サマリーを docs/daily-log.md に追記しています。

> 今日の作業を要約して。
> 完了したこと、明日やるべきこと、未解決の課題を
> docs/daily-log.md に追記して。

このログと朝のPlan Modeの組み合わせが、週次の振り返りをほぼ自動化してくれます。金曜日に daily-log.md を読み返すだけで、「今週の設計判断で一番インパクトが大きかったのは何か」「来週に持ち越す負債は何か」が整理できます。スプリントレトロの準備が5分で終わる。以前は金曜の午後に1時間かけて「今週何やったっけ」を思い出していたので、この差は大きいです。

実装中のループ:タスク単位で /clear する

Plan Modeで計画が決まったら実装に入ります。ここでもう一つHuman in the Loopを回すポイントがあります。

タスクが1つ終わったら /clear する。

認証機能を実装したセッションを、そのままダッシュボードUIの実装に引きずると「コンテキスト汚染」が起きます。認証の文脈がUI実装に混入して、意図しないインポートや参照が生まれます。

「前の文脈が消えるのはもったいない」と思うかもしれませんが、本当に必要な文脈はコードベースに書かれています。セッションに残っている文脈は大半が試行錯誤の残骸です。ゴミを引き継いで「なぜかeslintエラーが消えない」と30分悩むよりも、クリーンな状態から始めるほうが速い。私はこの30分を3回経験して学びました。学習能力があるのか疑わしいですが、3回目でようやく /clear を習慣にしました。

「計画に30分使うのは無駄では」問題

初期にこの疑問がありました。3週間後に消えました。

Plan Modeの30分は、午後の手戻りを消すだけではありません。1日のタスクが機能単位で分解されるので、「今日どこまで進んだか」が明確になります。進捗が見えると、夕方のレビューで差分を自分でチェックする気力が残ります。日次ログに書くことも明確になります。翌朝のPlan Modeも速くなります。

朝の30分が午後を救い、午後が夕方のレビューを支え、夕方のログが翌朝のPlan Modeに注入される。1日の開発フロー全体がループとして回り始めます。

派手な話ではありません。Shift+Tabを押して30分対話するだけです。ただ、Claude Codeで一番生産性に効いたのは、高度なプロンプトでもマルチエージェントでもなく、この地味なループでした。


1日の開発フロー(セッション管理・コンテキスト設計・テスト戦略まで)の詳細は本にまとめています。

📕 実践Claude Code -- コンテキストエンジニアリングで開発が変わる

GitHubで編集を提案

Discussion