Claude CodeとClineのソースコード調査タスクの比較

Claude CodeとClineそれぞれにソースコードの調査をさせて比較してみました。

**Claude Code** と **Cline** はともにAIエージェント型のコーディング支援の生成AIツールです。

Claude Codeは2月終わりに登場した、Linux上で動くコマンドラインツールです。

参考

https://qiita.com/eiji-noguchi/items/a45dbb94ad7544d1c1b4


Clineは、VSCodeなどの拡張機能として提供されています。

Claude Codeはコマンドラインツールであるため、ターミナルを使い慣れた人にとってはすばやく操作できる一方、ClineはUIがエディタに統合され、エディタのGUIの中でコードを扱いたい人に適しています。

この記事は、Claude CodeとClineそれぞれにソースコードの調査をさせてみた記録です。

調査対象は、私の見知らぬサンプルのウェブアプリケーションのソースコードです。

使用した生成AIのAPIは、Claude Codeはデフォルトの設定のまま（Claude 3.7 Sonnet）、ClineはOpenAIのgpt-4oです。

## 先に結論

現状ではClaude CodeのほうがClineに比べて簡潔にして必要な情報を十分に盛り込んだ調査報告をしてくれます。

2025/03/24 追記: この記事はClaude CodeとClineとの比較のように書いてしまいましたが、APIのモデルの違いのほうが大きかったようです。この記事の最後にも追記を書きました。

## ソースコード概要調査

最初にサンプルアプリケーションのディレクトリ全体を見回してもらいます。

```
> このディレクトリについて教えて
```

**Claude Code**

```
● このディレクトリはXXXXというLaravelベースのプロジェクトです。
主な特徴：

  - Laravelフレームワークを使用し、リポジトリパターンを採用
  - xxxxプレフィックスを持つモデルは外部システムとの連携を示唆
  - リスク管理、部署リスト、権限管理、予算管理などの機能を含む
  - Auth0やGoogleによる認証機能
  - BladeテンプレートとJavaScriptを使用したフロントエンド
  - Playwrightを使用したE2Eテスト
  - Laravelの典型的な構造（routes、controllers、models、views）に従って整理
```

**Cline**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/a0cc65b9-d302-459f-978b-7a8bdedbdbad.png)

**Claude Codeのほうが必要な情報を簡潔な情報** を返してくれる印象です。

Clineは一般的な情報しか書かれていなく、Qiitaにスクショを貼るにもなにもマスクする必要がないくらいです。

PHPでLaravelを使っていることはどちらからもわかります。

## 認証処理の調査

```
> 認証はどのように処理される？
```

**Claude Code**

```
● このプロジェクトでの認証は複数の方法で処理されています：

  1. Auth0統合 (config/laravel-auth0.php)
  2. Google OAuth2 (GoogleOAuth2Service.php, GoogleController.php)
  3. 標準のLaravel認証：
    - ログイン/ログアウト (LoginController.php)
    - パスワードリセット (ForgotPasswordController.php, ResetPasswordController.php)
    - 登録 (RegisterController.php)
    - メール確認 (VerificationController.php)

  AuthXxxxミドルウェアがカスタム権限チェックを処理し、XxxxAuthSettingsモデルが認証設定を保存しています。システムはXxxxAuthorityRoleを使用したロールベースのアクセス制御を採用しています。
```

**Cline**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/9e2d5b63-4c45-4b43-9199-745045fdc5e8.png)


**Claude Codeのほうが具体的で簡潔な説明** をしてくれます。

----

Auth0統合、Google OAuth2、標準のLaravel認証の3つの実装があると説明されたので、次の質問。

```
> これらの認証方法はすべてこのシステムで利用されていますか？実際に使われているパターンを調査してください
```

**Claude Code**

```
● 実際に使用されている認証方法について調査結果：

  主に使用されている認証方法

  - Auth0：メインの認証プロバイダーとして実装・使用
    - routes/web.phpでAuth0IndexControllerが登録されている
    - config/auth.phpでデフォルト認証プロバイダーとして設定

  代替/補助的な認証方法

  - Google OAuth2：実装はされているがコメントアウトされ、現在は使用されていない
  - Cognito：AuthXxxxミドルウェアに実装されているが、環境変数依存で使用状況不明
  - STATIC：主に開発環境用の認証方法として実装

  認証フロー

  - 環境変数AUTH_TYPEによって認証方法が切り替わる設計
  - ログイン後はXxxxMUserRepositoryからユーザー情報を取得し権限設定
  - 複雑な役割ベースアクセス制御（RBAC）システムで権限管理

  実質的にはAuth0が主要な認証方法として使用され、他は条件付き実装または使用停止されています。
```

**Cline**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/6345a242-d49d-4cab-8093-45325aaf7504.png)

設定ファイルを見つけてくれている点で、Clineのほうが親切かもしれません。Claude Codeも見やすくまとめてくれています。

----

```
> Auth0の場合のログイン画面表示からログイン成功後の画面表示までの処理のフローを説明してください
```

Claude Code、Clineともに長々とした説明をしてきたので結果を省略

----

```
> ブラウザとアプリサーバと認証サーバの間での処理と通信の流れをmermaidの図にしてください
```

**Claude Code**
(mermaidの記法がターミナル上に表示されるが、それをそのままQiitaに貼り付けた)

