AI-based automated programming can be classified in levels of automation similar to those used for autonomous driving. Currently, I am interested in understanding how high levels of automation can be achieved using Cursor’s features and what functionalities are expected to be implemented in the future.
In agile software development, the following units of work are common:
- Feature branch: A unit of work for completing a single feature or bug fix.
- Commit: A small, stable, and bug-free unit of work that passes tests. Multiple commits make up one feature branch.
- File: A unit of work related to a single file. Several files can constitute one commit.
Based on these units, I defined the levels of automation as follows:
Lv1. File-level Automation | Lv2. Commit-level Automation | Lv3. Feature-level Automation | |
---|---|---|---|
Examples | Cursor Editor (Ctrl+K) ChatGPT for code generation GitHub Copilot |
Cursor Editor (Interpreter Mode, Auto Debug) | AutoGPT Devin AI AutoDev (Microsoft) |
Unit of Work | A file | A commit | A branch |
Editing Instructions | Specify a part of the source code and how to edit it. | Instruct how to edit a project that includes multiple source codes. | Indicate what features you would like to add to the system |
Automation Level | Low | Medium | High |
Control Level | High | Medium | Low |
Method to Check Differences | Editing section diff | Commit diff | Pull Request description❓ |
As the level of automation increases, AI should do more new✨ things of the following:
Level 1: File-Level Automatic Editing
- Edit the source code according to instructions.
Level 2: Commit-Level Automatic Editing
- Develop a strategy for how to edit each file.
- (Loop for each file):
2.1. Edit the source code according to instructions.
2.2 Test & Debug: Resolve errors to make the app executable.
Level 3: Function-Level Automatic Editing
- Develop a strategy for what kind of commits (units of work) to stack to realize the goal?
- (Loop for each commit):
2.1 Develop a strategy for how to edit each file.
2.2 (Loop for each file):
2.2.1. Edit the source code according to instructions.
2.2.2 Test & Debug: Resolve errors to make the app executable.
Of particular interest is the potential for the “Interpreter Mode” and “Auto Debug” to reach “Lv2. Commit-level automatic editing.”
For example, when starting commit work, entering the planned commit message in Interpreter Mode and editing multiple files can lay the foundation for that commit (this has been confirmed to be feasible).
Furthermore, preparing tests and using Auto Debug should advance the work towards completing a single commit (however, the feasibility of Auto Debug has not been fully tested yet).
Thus, the current level of automation in Cursor is slightly below Level 2.
Additionally, there are external projects aiming for “Lv3. Feature-level automatic editing,” which resembles a bold attempt to achieve full automation immediately. In contrast, I believe Cursor will gradually increase its level of automation from lower levels. I hope it will systematically build up practical automation features and ultimately reach automation level Lv3.
So, how can we increase automation levels using Cursor’s features? (Especially the Auto Debug use case)
Also, what features will be implemented in the future that will increase the level of automation?