In short, the program does the following:
- Suggest a improvement of the current program (all source code is being sent together with the "proposer" prompt)
- Take the proposal and expand on it, making it more explicit and some concrete steps
- Propose edits from said proposal that the program then uses to overwrite the local files
- Supervisor saves the changes and restarts the process.
- If the program crashes, takes too little time or otherwise seems broken, supervisor rollbacks the latest changes and restarts again