This will be useful:
My strategy is to outline my entire directory and make .md files per directory.
I attach them for different parts I work on. You could even write up a simple script (using cursor) to update the md files every minutes or better yet, use your git log religiously and understand any changes and diffs.
Remember that although these models have small context windows in relative terms, you have to consider the process by which it could retrieve context when you need it to. Just like a human wouldn’t be ingesting the full codebase in one go, there’s ways you set up your directories, take notes, and use crafty engineering to make your dev experience better.
The AI can do a lot for you, including help you help it by telling it to provide strategies to work around its limitations with context, and asking it to design files and scripts to help you manage projects more efficiently.
You can keep the rules in your .cursorrules file so that every project always has the same approach.
cursorrules tells overall IDE context to look for md files and always look for xyz across any app you make (yes most apps should have a standard followable structure otherwise TDD/PRDs wouldn’t really exist). Consider that the sop on how you’ll provide context and ask cursor to help you.
then your .md files will be the specific context for a request, and you can design by directory or by functionality or any cut.
The only goal is that you have a MECE notebook. For everything you’re trying to code, have notebooks that collectively are mutually exclusive, collectively exhaustive, and rewritten optimally by something like Claude (just use cursor and feed it all the .md files as context and ask it to rewrite them for you).
Again, you don’t have to ever leave the IDE ecosystem. The answer is in front of you. Use the IDE to work around issues you feel like you’re having with your dev experience.
Thanks for sharing! Now that Notepads are gone (what were they thinking?), I guess we are forced into coming up with some kind of alternative. Maintaining separate .md files is an interesting idea. One thing it lacks though is ability to supply a context. I mean will Cursor auto-associate given md file with the folder in which it finds it? Probably not. But then we can proably reference the whole folder and put an instruction into .cursorrules file to look for .md file in every supplied folder first. This could work, but will need to try it out.
Notpads are now left pane under filetree.
What do notepads add over a file?
Yeah, that’s a great post! Unfortunately, I wasted a lot of time to figure that stuff out before I found that post. My key distilled methods are:
- write business rules, architecture and standards in a README document so you don’t have to restate it over and over again
- document public interfaces and don’t let the AI read the source behind libraries it’s using … just include the documentation for all AI personas (frontend vs backend, etc.)
- always use unit tests, and in fact try to do TDD … this is SUPER important to get a module’s cyclomatic complexity above 400, I found.
File/folder @ mentions. Files should have that (and @ Docs mentions), would solve so many things.
As @leoing mentioned Notepads allow you to add context to plain text. Also turns out they didn’t remove Notepads after all, they were moved to their own left side pane:
If core team could provide detailed Release Notes, that could prevent so many false negative posts on this forum
“Cursor should maintain an internal understanding of the system itself.”
This is not possible. Although Cursor already kind of does this, my guess is that your history for a specific project is likely stored as a vector database somewhere. Every time you ask Cursor something, it searches for the closest matching texts from this vector database. There might also be some post-processing mechanics in between. But sending a single prompt the size of a Bible would cost too much. Maybe in the future, this will be possible.
A good trick that I use myself is that every time I open a new chat, I not only tell Cursor what needs to be done, but I also explain the relationships within the database structure, the technologies used in the system, etc. Additionally, I provide code examples that are already part of the software. This makes things easier and is still much faster than coding the old-fashioned way.
Yes, absolutely, and it is likely this is the next step improvement/update they are working on
Many time, Agent kind of forgets to change the UI when changing something in the backend because they are in different files, stuff like that.
It depends how it’s done, obviously context limitations matter. Maybe the max prompt eventually can be 10x or 100x what it is now and this issue will resolve itself