Cline/Roo Code利用ガイドライン

Cline および Roo Code は、LLM（大規模言語モデル）を活用した高度な支援を提供するツールです。AI によるコード生成・修正・テストの自動化などが強力にサポートされるため、開発効率を飛躍的に高めることができます。


---

## 1. Cline

- **公式リポジトリ**: [https://github.com/cline/cline](https://github.com/cline/cline)

### 1.1 導入手順

詳しい手順は下記の記事がわかりやすいです。  
- 参考: [VSCodeへのCline導入](https://qiita.com/tichise/items/a8caceedacce8e3b0e0a)

ここでは簡単な流れのみ紹介します。

1. VSCode の拡張機能として Cline プラグインを導入
2. 利用したい LLM（OpenAI API, ローカル LLM など）の設定を行う  

### 1.2 Clineを日本語化する

Cline にはやりとりの言語を指定する機能があります。  
1. Cline ウィンドウを開く  
2. 歯車（設定）アイコンをクリック  
3. **Custom Instructions** に「Speak in Japanese」と入力する  

こうすることで、Cline が日本語で応答するようになります。  

---

## 2. Roo Code

- **公式リポジトリ**: [https://github.com/RooVetGit/Roo-Code](https://github.com/RooVetGit/Roo-Code)

### 2.1 導入手順

基本的にはCline同様、VSCode の拡張機能としてインストールします。
下記記事を参考に設定します。  
- 参考: [VSCode LLM API を用いた Roo Code の導入](https://qiita.com/y-hirakaw/items/6a62ea26278a9327e687)

導入の流れの一例:

1. VSCode の Marketplace で「Roo Code」を検索・インストール  
2. LLM（OpenAI やローカルモデル等）の API キー設定  

---

## 3. 全般的な利用時の注意点（Tips）

両ツールとも非常に強力ですが、AI を用いたコード生成にはいくつか独特の注意点があります。  
下記は Cline / Roo Code 共通のベストプラクティスです。

> **参考**  
> - [zenn.dev/mizchi/articles/all-in-on-cline](https://zenn.dev/mizchi/articles/all-in-on-cline)  
> - [note.com/kiiita/n/n41f0437b6d62](https://note.com/kiiita/n/n41f0437b6d62)

### 3.1 こまめなコミット/ステージ

- **こまめにコミットやステージを行う**  
  タスク開始前に変更を `commit` または `stage` しておくと、タスクが失敗した際に容易に `undo` できます。特に AI が生成したコードは期待と異なる挙動をする場合もあるため、差分管理をしっかりしておくと安心です。

### 3.2 タスク関連ファイルの事前オープン

- **作業対象ファイルをあらかじめエディタで開く**  
  AI が正しい対象を認識しやすくなります。ファイル名やパスも明示的に指示すると誤操作を防げます。

### 3.3 段階的かつ具体的な指示

- **大まかな要件 → 詳細仕様 → テストケース の順で指示する**  
  一度にすべての仕様を盛り込もうとすると、誤解やコンテキスト溢れが発生しやすくなります。段階的にタスクを区切ることで、生成コードの品質が向上します。

### 3.4 機能実装とリファクタリングの分離

- **まずは要件を満たす動くコードを生成**  
  完了後にリファクタリングやテストの整備を行うと、効率よく開発が進みます。AI も「後でまとめて最適化する」方がスムーズです。

### 3.5 リアルタイム変更の監視を避け、タスク完了後にDiffチェック

- AI はタスク中に大量の修正を高速で行います。逐一追うよりも、**最終的に出力された差分 (Diff) を確認** して内容を把握する方が合理的です。

### 3.6 大きなファイルは分割する

- 1ファイルが大きすぎるとエラーが出やすくなります（API レート制限や Diff エラーなど）。**適切な粒度でファイルを分割** するようにしましょう。

### 3.7 AI が得意なタスクを集中させる

- **AI が得意な分野（JSON処理、数値計算、単調な変換など）** を意識的に任せると効率が高まります。一方、細やかな UI 部分は微妙な調整が多いため、後で人力で仕上げる場合が多いです。

### 3.8 コンテキスト管理の限界

- 記憶領域（コンテキスト長）に制約があるため、複数ファイルや巨大なコードを参照すると混乱が生じがちです。**必要な情報を事前にまとめる**・**作業範囲を限定する** といった工夫が必要です。

### 3.9 言語選定

- **TypeScript, C#, Python** など静的型チェックや実行が簡単な言語は AI と相性が良いです。  
- **Rust, Haskell** などコンパイルが厳密な言語は、修正が頻発して開発効率を下げる場合があります。

### 3.10 人間のレビューは必須

- AI によるコード生成は強力ですが、**最終的には人間がレビューして品質を担保** する必要があります。脆弱性の有無や細かいビジネスロジックは必ずチェックしましょう。

### 3.11 API コスト・レート制限への配慮

- 多数のリクエストを高速に送るため、**OpenAI の API コストやレート制限 (429 エラー) に注意** が必要です。プラン見直しや自動リトライ設定を検討しましょう。

### 3.12 セキュリティリスクの管理

- Cline や Roo Code はシステムコマンドを実行できる場合があります。**サンドボックス外での操作を許可する場合は十分なセキュリティ対策を** 行うことが重要です。

### 3.13 新たな開発スタイルの認識

- AI が「ドライバー」としてコードを書く一方、**人間は「ナビゲーター」として仕様定義や抽象化、最終判断に注力** するという役割分担を意識する必要があります。

### 3.14 中毒性と効率の両面を意識

- AI による高速な試行錯誤は非常に魅力的ですが、**人間が介入を怠ると品質管理が甘くなる** 恐れもあります。常にバランスを取りながら利用しましょう。

---

## 4. `.clinerules` での設定

Cline には `.clinerules` をプロジェクトルートに置くことで、プロジェクト固有のルールや手順を定義できます。  
参考:
- [Cline公式リポジトリの .clinerules](https://github.com/cline/cline/blob/main/.clinerules)
- [mizchi/ailabの .clinerules](https://github.com/mizchi/ailab/blob/main/.clinerules)
- [zenn.dev/berry_blog の記事](https://zenn.dev/berry_blog/articles/c72564d4d89926)

プロジェクト内で利用するフレームワークやコーディング規約、ディレクトリ構成などを `.clinerules` に盛り込んでおくと、AI が文脈を把握しやすくなり、意図した生成をしやすくなります。

---

## 5. ローカルLLMの活用

OpenAI API などのクラウド LLM を利用する方法もありますが、**プライバシー保護やコスト削減** の観点からローカル LLM を使う選択肢も増えています。

### 5.1 ローカル LLM 環境構築

- **参考**: [WSL環境でのローカルLLM構築](https://qiita.com/thistle0420/items/b095d169404806002b55)



### 5.2 Cline / Roo Code 側の設定

- **参考**: [Cline(Roo Code)設定例](https://qiita.com/takuya77088/items/a55958536722351c1498)

---