🌐

DevinにCursorのProject Rulesを生成してもらい、Devinもそれに従うよう整備する

に公開

前書き

前回の記事では、Devinの出力をより安定させるため、プロジェクト毎のコンテキストをDevinが参照できる仕組みとして、リポジトリ内にdocsディレクトリを作成し、必要なドキュメントをDevinに整備してもらいました。

現在、私が関わるシステム開発では、DevinとCursorを併用しています。Devinによるタスク実行時においても、Cursor用に設定された Project Rules に従って作業を行なってもらうことで、ツールを跨いでも一貫性のある開発が行えるのではないかと考えました。

今回は、DevinにCursorのProject Rulesを生成してもらい、さらにDevinがタスク実行時にそのProject Rulesを参照し、従うようにKnowledgeを整備します。

CursorのProject Rulesについて

Cursorには、プロジェクト全体を通して適用されるべきルールを定義する Project Rules という機能があります。これにより、コードの書き方、命名規則、ファイルの構成など、プロジェクト固有のルールをチーム全体で共有し、一貫性を保つことができます。

https://docs.cursor.com/context/rules

Project Rulesを作成してもらう

まずは、DevinにCursor用のProject Rulesを作成してもらいます。
Devinに対して、CursorのProject Rulesに関するドキュメントを参照させ、プロジェクト全体を分析した上で、メンテナンス性を考慮して日本語で記述するように指示します。
また、必要であれば、Cursorが提供しているProject Rulesのサンプルを参考にしてもらうよう伝えます。

具体的なDevinへの指示は以下の通りです。

@Devin 以下のタスクを実行してください。
- slack-salesforce-connector repoに接続してください。
- cursor用のProject Rulesを作成してください。
  - Project Rulesの概要については https://docs.cursor.com/context/rules を参照してください。
  - Project Rulesの内容は日本語で記述してください。
  - Project Rules作成時にはリポジトリの内容(構造・ソースコード)から分析したProjectの慣習、パターン、重要な要素を反映させてください。
  - Project Rulesのサンプルが必要であれば、https://cursor.directory/ を参照してください。
- 作業は devin/maintenance-projejct-rules ブランチ上で行ってください。

この指示により、Devinは指定されたリポジトリに接続し、CursorのProject Rulesに関するドキュメントやサンプルを参照しながら、リポジトリの内容を分析し、Project Rulesを記述した.mdcファイルを作成してくれます。

作成された.mdcファイルの内容を確認し、プルリクエスト内のコメントでの指示や手修正を加えて完成させ問題がなければマージします。

DevinがCursor用のProject Rulesに従うようにする

作成したCursor用のProject RulesをDevinがタスク実施時に参照するように、DevinのKnowledgeを整備します。

具体的には、Gitリポジトリへの接続時に、CursorのProject Rulesを読み込むためのKnowledgeを追加します。

  • タイトル: Cursor用Project Rulesの参照・適用
  • Devin uses this when: when connecting to or cloning a Git repository
  • Content:
    *   接続リポジトリ内に `.cursor/rules/` ディレクトリが存在する場合、ディレクトリ内の `*.mdc` ファイルを読み取り、そのリポジトリに変更を加える際は、必ずそこに定義されているルールに従ってください。
    *   `.mdc` ファイルは、以下の形式で記述されています。

    ```
    ---
    description: ルールの概要
    globs: ルールを適用する条件(ファイル名、ファイル拡張子名等)
    alwaysApply: このルールが常に適用されるか(true or false)
    ---
    ルールの内容(テキスト記述)
    ```

このKnowledgeを 全てのリポジトリにピン留め することで、DevinがGitリポジトリに接続する際に、自動的に .cursor/rules/ ディレクトリ内に存在する .mdc ファイルを読み込み、そこに定義されたルールを考慮した上でタスクに取り組むことが期待できます。

まとめ

これでDevinがプロジェクト固有のドキュメント(docsディレクトリ内のファイル)だけでなく、Cursor用のProject Rules(.cursor/rules/ディレクトリ内の.mdcファイル)も参照するようになりました。これにより、DevinとCursorの両方が、より一貫性のある共通のルールに基づいて開発を進めることが可能になります。

今後は、この仕組みをさらに活用し、開発ツール間の連携を強化しつつ、効率的な開発を進めていけるよう環境を整備していきたいと考えています。

Discussion