COLOPL Tech Blog

コロプラのエンジニアブログです

CursorなどのAIエージェントのルールをシンボリックリンクで共通化

こんにちは、エンジニアの山田 (@yamadashy) です。

皆さんのプロジェクトでは、AIコーディングツールのルール、コマンドをどのように管理していますか?

現在、私たちの周りには Cursor、Claude Code、Codex CLI など、多種多様なAIツールが存在します。コロプラでも、以前こちらの記事でCursorの導入事例を紹介しましたが、今ではエンジニアがそれぞれの好みに合わせてツールを自由に選択する文化が根付いています。

しかし、この自由なツール選択の裏側で、私たちは新たな課題に直面していました。それは、「プロジェクトのルールを各ツールの設定ファイルへ個別に反映させる負担」です。

AIコーディングツール過渡期の今、社内でのツールの統一は現実的ではなく、かといって設定同期のために特別なツールを導入するのも避けたい。そんな状況で、私たちが一つの解決策として見出したのが、「シンボリックリンク」を活用したシンプルなルール共通化の手法でした。

本記事では、特別なツールやコマンドを必要とせず、多様なAIツール間でプロジェクトルールを効率的に共有するための具体的な方法をご紹介します。

基本的な考え方

この手法の基本的な考え方は非常にシンプルです。

まず、プロジェクトの共通ルールを記述したファイル(例: base.md)を .agents/ のような特定のディレクトリに一元的に配置します。そして、各AIツールが参照する設定ファイルのパスには、この base.md へのシンボリックリンクを作成します。

表題通り、これだけです。 これで動くのか?と思う方もいらっしゃるかと思いますが、Cursor、Codex CLI、Claude Code、GitHub Copilot Agent Mode で動作を確認しています。 .claude/commands などのコマンドも同様の方法で共通化できます。

この方法により、開発者はツールの違いを意識することなく、常に最新のプロジェクトルールをAIに読み込ませることができます。

ちなみに、共通ディレクトリ名を .agents としているのは、AIエージェントの標準化を目指すコミュニティの動きである AGENTS.md を参考にしています。

具体的な設定方法

具体的には、以下の2つのステップで設定します。

1. 共通ルールファイルの作成

はじめに、プロジェクトのルートディレクトリに .agents/rules/ のようなディレクトリを作成し、そこに共通ルールを記述した base.md を配置します。

このファイルに、CLAUDE.md などで書いたベースのルールを記述します。

Cursorルールの場合、ファイルの先頭に alwaysApply: true のようなFront matterの記述があるので、それも一緒に記述します。これが他のツール(Claude Codeなど)の動作に影響を与えないことも確認済みです。このように、ツール間の差異を吸収しつつ、共通の情報を一元管理できるのがこの手法の強みです。

2. シンボリックリンクの作成

次に、各ツールが参照する設定ファイルの場所へ、先ほど作成した base.md へのシンボリックリンクを作成します。

# for Cursor
ln -s ../../.agents/rules/base.md .cursor/rules/base.mdc

# for Claude Code
ln -s .agents/rules/base.md CLAUDE.md

# for Codex CLI
ln -s .agents/rules/base.md AGENTS.md

# for GitHub Copilot Agent Mode
ln -s ../.agents/rules/base.md .github/copilot-instructions.md

これで、各ツールは同じ base.md ファイルをルールとして読み込むようになります。ルールの更新は base.md を編集するだけで、すべてのツールに即座に反映されます。

また、コマンド機能についても、同様の方法で共通化が可能です。

# 共通のコマンドを配置するディレクトリ
mkdir -p .agents/commands

# for Cursor
ln -s ../.agents/commands .cursor/commands

# for Claude Code
ln -s ../.agents/commands .claude/commands

# Codex CLIなどは現状で非対応

Codex CLI では、現時点でプロジェクト単位のコマンド共有機能がサポートされていませんが、対応されれば同様の手法で共通化が可能でしょう。

社内への展開

この仕組みは、コロプラ社内のPHPプロジェクト雛形である laravel-skeleton に標準で導入されており、誰でもすぐに試せる状態で共有されています。

私自身が関わるプロジェクトでもこの仕組みを運用しており、Claude CodeとCursorを状況に応じて使い分けていたりしますが、ルールのメンテナンスコストが削減され開発者体験の向上にも繋がっていると感じます。

もちろん課題もあり、Cursorのようにルールを複数作成できるようなケースや、ルールからコマンドを呼ぶなど、ツールごとの差異を吸収することは難しいです。

とはいえ、プロジェクトの基本的なルールや構造といった情報は、ツール間で共通している部分がほとんどで、一つの落とし所としてはこの手法が現実的で効果的な解決策だと考えています。

まとめ

ツールの進化が続く現代の開発現場において、プロジェクトの一貫性をいかに保つかは重要な課題です。もし皆さんのチームでも同様の課題に直面しているのであれば、今回紹介した方法が、シンプルながら解決の一助となれば幸いです。



ColoplTechについて

コロプラでは、勉強会やブログを通じてエンジニアの方々に役立つ技術や取り組みを幅広く発信していきます。
connpass および X で情報発信していますので、是非メンバー登録とフォローをよろしくお願いいたします。

また、コロプラではゲームや基盤開発のバックエンド・インフラエンジニアを積極採用中です!
興味を持っていただいた方はぜひお気軽にご連絡ください。