PaPoo
cover

同じリポジトリで複数案を並走させる

「1つの作業場所で少しずつ直せばいい」と思っていると、だいたい途中でぐちゃる。
Claude Code でも同じで、案を分けて試すなら、同じリポジトリの中で作業場所を分けて走らせるほうが圧倒的に扱いやすい。別作業場所で比較する、案を分けて試す、というやり方だ。

ここでの狙いは単純で、A案とB案を同時に触って、あとから見比べることだ。たとえば文書の章立てを2通り試す、ファイル整理のルールを2案作る、コード修正の方針を2つ並べて判断する。ひとつの案をいじっては戻し、またいじっては戻し、をやるよりずっと速い。しかも「どっちがよかったか」を diff で見やすい。

Claude Code は会話の文脈を使って作業するので、ひとつのセッションに何案も詰め込むと、途中から話が濁る。最初は筋がよくても、後半で別の方針が混じって、結局どれも中途半端になる。筆者は以前、1つの作業場所で「案Aの文面」「案Bの文面」「やっぱり章の順番も変更」を全部口頭でやって、最後にどれが本命か自分でもわからなくなった。あれは時間の無駄だった。分けておけば済んだ話だ。

やり方は難しくない。肝は、同じリポジトリを複製して別ディレクトリに置き、各作業場所で別案を進めることだ。Git が入っているなら、単なるコピーより git worktree が素直だ。重複を最小限にしつつ、同じ履歴を見ながら別ブランチで試せる。

たとえば、既存のリポジトリが project にあるとして、A案とB案を別作業場所で動かすならこんな形になる。

cd project
git worktree add ../project-a -b try-a
git worktree add ../project-b -b try-b

これで ../project-a../project-b が別の作業場所になる。どちらも同じリポジトリ由来だが、変更は別々に進む。Claude Code はそれぞれのディレクトリで起動して、別々の案を詰める。

cd ../project-a
claude

cd ../project-b
claude

A案では「読みやすさ優先」、B案では「処理速度優先」のように、最初に方針を固定して渡すといい。曖昧に「いい感じにして」と投げるより、比較の軸を先に決めるほうが、あとで見比べたときに判断しやすい。

たとえば文章作成なら、こんな依頼の分け方が効く。

この作業場所では、見出しを増やして読みやすさ優先で直してください。
本文の意味は変えず、冗長な表現だけ整理してください。

もう一方ではこうする。

この作業場所では、見出しは少なめにして、全体を短く締めてください。
重複する説明を削って、要点が先に出る形にしてください。

これであとから2つの差分を見れば、どちらのほうが実務に向くかが見える。Claude Code に考えさせるというより、判断材料を並べる感覚に近い。

コードでも同じだ。たとえばある関数の直し方が2通りあるとする。ひとつは小さく直す案、もうひとつは構造から整理する案。ひとつの作業場所で混ぜると、途中で方針が変わったことが diff に滲む。別作業場所なら、A案は保守的、B案は大胆、というふうにきれいに分かれる。

ここで大事なのは、案を増やしすぎないことだ。3案以上を並走させると、比較する前に自分が疲れる。よほど迷っているときでも、まずは2案で十分だ。片方は「現状を崩さない案」、もう片方は「少し攻めた案」。この組み合わせがいちばん判断しやすい。

注意点もある。git worktree は便利だが、同じファイルを同時に雑に触ると混乱する。たとえば設定ファイルやローカルの生成物を、どちらの作業場所でも同じ感覚でいじると、どっちの案に入れた変更か見失う。特にドキュメントや原稿では、画像や添付ファイルの置き場が共通だと地味に事故る。作業場所ごとに出力先を分けるか、少なくともファイル名で案を区別しておくべきだ。

もうひとつ、Claude Code に片方の案の内容をそのまま別案へ持ち込ませないことだ。人間が見比べたいのに、A案の出力をB案に混ぜたら意味がない。比較したいのは「別々に考えた結果」であって、後から合わせた折衷案ではない。折衷案が欲しいなら、最後に自分で選んだうえで一度だけ統合を頼めばいい。

筆者はこの分け方を、コード修正よりむしろ文書整理でよく使う。たとえば長い手順書を、A案では「初学者向けに説明を厚くする」、B案では「慣れている人向けに短くする」。同じ原稿でも、作業場所を分けるだけで読み比べが楽になる。混ざった状態で手直しするより、ずっと判断が速い。

Claude Code の強みは、単に編集してくれることではない。案を切り分けて、同じ土台から別の方向へ広げられるところにある。そこを使うなら、ひとつの場所で我慢して進めるより、最初から分岐させたほうがいい。

実務での使い方は、こんな順番が手堅い。

# 元のリポジトリで
git worktree add ../repo-a -b draft-a
git worktree add ../repo-b -b draft-b

それぞれの作業場所で Claude Code を起動し、案ごとに方針を明示する。終わったら、差分を見比べて、採用する案だけを元のブランチに取り込む。必要なら、採用した案をベースに最後の微調整だけもう一度 Claude Code に頼めばいい。

このやり方は、開発者だけのものではない。ファイル整理でも、原稿作成でも、議事録整形でも効く。ひとつの場所でうだうだ直すより、案を分けて試したほうが、だいたい早い。頭の中の迷いをディレクトリに分ける、そんな感覚で使うのがちょうどいい。

関連 TIPS

同じ著者の記事