最近CopilotやDevinについて調べたり検証していく中で思ったことについて簡単に書き留めておきます。
README.md
を起点としたドキュメンテーションを整備したいと思っています。これは人間もAIも共通で参照してもらいたいです。
様々なAIやエディタ向けのドキュメント(カスタム指示)を個別にメンテするのではなく、1つのものをSingle Source of Truth1としたい。
## AI向けのカスタム指示の仕方について整理
### GitHub Copilot
GitHub Copilot は .github/copilot-instructions.md
というファイルに書かれたカスタム指示を読み込んでコード生成してくれます。また、VS Code向けの設定ファイル settings.json
に設定を書くと特定のパスに置かれたファイルを読み込ませることができます。
### Cursor
Cursor は .cursor/rules/
というディレクトリ配下にプロジェクトに関するルールを記述することができます。 .mdc
形式のファイルを使います。
### Cline
Cline は .clinerules
というファイルにルールを記述することができます。また、 .clinerules/
ディレクトリ配下にMarkdownファイルをまとめることもできます。
### Devin
Devin は特定のファイルを用意するというよりは、リポジトリ自体の内容を学習してくれるので、設定ファイルを整備する必要はなさそうです。
### Junie
JetBrainsのIDE向けに最近リリースされた Junie は .junie/guidelines.md
というファイルにルールを記述することができます。
## 具体的にこういう風にしたい
最初に書いたように、特定の .cursor
や .clinerules
のようなものは用意せずに済むならそうしたいと思っています。そういう意味では以下の記事で書かれているような .ai_guideline
ディレクトリをCursorとDevinに読み込んでもらうのはアリだと思います。
一方でこのドキュメントは人間も参照してもいいと思うし、GitHub Copilotでも有効活用したいです。2
なので、 README.md
からリンクする形で code-guideline.md
や code-review-guideline.md
など個別にMarkdownを用意します。
# README
詳細なガイドラインは以下を参照ください。
- [Code Guideline](docs/code-guideline.md)
- [Code Review Guideline](docs/code-review-guideline.md)
その上でVS Codeからは以下のように参照します。
{
"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
-
最終的にはCursorのようなVS Codeのフォークベースのエディタより、CopilotのAgent Modeなどが進化して一番使いやすくなるのかなという期待があるためです。 ↩