
実践ワークフロー:調べる・直す・分けて進める
プランモード、サブエージェント、worktree、PR作成まで、日常の作業に沿った進め方。
変更の前に計画を見る、調査を別の文脈に逃がす、並行作業を分離する、という3つの工夫を中心に整理します。
変更の前に、計画を見る(プランモード)
変更をディスクに書き込む前に確認したいときは、プランモードを使います。Claudeはファイルを読んで計画を提案しますが、承認するまで編集はしません。起動時にclaude --permission-mode planで指定するか、セッション中にShift+Tabでモードを切り替えて、ステータスバーに「⏸ plan mode on」と出ていることを確認します。
claude --permission-mode plan大きな変更ほど、先に計画を見る価値があります。計画の段階で方向がずれていれば、直すのは文章だけで済みます。
調査は、サブエージェントに任せる
大きなコードベースを調べると、ファイルの読み込みで会話の文脈が埋まっていきます。調査をサブエージェントに任せると、読み込みはそのエージェントの文脈の中で行われ、メインの会話には要約だけが戻ります。
use a subagent to investigate how our auth system handles token refreshバグの修正:再現、原因、修正、確認
修正の依頼には、再現するコマンドとスタックトレースを添えます。流れは4段階です。(1)エラーと再現手順を渡す、(2)修正案を複数挙げてもらう、(3)選んだ案を適用してもらう、(4)テストを実行して確認する。(2)を挟むと、Claudeが最初に思いついた1案をそのまま採用するのを避けられます。確認の段階では、Claudeの「直りました」ではなく、実行したテストの結果を見ます。
テストの追加
まずテストされていない関数を探してもらい、次にテストを書いてもらい、最後に境界値のテストを足してもらいます。Claudeは既存のテストファイルを見て、フレームワークや書き方をそろえようとします。何を確認したいテストなのかを具体的に伝えるほど、期待に近いものが出ます。
find functions in NotificationsService.swift that are not covered by tests
add tests for the notification service
add test cases for edge conditions in the notification service
run the new tests and fix any failures並行作業は、worktreeで分ける
1つの機能を作りながら、別のバグの修正も進めたいときは、Gitのworktreeを使います。--worktreeを付けて起動すると、専用のチェックアウトとブランチが作られ、編集が衝突しません。別の端末で別の名前を指定すれば、もう1つ独立したセッションが始まります。worktreeは既存のコミットから作られるため、コミットが1つもないリポジトリでは「Failed to resolve base branch "HEAD"」で失敗します。
claude --worktree feature-authプルリクエストを作る
変更が終わったら、「create a pr」と頼むだけでもPRを作れます。手順を分けるなら、まず変更の要約を頼み、次にPRを作らせ、最後に説明文を補強します。生成されたPRは、提出する前に必ず読みます。リスクや注意点を挙げてもらうと、見落としに気づきやすくなります。あとで作業を探すときは、claude --from-pr 1234のようにPR番号を指定します。
summarize the changes I've made to the authentication module
create a pr
enhance the PR description with more context about the security improvements繰り返す作業:スクリプト、スケジュール
-pで対話なしに実行すれば、CIやコミット前のフックから呼べます。定期的に回したい作業には、クラウドで動くルーチン、デスクトップアプリのスケジュールタスク、GitHub Actions、セッション内で繰り返す/loopがあります。無人で動く作業は質問を返せないので、成功の基準と、結果の出し先をプロンプトにはっきり書きます。
仕上げに、確かめる
どのワークフローでも、最後は差分とテストの結果を自分で読みます。「直りました」というClaudeの報告ではなく、実際に実行したテストの出力と、git diffで見える変更の範囲を確かめます。意図しないファイルが変わっていないか、依存が増えていないかも、ここで見ます。
git diff
git status --short
npm test