I use a prompt to instruct my agent to keep track of a development-checklist.md
file in my docs folder. I also have a changelog.md
file it manages. At the start of every session, I ask it to check over its developer checklist, which has context refreshers about the project, references to files, and environment setup, if there is one. In my global prompt, I also reference this file and what it’s for, reinforcing that context.
My system prompt instructs it to plan its steps out in the checklist. I simply tell it to execute its own plan and to be sure to update its checklist as it goes so context isn’t lost. Because context refreshers are in the checklist file, each time it finishes a function or a feature, it will update its checklist, marking off tasks as it goes and refreshing its context on important aspects, files, and directions for the current project.
After it’s done, I ask it to read the checklist thoroughly, then read the changelog fully, and to migrate anything completed to the changelog with today’s date (I provide it; it never uses its tools to figure it out.) and to add it to an existing date if present. It’s essential to ensure it uses the read file tool and reads the files entirely before editing. Once it’s migrated tasks, I ask it to clean up its checklist, give it what I’d like to work on next, and instruct it to plan everything out in its checklist. I keep templates in the repo in case it gets confused or needs a refresher on what should be tracked in each file.
Once done, I review it to be sure there are no changes or additions. If there are, I tell it to update it; otherwise, it rarely goes back and reads it, even when instructed.
I have a couple of rules that trigger based on what it’s doing, along with a global coding rule that has several things that I always want it to do and remind it of often, such as reading files entirely before editing to look for existing or similar functions before writing a new one. (It loves orphaning functions.)
My system is more complex than this, but this is the basic rundown. Couple this with some targeted rules, MCP servers, and documentation for what you’re working on, and Cursor will work much better.