📦

AI Coding Agent のルールとプロンプトを簡単に管理・配布するためのツールを作った

に公開

最近では Cursor や GitHub Copilot などの AI コーディングエージェントの知見が広まり、AI 向けのルールを定義することも増えてきました。

しかし、実際にルールを育てて運用しようとすると、次のような課題が出てきます。

  • 各エージェントごとに Rule のファイル形式が異なるので複数のエージェントを使うときにルールの管理が難しい
  • リポジトリをまたいだ Rule (たとえば組織で共通のガイドライン) を共有するのが難しい

このようなつらさを一気に解決すべく、ajisai という AI Preset Manager を作成しました。

特徴・できること

統一された形式で Rule / Prompt を管理できる

指定された 1 つの形式で Rule / Prompt を定義することで、Cursor / GitHub Copilot / WindSurf などの複数の AI コーディングエージェント向けに自動で変換して適切なディレクトリに配置することが出来ます。

たとえば、「既にある Go のスタイルガイドも AI が適切に解釈できるようにしたい」という場合は、次のような frontmatter を追加するだけです。
ajisai は、これを Agent ごとのルール形式に変換して配置してくれるので、対応している Agent すべてで「Go のファイルを扱う際に自動適用される Rule」として運用できます。

go-style-guide.md
---
attach: glob
globs:
  - '**/*.go'
---

# Go Style Guide

詳細なファイル形式は GitHub から参照できます

既にあるファイルと Conflict せずに導入できる

既に Rule を運用しているプロジェクトにも段階的に導入可能にするため、既存のファイルと Conflict しないように設計されています。

たとえば、ajisai が生成する Cursor Rule は .cursor/rules/ajisai/** 以下に配置されます。他のエージェントも同様に、ディレクトリのルートではなくサブディレクトリに配置されるので、既にあるルールと Conflict することはありません。

なお、ajisai によって生成されたファイルを格納するディレクトリは設定で変更できます。[1]

まとまった単位で Rule / Prompt を管理し、配布することができる

複数の Rule / Prompt を Preset という単位でまとめて管理し、複数の Preset を 1 つの Package という単位で配布できます。Package が 1 つの npm package で、Preset が package.jsonexports に相当するイメージです。

利用側では「この Package から これらの Preset を import する」という形式で設定することで、必要な分だけコンテキストを取り込めるようになっています。

また、ローカルでの管理だけではなく、リモート Git リポジトリから Preset / Package を取り込むことができるので、チーム / 組織全体でのルールの共有や再利用が容易になります。
Preset に含まれるファイルは柔軟に指定できるので、既存のドキュメントリポジトリの構造を変えることなく内容を取り込むことも可能です。

詳しい使い方は GitHub から参照できます

使用例: 既存のドキュメントリポジトリを Package として定義する

一例ですが、Preset に含めるドキュメントを柔軟に定義できるので既にあるリポジトリの構造を変えることなく AI 向けにまとめることができます。

ajisai.yaml
package:
  exports:
    adr:
      rules:
        - 'docs/ADR/**/*.md'
    style-guide:
      rules:
        - 'style-guide.md'
    infra-guide:
      rules:
        - 'infrastructure/README.md'

使用例: リモート Git リポジトリから Preset を取り込む

私がよく使っている rule も preset として公開してあるので、利用側でこのような設定を書いて ajisai apply を実行するだけで利用できます。

ajisai.yaml
workspace:
  imports:
    sushichan044:
      type: git
      repository: https://github.com/sushichan044/ai-presets.git
      include:
        - essentials
  integrations:
    cursor: # この設定をすると Cursor 向けにルールが変換されて配置される
      enabled: true

余談

当初このツールは TypeScript で書いていたのですが、クロスコンパイルが大変面倒なことに気づいたので Go で書き直しました。

初めて書く言語でしたが、こういったツール作成にちょうどよいシンプルさがあったのであまり迷わずに実装できてありがたかったです。

まだ最低限の機能しかありませんが、ぜひ試してみてください !
Issue / PR も大歓迎です。

脚注
  1. Config Referencesettings.namespace から設定できます ↩︎

Discussion