🦔

Cursorで実装後に仕様を読み込ませて実装漏れを発見・修正できるか?【できる】

に公開

私のようなSTG全盛期にPCをやっていた人なら知っているかもしれないBulletML
弾幕の挙動をxmlで書く弾幕言語です。白い弾幕君が当時有名だったと記憶しています。
今回、これをUnityで再現したくなりxmlパーサーと、弾幕を動作させるスクリプトをcursorで書いていました。
そこで試したことです。

Cursorで実装後に仕様を読み込ませて仕様と実装を比較し、実装漏れを発見・修正できるか?

BulletMLの仕様がもちろん存在します。(https://www.asahi-net.or.jp/~cs8k-cyu/bulletml/)
果たして仕様通り実装できているのか?
それをcursorに確認してもらった上に修正してもらおうという魂胆です。

mdcファイルに仕様を記載する

cursorにはmdcファイルというものがあります。コンテキストを読み込ませる仕組みです。
これを使ってコーディングルールなどを読み込ませたりします。
今回はこのmdcファイルに仕様をmarkdownで全て記載します。

cursorにmdcファイルを指定して指示を与える

雑に@でmdcファイルを指定して指示をを与えます。
010-spec-bulletml.mdc というファイルで作っています。

実装漏れの発見

はい。特別なパターンとデフォルトパターンが漏れていました。。。
実装漏れの検出です。

もちろん修正も行ってくれる

そのまま修正へ移行して修正されました。

ちゃんとテストしろと言われる…

テストしてね、と言われました。
Unityなのでcursorからのテスト実行ができないからです。

結論 : 仕様と実装を比較し実装漏れを検出・修正ができる

今回はmdcファイルで試したので、 mdcファイルに書ける程度の仕様なら実装漏れの検知と修正はできそう です。
mdcファイルも複数分割し優先順位をつけておくことも可能ですし、当初から仕様をmarkdownで企画さんに書いてもらい、同じリポジトリでmdcファイルで管理などもよいかもしれません

2025/8/3追記

Unity版BulletML Playerが完成したので置いておきます。
もはや知っている人がいるかどうかですけれど(笑)
https://github.com/jam0824/BulletMlPlayer

Discussion