at backyard

Color my life with the chaos of trouble.

CursorでAI agentをフルに使って開発をするときに役立つ『自分向けメモ』

自分用メモ

AITuber OnAirでコア的な役割を担う処理を、外部パッケージに分離させる作業をしている。

このソースコードは、開発スピードを最優先して作られた機能でもあるため、設計がしっかりしておらず、予想通りパッケージとして分離させる作業は大変。
(パッケージとして分離させたあとも、しばらくその状態は続く予定)

こういったケースでのパッケージ移行作業は本当に大変で、パッケージ内を疎結合にしたいのに外部と密結合していて、うまく分離できないケースがままある。

今回、この作業を行うに当たって、Cursorのagent機能をフル活用して進めることにした。

AIエージェントをフル活用してコードを書いていく経験を積みたかったというのもある。

さて、そんな作業を進めるうえで意識したことは以下。

  • 細かくドキュメントを残す

    • README などはもちろん、docs ディレクトリ配下に処理フローをまとめたドキュメントも作成した。
    • これらはプロジェクトのドキュメントになると同時に、AIに読ませるためにも作成している
    • また、現在のソースコードの内容と、この作業で実現したい内容をドキュメント化してAI向けの資料として利用した。
  • テストを書けるところは書いていく(というかAIに書いてもらう)

    • ドキュメント同様、テストもあればあるだけ良い。今回は無理せず、作成できそうなところから進めている。
  • examples ディレクトリ配下にサンプルコードを書いてもらい、そこをドキュメント的に参照してもらいながら作業を進める

  • コーディング規約などはCursor用に .cursor/rules/foo.mdc で定義

    • 基本的に mdc ファイルもCursorに書いてもらう。ある程度チャットでやり取りしたあと、開発を進める上でのルールが固まれば「mdc に書いて」と依頼すれば書いてくれる。

このような感じで、基本的にドキュメントやテストなどはすべてAIのためにもちゃんと書く、という意識を常に持っていた。
私自身、記憶力はポンコツなので、何か仕様が変わるようなことがあれば都度ドキュメントを更新してもらい、自分の記憶が薄れてもAIがなんとかしてくれる(なんとかしてくれそうな)状況を常に意識して作業した。

結果、目立ったトラブルもなく、予想よりも順調に作業は進められている。

AIエージェントと共に行うコーディングでは、作業に必要な情報をどのようにAIへ共有するかが重要かも、と思った次第。