Logo stenyan.dev

最近CopilotやDevinについて調べたり検証していく中で思ったことについて簡単に書き留めておきます。

README.md を起点としたドキュメンテーションを整備したいと思っています。これは人間もAIも共通で参照してもらいたいです。

様々なAIやエディタ向けのドキュメント(カスタム指示)を個別にメンテするのではなく、1つのものをSingle Source of Truth1としたい。

## AI向けのカスタム指示の仕方について整理

### GitHub Copilot

GitHub Copilot.github/copilot-instructions.md というファイルに書かれたカスタム指示を読み込んでコード生成してくれます。また、VS Code向けの設定ファイル settings.json に設定を書くと特定のパスに置かれたファイルを読み込ませることができます。

Custom instructions for GitHub Copilot in VS Code

### Cursor

Cursor.cursor/rules/ というディレクトリ配下にプロジェクトに関するルールを記述することができます。 .mdc 形式のファイルを使います。

Cursor – Rules

### Cline

Cline.clinerules というファイルにルールを記述することができます。また、 .clinerules/ ディレクトリ配下にMarkdownファイルをまとめることもできます。

Prompt Engineering Guide | Cline

### Devin

Devin は特定のファイルを用意するというよりは、リポジトリ自体の内容を学習してくれるので、設定ファイルを整備する必要はなさそうです。

Knowledge - Devin Docs

### Junie

JetBrainsのIDE向けに最近リリースされた Junie.junie/guidelines.md というファイルにルールを記述することができます。

IntelliJ IDEA Junie Playbook - JetBrains Guide

## 具体的にこういう風にしたい

最初に書いたように、特定の .cursor.clinerules のようなものは用意せずに済むならそうしたいと思っています。そういう意味では以下の記事で書かれているような .ai_guideline ディレクトリをCursorとDevinに読み込んでもらうのはアリだと思います。

一方でこのドキュメントは人間も参照してもいいと思うし、GitHub Copilotでも有効活用したいです。2

なので、 README.md からリンクする形で code-guideline.mdcode-review-guideline.md など個別にMarkdownを用意します。

README.md
# README
 
詳細なガイドラインは以下を参照ください。
 
- [Code Guideline](docs/code-guideline.md)
- [Code Review Guideline](docs/code-review-guideline.md)

その上でVS Codeからは以下のように参照します。

.vscode/settings.json
{
    "github.copilot.chat.codeGeneration.instructions": [
        {
            "file": "docs/code-guideline.md",
        }
    ],
    "github.copilot.chat.reviewSelection.instructions": [
        {
            "file": "docs/code-review-guideline.md",
        }
    ]
    ...
}

ポイントとしては .github/copilot-instructions.md はあえて使いません。他のAIやエディタに関して今後新たなエージェントが主流になったとしても同じ docs/ を見てもらうように調整できるといいなという思いです。

Footnotes

  1. https://ja.wikipedia.org/wiki/信頼できる唯一の情報源

  2. 最終的にはCursorのようなVS Codeのフォークベースのエディタより、CopilotのAgent Modeなどが進化して一番使いやすくなるのかなという期待があるためです。