🔗

CursorとWindsurfでのRuleファイル共有の試み(開発日記 No.077)

に公開

関連リンク

はじめに

昨日は、開発記録とオートロギングガイドの統合を行いました。今日は、CursorとWindsurfで同じルールファイルを共有するというテーマに取り組みます。同じローカル環境のワークスペースで、CursorとWindsurfを同じように利用できるように、共通のルールファイルを参照できるようにしたいと考えています。現状を生かしつつ、これを実現する方法を探ります。

背景と目的

現在、CursorとWindsurfでAIの挙動を制御するためのルールファイルが別々に管理されています。しかし、これらのルールは本質的に共通する部分が多く、一元管理することでメンテナンスコストを削減し、両方の環境で一貫したAIの挙動を実現したいという思いがあります。そこで、今回はシンボリックリンクを活用し、共通のルールファイルを両方の環境から参照できるようにすることを試みます。

検討内容

まず、現状のディレクトリ構造を確認しました。共通ルールリポジトリがGitサブモジュールとして配置され、Cursorのルールディレクトリには、サブモジュールからのシンボリックリンクが作成されていることがわかりました。この仕組みをWindsurfにも適用できないか検討しました。

Windsurf側のルール構造とCursorのルール構造の違いを確認したところ、ディレクトリ構造やファイルフォーマットに大きな違いはないことがわかりました。そこで、.windsurf/rulesディレクトリ内に必要なサブディレクトリを作成し、Cursorのルールファイルをシンボリックリンクとして参照するスクリプトを作成することにしました。

実装内容

以下の手順で実装を進めました。

  1. .windsurf/rulesディレクトリ内に、knowledgemodesreferencesといったサブディレクトリを作成しました。

  2. create_windsurf_symlinks.shという名前の新しいスクリプトを作成し、.cursor/rules-commonの内容を.windsurf/rulesにシンボリックリンクで参照できるようにしました。

    #!/bin/bash
    
    # シンボリックリンクを作成するディレクトリ
    dirs=("knowledge" "modes" "references")
    
    # 各ディレクトリに対してシンボリックリンクを作成
    for dir in "${dirs[@]}"; do
      # リンク元とリンク先
      source=".cursor/rules-common/$dir"
      target=".windsurf/rules/$dir"
    
      # リンク先が存在する場合は削除
      if [ -d "$target" ]; then
        rm -rf "$target"
      fi
    
      # シンボリックリンクを作成
      ln -s "$source" "$target"
    
      echo "Created symlink: $target -> $source"
    done
    
    echo "Symlink creation complete."
    
  3. 作成したスクリプトを実行し、すべてのルールファイルが正常にリンクされたことを確認しました。

技術的なポイント

今回の実装における技術的なポイントは、シンボリックリンクの活用です。シンボリックリンクを使用することで、物理的なファイルのコピーを作成せずに、複数の場所から同じファイルを参照できます。これにより、ルールファイルを一箇所で管理し、変更があった場合にすべての環境に反映させることができます。

また、スクリプトによる自動化も重要なポイントです。手動でシンボリックリンクを作成するのは手間がかかりますが、スクリプトを使用することで、簡単に、そして確実にシンボリックリンクを作成できます。

所感

今回の開発では、シンボリックリンクというUnix系のOSではおなじみの技術を改めて活用できたのが面白かったです。普段何気なく使っている技術も、使い方次第で非常に強力なツールになることを再認識しました。

また、CursorとWindsurfという異なる環境で、同じルールファイルを共有するという試みは、AI開発における効率化と一貫性の重要性を示唆していると感じました。

ただ、Windsurf側のルールファイルの読み込み機構については、まだ不明な点が多く、今後の調査が必要です。特に、.mdcファイルがWindsurfで正しく読み込まれるかどうかが気になっています。

今後の課題

今後の課題は以下の通りです。

  • Windsurfの公式情報から、ルールファイルの自動参照や任意タイミングでの参照機能について調査する。
  • 特に.mdcファイルがWindsurfで正しく読み込まれるか確認する。
  • Windsurfエディタの設定画面でルールファイルの参照方法を確認する。
  • Windsurf側でルールが正しく機能するか検証する。

まとめ

本日は、CursorとWindsurfでのルールファイル共有について検討し、シンボリックリンクを活用して共通のルールファイルを両方の環境から参照できるようにしました。これにより、ルールファイルの一元管理が可能になり、メンテナンスコストの削減とAIの挙動の一貫性を実現できる可能性があります。

今後は、Windsurf側のルール読み込み機能の詳細な調査を行い、実際にルールが機能するか確認する予定です。

GitHubで編集を提案

Discussion