お雑煮研究会

好きな焼肉は魚

AI Coding Agent のルール形式周りの複雑さ

最近、AI Coding Agent のルール管理と配布を効率良く行うためのルールを開発した。

github.com

zenn.dev

統一されたフォーマットから各 Agent に合わせたフォーマットに変換するしくみなども当然必要なのだが、これを実装するのに結構困ったので裏話的なことを書いていく。

frontmatter が標準的な yaml ではない

これは Cursor と Windsurf がそうなのだが、ルールファイルの frontmatter の形式が微妙に普通の yaml と違う。 ということは、普通に yaml.Marshalyaml.Unmarshal すると意図した通りには認識されなくなってしまうということであり、泣く泣く文字列結合を使って実装している。

迫力のある文字列加工はこのあたりで見ることができる。

github.com

github.com

そもそも 1 ファイルにすべての rule を書くタイプの Agent もあって困る

Cursor のような「特定の Metadata を含む Markdown っぽいもの」をディレクトリに置くタイプのエージェントもあれば、 Cline や Claude Code, OpenAI Codex のような「1 つの Markdown に目次っぽいものを書いて、普通の Markdown へのリンクを張っておく」タイプのエージェントもある。

後者をサポートしようとすると、ポリシーとして掲げている「既にあるルールと干渉しない」というのが難しくなってしまうのでどうしたものかと思っている。

Cline は .mdc ルールを解釈できるようにする PR が作成されているがどうなるだろうか...

github.com

おわり

おわり