I usually have to open a new Composer window due to heavy usage that quickly makes the recent window become very slow and unusable. So whenever I open a new Composer window and tried to continue from where I left off I realized that the new Composer have no idea of what I’v been doing in the previous window. Is there a solution to this?
Because of this lack of long term memory, Composer misbehaves badly and doesn’t align itself with my project’s goals anymore. Composer works great when on a single window but if you want to continue seamlessly in another window then you’ve got a lot of catching up to do. I’m feeling frustrated right now.
Modularization! Break up your workflow into smaller tasks. Once a task is complete, open a new composer window to start the next task. LLMs and AI agents will only retain so much context.
I suspect the problem is with the context window. For me modularization won’t work because each module can’t be in isolation. This means the new module must seamlessly start from where the previous stops, and for that to happen the new module MUST be context aware. So modularization will still bring me back to what I’m trying to avoid. In fact it makes it a lot worse for me.
I’d suggest if Cursor can implement auto-RAG. This will work in a similar way to Notepad but in auto-mode.
Is there any solution to this? I can’t possibly be starting from scratch, trying to provide context manually, every time I start a new conversation in a new composer window.
Ask it to take notes on current progress in a markdown down and give itself a prompt for the next composer session. State everything you’ve said in this post as the context that should be kept in mind so the LLM can be more thoughtful about how it captures context.
Attach that as the first attachment of new composer session and ask it to search through the codebase based on what the doc says and contextualize/create a plan for the new session.
Read the response and make sure the LLM knows what it’s talking about. If not, clarify and ask it to search some more, contextualize more deeply, and then restate the plan.
Usually 1-2 iterations will do the trick, and then you can continue pretty easily.
You can think of the notes as memories and share the notes as memories for the subsequent chat. It should be part of good project management anyway. At minimum humans should be guiding how the LLM should document its notes and thinking and summarization of progress vs those.
Also, use Gemini with its massive context in normal composer to bridge the gap. Ie. Create the document, ask Gemini to review it and do more code search to refine/augment it. Then tell Gemini you want a prompt that can be used with the notes doc to give to Claude in agentic composer.
Use that prompt and the revised doc. Since Gemini has a 10x longer context size than Claude, it’s a great intermediary
This looks like a solid plan but a lot of work at the same time! I’m trying to focus on coding and not taking notes. Guess that’s the only way out right now.
Before starting my most recent NextJS project, I spent some time with ChatGPT (web UI) and started with a rough explanation, outline of the project, full scope, intended goals, explanation of every level and milestones of the project. I would tell ChatGPT to brainstorm with me and ask questions about the project and anything it needed clarification on. We did this Q&A session several times until I was satisfied with the resulting “plan” for my project. I saved that as gpt-planning.md
in the root of the project. I worked on this plan for two days, off and on.
In Cursor + Composer, started the new project (PayloadCMS), told it to read the gtp-planning file and told it to break down that massively overwhelming file into more manageable files. It produced these:
gpt-brainstorming.md
gpt-future-features.md
gpt-milestone-planning.md
gpt-next-days-agenda.md
It’s only been 6 days since I have started this project, my largest yet.
The most important of those files for me is gpt-next-days-agenda.md
. Throughout my coding “session” for the day, as we (Cursor & Me) progress through the project, encounter errors, find solutions, brainstorm on new features, etc. I tell it to add to the gpt-*.md
file. We’re constantly editing gpt-milestone-planning.md
, it has a bulleted list that we mark off, headings, and version releases notes.
gpt-next-days-agenda.md
has Current Project Status, Completed Today, Next Steps, Current Focus. Throughout our session, if I feel it’s straying off the project, it tries installing a package we don’t need, or it proposes a fix to a problem we fixed previously - I tell it to refer to our Docs (gpt-*.md files). So far this has kept my project on track without fail.
This is my first time using NextJS and PayloadCMS.
As we iterate through our code, I come up with new ideas on existing features and new features. I literally tell Composer to brainstorm with me, and we added some new docs:
gpt-image-management-code.md
gpt-member-mods.md
gpt-playwright-testing.md
gpt-server-setup.md
I started with a generic NextJS .cursorrules
from https://dotcursorrules.com/ and have even successfully had Cursor update it as we progress.
While Composer may lack “memory”, this is what I have done to keep it on track.
what is the structure of your codebase?
Would you be able to provide a Gist of the initial “planning” prompt(s)?
This is an interesting approach, glad to see it works!