📝

Cline の Plan Mode を使って手戻りを防ごう!

2025/03/06に公開

TL;DR

  • Plan Modeを活用しよう: Plan Mode を使って要件を固めて手戻りを防ぐ
  • Cline はタスクランナー: Cline は自然言語スクリプトを実行するタスクランナーとして捉えると分かりやすい。Plan Mode は dry-run の役割

はじめに

ここ最近話題になっている Cline ですが、触れた方の中には「これはパラダイムが変わる」と感じた人も多いのではないでしょうか。

私も2024年11月中頃に初めて Cline を使い、その新しい体験と馬力の高さに驚きました。

しかし、いざ Cline を使ってみると、Cline に実装を任せても意図通りの成果物ができず、大量の手戻りが発生しがちです。

そこで重要になってくるのが、 「Plan Mode」 という動作モードです。

Cline は「Plan Mode」と「Act Mode」という二つの動作モードに分かれていて、「Plan Mode」は実行前の計画を行うモードになります。


Cline のインプットの右下に、Plan/Act mode の切替ボタンがある

この記事では、Cline の「Plan Mode」に焦点を当て、どのように使えばいいかを紹介します。

私のClineの使い方

私がClineでコード開発をする際のワークフローは、概ね以下のような形です。

1. Plan Modeでの対話

まず最初に「何を作りたいのか」の意思を Cline に伝えて、Cline が提案する実装計画をレビューします。このフローを Plan Mode で行います。

多くの場合、コード例の概観も示してくれるので、実装前にコードレビューするようなイメージです。

私: "ログイン機能を実装してください。メールアドレスとパスワードによる認証で、成功したらダッシュボードページにリダイレクトするものが欲しいです。"

Cline: "ログイン機能の実装について理解しました。以下のような実装はいかがでしょうか?

1. Redux Toolkitを使用して認証状態を管理
2. ログインフォームコンポーネントの作成
3. バリデーション機能の実装
4. 認証APIとの連携
5. リダイレクト処理の実装

具体的なコードとしては...

\`\`\`tsx
// AuthContext.tsx - React Contextによる認証状態管理
const AuthContext = createContext<AuthContextType | undefined>(undefined);

export const AuthProvider = ({ children }: { children: ReactNode }) => {
(後略)
\`\`\`

私: "Redux Toolkitではなく、React Contextを使いたいです。また、フォームライブラリはReact Hook Formを使用したいです。"

Cline: "了解しました。React ContextとReact Hook Formを使用したログイン機能の実装案を考えます..."

このように対話を重ねて実装計画をブラッシュアップします。

2. Act Modeへの切り替え

実装計画に納得したら、Act Modeに切り替えて実際の実装を行ってもらいます。このようにすることで、計画に基づいた効率的な実装が可能になります。

私: [Act Modeに切り替え]

Cline: [ファイル作成、編集などの実際の操作を行う]

なぜこのようなフローなのか

前述した開発フローを図解すると、以下のようになります:

まず指示を入力し、AIに計画を立ててもらいます。その計画が不十分なら指示を修正し、満足できる計画が得られたらAct Modeに切り替えて実際に実行します。

このフローをより理解するには、Clineを「自然言語スクリプトを実行するタスクランナー」として捉えると分かりやすいです。

Clineを自然言語タスクランナーとして捉える

Cline はユーザーが打ち込んだ自然言語の文章を「タスク」として捉えます。

そのタスクが記述された自然言語を、あたかもスクリプトのように実行するのが Cline です。

Cline のタスク中心の設計に関しては、下記の記事に詳しく書いていますので、ご興味がある方はご覧ください。

https://zenn.dev/heavenosk/articles/2bf67f1db8f437

Cline を自然言語スクリプトのタスクランナーだと捉えると Plan Mode / Act Mode は下記のように捉えることができます。

Plan Mode = Dry-Run

Clineの「Plan Mode」は「dry-run」(実行シミュレーション)に相当します。実際に変更を加えることなく、「何をするか」を確認できるフェーズです。

従来のシェルスクリプトでも、実行前に-nフラグなどでdry-runを行い、意図した動作をするか確認することがあります。この「実行せずに計画だけを確認する」という概念がdry-runです。Clineでも同様に、実際の変更を加える前に計画を確認できます。

Act Mode = Run

「Act Mode」は実際にスクリプトを実行するフェーズです。ファイル操作やコマンド実行など、実際の変更が行われます。通常のスクリプト実行(Run)フェーズに相当します。

このように「計画→実行」という流れで考えると、Clineの2つのモードを直感的に理解しやすいと思います。

まとめ

Clineを自然言語タスクランナーとして捉え、そのモード切替を以下のように理解すると効果的に活用できます:

  • Plan Mode(計画フェーズ)
    • dry-runのように実行計画を確認
    • 実装前のレビューとブレインストーミング
    • 要件の明確化と潜在的な問題の早期発見
  • Act Mode(実行フェーズ)
    • 合意した計画に基づく実際の実装
    • ファイル操作やコマンド実行などの具体的な変更
    • 実行結果の確認とフィードバック

特に複雑なタスクや、仕様が明確でない場合は、いきなりAct Modeに進むのではなく、Plan Modeでじっくり計画を練ることで手戻りを防ぎ、より効率的な開発が可能になると思います。

参考

Discussion