見出し画像

【Cursorエディタ】Interpreter Modeで1コミット分の作業をまとめて指示する

動機:なぜInterpreter Mode?

Cursorエディタの良く使う機能は「Ctrl+K」だと思う。編集したい箇所と編集内容を指示すると、AIがコードを修正してくれる。

AI編集のdiffが表示される

しかし、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にする。

Interpreter Modeを指定

次に、以下のように指示する

/landingにアクセスした場合は、スニペットに関するデータをファイヤーストアから取得して、index.htmlにJSONデータとして埋め込み、クライアントサイドでsnippetを描画するように修正してください。
日本語で回答をお願いします。

プロンプト
実際には、ChatGPTで下調べした内容を参考情報として雑に追記した

AI:編集方針の提案

すると、以下のようにまず修正内容の方針をまとめてくれる。

AIの出した修正方針

AI:サーバサイドの編集

続いて、サーバサイドのファイルを自動修正する。

サーバサイドの編集内容

「ide.edit("編集ファイル名", "編集内容")」のようなコード部分はCursorの機能で、編集するファイルと内容を指定すると編集を実行してくれるようだ。
(なお、WSL Pluginを使っていると、ide.edit実行時にエラーが出る。)

編集を実行するか聞かれるが、チャットの送信時にCtrl+Enterで送信していると聞かずにすぐ実行してくれる。

auto-execute

結果はコードブロックで「'Successful edit. The diff is: …」のように答えてくれる。

これで、サーバーサイドのファイルは編集された。

私:次の作業指示

1ファイル編集するとAIの自動修正がいったん止まるので、残りのファイルも編集を指示する。

追加の作業指示

AI:クライアントサイドの編集

すると、以下の応答が返ってきた。

クライアントサイドの編集内容

サーバサイド修正と同様に、「ide.edit(…)」のコードで修正処理を実行している。

これで、クライアントサイドのファイルも編集された。

編集内容の確認

コミット直後からAI作業を開始したので、AIが編集した箇所は直近コミットとの差分を確認すればすぐ分かる。

AIの編集箇所

所感

実際にはAIの編集だけだと間違っている箇所などもあるので、各ファイルを確認してCtrl+Kで修正した。
でも、1コミット作業のたたき台にはとても良いと思う。コミット直後なら、AIが変な出力を出しても、git stashで戻ればよいだけだし。

また、CursorのAuto-Debugを活用すればもう少し自動化のレベルを上げられるかもしれない。(まだ使ってない)

全文

Interpreter Modeによる1コミット作業の全文


この記事が気に入ったらサポートをしてみませんか?