```mermaid
sequenceDiagram
    actor ブラウザ
    participant AppServer as XXXXアプリケーションサーバ
    participant Auth0 as Auth0認証サーバ
    participant DB as XXXXデータベース
    ブラウザ->>AppServer: 1. /login にアクセス
    AppServer->>ブラウザ: 2. Auth0認証URLへリダイレクト
    ブラウザ->>Auth0: 3. Auth0認証ページにアクセス
    Auth0->>ブラウザ: 4. ログインフォーム表示
    ブラウザ->>Auth0: 5. 認証情報を送信
    Auth0->>Auth0: 6. 認証情報検証
    Auth0->>ブラウザ: 7. コールバックURLへリダイレクト（認証トークン付き）
    ブラウザ->>AppServer: 8. /auth0/callback にアクセス（認証トークン付き）
    AppServer->>Auth0: 9. トークン検証リクエスト
    Auth0->>AppServer: 10. ユーザー情報返却
    AppServer->>DB: 11. ユーザーメールでDB検索
    DB->>AppServer: 12. 内部ユーザー情報・権限情報返却
    AppServer->>AppServer: 13. セッション作成・権限設定
    AppServer->>ブラウザ: 14. ダッシュボードへリダイレクト
    ブラウザ->>AppServer: 15. ダッシュボードページリクエスト
    AppServer->>ブラウザ: 16. ダッシュボード表示（認証済み）
```

**Cline**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/5939081d-f1e1-49fc-8e53-3c5b8df29574.png)

Claude Codeのほうが詳細に図示してくれている。

Clineは応答のテキストをコピペしづらいのが難点ですね。

## データベース調査

```
> このシステムはどのデータベースを使っていますか？
```

**Claude Code**

```
● このシステムは以下のデータベースを使用しています：

  1. MySQL - メインのデータベース管理システム
    - mysql_xxxx - XXXXアプリケーション用のメインデータベース（デフォルト接続）
    - mysql_yyyy - 外部システム連携用のデータベース

  設定はutf8mb4文字セットを使用しており、設定ファイル（config/database.php）に定義されています。
```

**Cline**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/aec265de-611f-4576-a57c-1713638484d7.png)

----

```
> 認証やユーザ管理、セッション管理に関わるテーブルにはなにがありますか？
```

**Claude Code**

回答は省略するが7個ぐらいのテーブルを列挙してきた。

**Cline**

回答は省略するが2個だけテーブルを列挙してきた。

内容を見ると **Claude Codeのほうが正確** に思える。Clineの言う2つしかないということはないように思える。Claude Codeが上げてきたテーブル名をソースコードで検索してみると、確かにテーブル名を参照されている。

----

```
> これらのテーブルのER図を書いてください
```

**Claude Code**
(mermaidの記法がターミナル上に表示される。マスクが面倒な個所を削除して、一部をそのままQiitaに貼り付けた)

```mermaid
erDiagram
    m_user ||--o{ m_staff : "has"
    m_staff ||--o{ m_staff_dept : "belongs to"
    m_dept ||--o{ m_staff_dept : "includes"

    m_user {
        int id PK
        string email
        sho ryaku
    }

    m_staff {
        int id PK
        int user_id FK
        string staff_code
        string full_name
        sho ryaku
    }

    m_staff_dept {
        int id PK
        int staff_id FK
        int dept_id FK
        sho ryaku
    }

    m_dept {
        int id PK
        string dept_code
        string dept_name
        sho ryaku
    }
```

**Cline**

テーブルが2個だけのなんのリレーションもないシンプルな図が出てきた。Claude Codeと比べると役に立たなかった。

----

Clineには追加で以下のように畳みかけてみた。

```
> 認証やユーザ管理、セッション管理に関わるテーブルはもっとたくさんあるはずです。よく調べてください
```

しかし、関係なさそうなテーブルを報告してClineは満足されていました。

比較検証は終わり。

## まとめ

Claude CodeとClineはインターフェースが大きく異なるので、使いやすいほうを使えばいいと思う。

Clineは生成AIからの返答をテキストでコピペできないのがもったいない。

私は、報告精度と使い勝手の両面でClaude Codeのほうが上に感じる。

# 2025/03/24 追記

Clineの貧弱さは生成AIのモデルの違いに起因するだろうと思い、ClineのAPIをOpenAIのgpt-4oから Claude 3.7 Sonnet に変えて同じ条件で試してみました。

結果、Cline with Claude 3.7 Sonnet ならばClaude Codeと同じように使えそうでした。

- 報告される情報量は Cline with Claude 3.7 Sonnet が Cline With gpt-4o や Claude Code よりも圧倒的に多い。同じプロンプトであればClaude Codeのほうが簡潔にまとめてくれる
- 費用は Cline with Claude 3.7 Sonnet でこの流れを1回実行するだけで7ドル程度かかる。（Cline With gpt-4o や Claude Code での費用は見ていなかったが、Cline with Claude 3.7 Sonnetは気づかぬうちに意外とコストを使ってしまう印象）
- 報告される内容はClaude Codeの内容と大きな食い違いはない。最後のER図までClineでも作成してくれた。Claude Codeとは報告内容に多少の違いがあるが、人間が調べてもこの程度のブレはあるだろうなという印象

本記事では、Claude CodeとClineとでClaude Codeのほうがよさそうという感想を書きましたが、実はClaude 3.7 Sonnetとgpt-4oを比較しただけだったようです。