Cline の Plan Mode を使って手戻りを防ごう!
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 のタスク中心の設計に関しては、下記の記事に詳しく書いていますので、ご興味がある方はご覧ください。
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