【Cursorエディタ】Interpreter Modeで1コミット分の作業をまとめて指示する
動機:なぜInterpreter Mode?
Cursorエディタの良く使う機能は「Ctrl+K」だと思う。編集したい箇所と編集内容を指示すると、AIがコードを修正してくれる。
しかし、Ctrl+Kでは1ファイルのある部分しか編集できない。
リポジトリを整えて開発体制ができると、1コミットずつ作業単位を分けて考えることが多い。しかし、その作業を実現するために、ファイルのどの部分をどう作業するか自分で考えて、それぞれのファイルを開いてCtrl+Kする必要がある。
できれば、1コミット単位ぐらいをAIに指示してまとめて編集してほしい。
実は、ChatのInterpreter Modeを使うと実現できる。
なお、Interpreter Modeを使うには、Cursor Pro($20/月)プランが必要である。
Interpreter Modeはどのように革新的か ~ 次のレベルの自動化
Interpreter Modeのすごいところは、一定の実用レベルで、コーディング作業の自動化レベルを一段上に引き上げることだ。
以下の表にコーディング作業の自動化レベルの比較をまとめた。現状のほとんどのサービスは「Lv1. ファイル単位の自動編集」だが、Interpreter Modeはファイル単位でなく「Lv2. コミット単位の自動編集」ができる。つまり自動化レベルが上がり、より多くの作業をAIに委譲できる。
なお、「Lv3. スプリント単位の自動編集」としてDevin AIやAutoDevが聞こえているが、まだ実用ではない。
AutoGPTは1年前に実行してみたことがあるが、 AIによる修正のたびに以前修正したバグが再発して、延々と改善が進まないという状況が見られた。プログラミングをさせるには、作業コンテキストの保持や、AIの思考力がまだ足りないのだろう。
実例
やりたいこと
最近、Code-letsというコードスニペット検索Webアプリを個人開発している。
本アプリはまだSEOが弱い。
SSRはしておらず、コンテンツを描画するにはクライアントがFirestoreからコンテンツを取得する必要がある。
しかし、Googleのクローラーはデータベースからのコンテンツ取得を待ってくれないので、クローラに本来のWebページを見てもらうことができない。
そこで、初回アクセス時はデータベースの情報をHTMLファイルにJSONとして埋め込んで渡すことで、この問題を回避したい。
作業準備
Interpreter Modeによる複数ファイルの編集を始める前に、既存の編集箇所は全てコミットしておく。AIが変な編集をしても、git stashですぐに元に戻せるようにするため。
私:作業指示
まず、ChatをInterpreter Modeにする。
次に、以下のように指示する
AI:編集方針の提案
すると、以下のようにまず修正内容の方針をまとめてくれる。
AI:サーバサイドの編集
続いて、サーバサイドのファイルを自動修正する。
「ide.edit("編集ファイル名", "編集内容")」のようなコード部分はCursorの機能で、編集するファイルと内容を指定すると編集を実行してくれるようだ。
(なお、WSL Pluginを使っていると、ide.edit実行時にエラーが出る。)
編集を実行するか聞かれるが、チャットの送信時にCtrl+Enterで送信していると聞かずにすぐ実行してくれる。
結果はコードブロックで「'Successful edit. The diff is: …」のように答えてくれる。
これで、サーバーサイドのファイルは編集された。
私:次の作業指示
1ファイル編集するとAIの自動修正がいったん止まるので、残りのファイルも編集を指示する。
AI:クライアントサイドの編集
すると、以下の応答が返ってきた。
サーバサイド修正と同様に、「ide.edit(…)」のコードで修正処理を実行している。
これで、クライアントサイドのファイルも編集された。
編集内容の確認
コミット直後からAI作業を開始したので、AIが編集した箇所は直近コミットとの差分を確認すればすぐ分かる。
所感
実際にはAIの編集だけだと間違っている箇所などもあるので、各ファイルを確認してCtrl+Kで修正した。
でも、1コミット作業のたたき台にはとても良いと思う。コミット直後なら、AIが変な出力を出しても、git stashで戻ればよいだけだし。
また、CursorのAuto-Debugを活用すればもう少し自動化のレベルを上げられるかもしれない。(まだ使ってない)
全文
この記事が気に入ったらサポートをしてみませんか?