Zenn
🙆‍♀️

内部実装から紐解くClineのメンション機能ガイド

2025/03/31に公開

概要

メンション機能は、Clineとの会話において「@」記号を使用して様々なリソースを参照できる強力な機能です。ファイル内容、ディレクトリ構造、WebページのURL、VSCodeの問題診断情報、ターミナル出力、Gitの変更状態など、多くの情報を簡単に会話に取り込むことができます。

この機能を使用することで、Clineがより正確なコンテキストを把握し、より的確な支援を提供できるようになります。

基本構文

メンションは常に「@」記号で始まり、その後に参照したいリソースのパスや識別子が続きます。

@リソース識別子

メンションは、ユーザーメッセージ内のどこにでも配置でき、Clineが自動的に参照内容を取得します。

サポートされるメンションタイプ

1. ファイル参照

ファイルの内容を参照するには、@/の後にプロジェクト内の相対パスを指定します。

@/path/to/file.js

例:

@/src/components/Button.tsx の実装を分析してください

この例では、Clineは自動的にButton.tsxファイルの内容を取得し、その内容を基に分析を行います。

2. ディレクトリ参照

ディレクトリの内容を参照するには、@/の後にディレクトリの相対パスを指定し、末尾に/を付けます。

@/path/to/directory/

例:

@/src/components/ ディレクトリにどのようなコンポーネントがありますか?

この例では、Clineはcomponentsディレクトリの内容一覧を取得し、そこに含まれるファイルとその内容を確認できます。

3. URL参照

Webページの内容を参照するには、@の後にURLを指定します。

@https://example.com

例:

@https://api.github.com/users/octocat のJSONレスポンスを解析してください

この例では、ClineはGitHub APIからのレスポンスを取得し、そのJSONを解析します。

4. 問題診断参照

VSCodeの現在のワークスペースの問題診断情報を参照するには、@problemsを使用します。

@problems

例:

@problems を確認して、修正すべき優先度の高いエラーを教えてください

この例では、Clineは現在のワークスペースのエラーと警告を取得し、優先度の高い問題を特定します。

5. ターミナル出力参照

最新のターミナル出力を参照するには、@terminalを使用します。

@terminal

例:

@terminal の出力からエラーの原因を特定してください

この例では、Clineは最新のターミナル出力を確認し、発生しているエラーの原因を分析します。

6. Git変更状態参照

現在のGitワークスペースの変更状態を参照するには、@git-changesを使用します。

@git-changes

例:

@git-changes を確認して、コミットすべき重要な変更点をまとめてください

この例では、Clineは現在のGit作業ディレクトリで変更されているファイルのリストと内容を取得し、コミット候補を特定します。

7. Gitコミット情報参照

特定のGitコミットの情報を参照するには、@の後にコミットハッシュを指定します。

@コミットハッシュ

例:

@abcd123 のコミット内容を分析して、どのような変更が行われたか説明してください

この例では、Clineは指定されたコミットハッシュの情報を取得し、そのコミットで行われた変更内容を分析します。

活用シナリオ

コードレビュー

@/src/components/Form.jsx を確認して、パフォーマンスの観点から改善点を提案してください。また、@problems があれば合わせて修正方法を教えてください。

デバッグ支援

npmのインストールに失敗しました。@terminal の出力を確認して、問題の解決方法を提案してください。

プロジェクト分析

@/src/models/ ディレクトリのコードを分析して、データモデル間の関係を説明してください。また、@/src/utils/ にあるユーティリティ関数がこれらのモデルでどのように使用されているか教えてください。

コード生成

@/src/components/Button.tsx のスタイルに合わせて、同じデザイン言語を使用した新しいInput.tsxコンポーネントを作成してください。

バージョン管理との連携

@git-changes を確認して、現在作業中の機能のためのコミットメッセージを提案してください。

複数メンションの組み合わせ

複数のメンションを組み合わせることで、より複雑なコンテキストを提供できます。

@/src/api/users.js にはバグがあるようです。@problems と @terminal を確認して、問題を特定し修正してください。

注意点と制限事項

  1. 大きなファイル: 非常に大きなファイルを参照すると、処理に時間がかかり、大量のトークンを消費する可能性があります。

  2. バイナリファイル: バイナリファイル(画像など)は適切に処理されず、「バイナリファイル」というメッセージが表示されます。

  3. ディレクトリ構造: ディレクトリ参照は最上位レベルのファイルとディレクトリのみを表示し、再帰的にサブディレクトリの内容は表示しません。

  4. URL制限: 一部のWebサイトは自動クローリングをブロックしている場合があり、正確な内容を取得できないことがあります。

  5. パス構文: ファイルパスやURLに特殊文字(スペースなど)が含まれる場合、正しく認識されないことがあります。

トラブルシューティング

メンションが認識されない

メンションが正しく認識されない場合は、以下を確認してください:

  • @記号の後にスペースがないこと
  • ファイルパスが正確であること(大文字小文字を区別)
  • URLが完全な形式(https://を含む)であること

内容が取得できない

参照されたリソースの内容が取得できない場合:

  • ファイルが存在することを確認
  • ファイルへのアクセス権があることを確認
  • 大きすぎるファイルや複雑なURLでないことを確認

パフォーマンスの問題

メンション処理が遅い場合:

  • より小さなファイルや特定のファイル部分を参照する
  • 一度に使用するメンションの数を減らす

まとめ

メンション機能を使いこなすことで、Clineとのコミュニケーションがより効率的になります。適切なコンテキストを提供することで、Clineはより的確な支援を提供できるようになり、開発ワークフローが大幅に改善されます。

参考

Discussion

ログインするとコメントできます