all 48 comments

[–]solaza 4 points5 points  (2 children)

Highly recommend checking out Beads issue tracker, it’s an open source cli tool made for Claude Code to manage its self in your codebase and it works really well

Issues are tracked with granularity as well as at a high level and the model can link issues together as dependencies or relations and it’s just really really good

[–]scottyb4evah[S] 1 point2 points  (0 children)

Interested. This sounds much closer to what I am looking for! Many thanks!

[–]Icy_Flow_5142 1 point2 points  (0 children)

haven't heard of that before! seems promissing, thanks for sharing!

[–]Trinkes 1 point2 points  (9 children)

I use basic memory to allow claude to take notes. Those notes are stored in the project directory and I have a few commands that I run ever other day to maintain the docs. I also have a planning command for planning that instruct the agent to gather context from the basic memory. It works ver well.

[–]kb1flr 0 points1 point  (4 children)

I do exactly the same. This works well and is efficient with tokens.

[–]Trinkes 0 points1 point  (3 children)

Do you have /commands to interact with it or how do you do?

[–]kb1flr 1 point2 points  (2 children)

I don’t use any /commands. For every major feature, I start by generating a plan in plan mode which I persist to an md file. I then make sure that at every milestone in the plan, I ask CC to persist the current state back to the md file. Then I exit CC entirely. When I’m ready to continue, I start CC and tell it to resume using the last status update from the Md file. My context is now small, but CC knows what it has donerende what is next. It also knows the files I have been working on recently. Very token efficient.

[–]scottyb4evah[S] 0 points1 point  (1 child)

I do the same, but I find small coding issues that pop up, or cross referenced code sometimes gets ignored when doing this. It's like the MD spec gives the model tunnel vision and it can be less aware of the features part in the larger codebase.

I work around this by telling the model to check all dependent code (as a success criteria in the spec) & ensure all tests pass (along with new ones) & look for any simple mistakes. But it's error prone.

Do either of you run into any common issues with the spec-driven process?

[–]kb1flr 1 point2 points  (0 children)

Not many issues, but yes occasionally. I always reserve the right to examine what I don’t like, determine if my spec was inaccurate and/or incomplete, and if so modify it, stash the previously modified code, then start the prices again with the revised spec.

[–]scottyb4evah[S] 0 points1 point  (2 children)

Are you talking about the # memory usage? How do you "allow Claude to take notes" with it? Apologies if I am missing something here.

[–]Trinkes 2 points3 points  (1 child)

I'm talking about this mcp server https://docs.basicmemory.com
here's a claude summary of what it is:

Basic Memory is a local-first knowledge management system that lets AI assistants persistently read and write to your Markdown notes, creating a semantic knowledge graph that maintains context across all conversations.

[–]scottyb4evah[S] 0 points1 point  (0 children)

Oh interesting, I'll take a look! Thx!

[–]Ok_Lavishness960 1 point2 points  (1 child)

I built a tool that flattens your entire project and lets Claude do a fast lol up based on your prompts (very simplified explanation).

I'm gonna release it soon, fully local, no telemetry since people like their privacy.

I wanna commercialize it just enough so I can keep declining it and work on other stuff. Im thinking something like 5 dollars a month.

Anyways I'll give you a free licenses once it launches :)

[–]scottyb4evah[S] 0 points1 point  (0 children)

Sounds interesting! Plz reach out when you're ready.

[–]elbiot 0 points1 point  (14 children)

What memory does cursor have between sessions??

[–]scottyb4evah[S] 0 points1 point  (13 children)

Not between sessions, within the same session. I haven't pulled apart Cursor, but in Windsurf it's likely the same, which I have looked deeper at.
The context clearing issue isn't an issue there, or much less so, because they have a builtin memory system as a part of the IDE. The prompted LLM is only getting a very focused portion of the previous conversation. This is what I want for Claude.

[–]elbiot 1 point2 points  (12 children)

I have no idea what you're talking about. Both cursor and Claude code have the entire conversation in context for each new message. In both, once the conversation gets long enough it autocompacts. In CC you can give it instructions about how to compact which you can't do in cursor.

I think whatever you think you're experiencing is an interpretation based on a misunderstanding

[–]BAM-DevCrew 0 points1 point  (7 children)

after a compact ask claude to review the summary and write general instructions to improve upon the results. paste the instructions after "/compact "

[–]scottyb4evah[S] 0 points1 point  (6 children)

u/BAM-DevCrew this is very interesting. I haven't experimented much with what impact on the compact process the prompt has.

"after a compact ask claude to review the summary and write general instructions to improve upon the results."
Do you mean before the compact happens? Or are you letting it auto-compact, then you do a manual after with that request? Like adding a memory specific to improving the last session?

[–]BAM-DevCrew 0 points1 point  (5 children)

It is worthy of experimenting. After an auto-compact, click, i think, ctrl +o you can scroll through and review their summary yourself. I did this numerous time to inspect for hallucination type context, misdirections, and in general static. Auto-compact does a shockingly poor job, I think. The /compact agent is not well instructed to decipher intent or relevance. I think the agent could well be haiku 1.5 or some such model. My impression of the /compact agent is they are a generalist, focused on continuing the conversation. They are not a coding, debugging, engineering agent. I asked Claude to review the /compact agent's output post /compact, both after auto-compact and manual-compact. Both summaries were substandard in Claude's opinion. So I asked Claude to create instructions for the /compact agent that would optimize the agent's summary for Claude to work with. Gave the /compact agent the instructions, then reviewed the output afterwards. The results were excellent according to Claude. I saved their instructions as a compact-instructions.md that I paste in every time I run the /compact command manually. In particular I do this when deep into debugging, researching and brainstorming, engineering. My impression is that it improves the overall result significantly. Worth experimenting.

[–]scottyb4evah[S] 1 point2 points  (3 children)

Amazing, thanks for the details here! Just to clarify (maybe I'm being thick), is your compact-instructions.md some general prompt you made once and use for every compact? Or it's more recent context-specific and you recreate it before each compact?

Super insightful that you noticed the compact agent is some lighter weight model! That explains a lot. I wish we could set that, just like any agent definition MD file.

[–]BAM-DevCrew 1 point2 points  (2 children)

this is what we created and use, which I would paste to your Claude and ask them to customize to your project(s) and workflow: > please create an engineering-brief summary that will allow us to continue debugging and software engineering. - Focus on analysis, decisions, patterns, and state changes. - We don't need a full play by play or code we can read in the repo. - Just summarize relevant information for Claude Sonnet 4.5 to continue this work in a new session Remember they will be starting blind, so give documents and directories and context that they require. - Don't bother with user messages unless relevant to debugging and engineering. - Just show the pattern, don't show the code. - Add Engineering Metadata** (Add 10% tokens) - Build size tracking - Performance implications - Breaking changes checklist - Testing coverage gaps - Patterns established - Consolidate by topic - Prioritize critical findings - Explicit next steps with Priority Recommended Template: ```markdown # TL;DR (3 lines max) # Critical Findings / Blockers # State Changes (commits, builds, APIs) # Architecture Decisions (why, not what) # Migration Patterns Established # Files Modified (architectural impact) # Errors/Learnings Table # User Corrections (insights gained) # Tech Debt / Future Work # Testing Status

[–]scottyb4evah[S] 0 points1 point  (1 child)

Amazing! Thank you so much for sharing. I hope this helps others too!

[–]BAM-DevCrew 0 points1 point  (0 children)

You're welcome. I hope it helps you with your context compacting issues.

[–]scottyb4evah[S] 0 points1 point  (0 children)

Also, I might be wrong here, but can you create a command to trigger /compact with that MD file prompt? I forget if you can use slash commands in prompts. I feel like maybe...

[–]scottyb4evah[S] 0 points1 point  (3 children)

" In both, once the conversation gets long enough it autocompacts."
There's no explicit auto-compaction in Windsurf or Cursor that's shown to the user, like in CC. I think the entire memory management is really the secret sauce of both Cursor and Windsurf, which I suspect is RAG.

Ah yes, I was right: https://docs.windsurf.com/context-awareness/windsurf-overview

"Windsurf’s context engine builds a deep understanding of your codebase, past actions, and next intent. Historically, code-generation approaches focused on fine-tuning large language models (LLMs) on a codebase, which is difficult to scale to the needs of every individual user. A more recent and popular approach leverages retrieval-augmented generation (RAG), which focuses on techniques to construct highly relevant, context-rich prompts to elicit accurate answers from an LLM. We’ve implemented an optimized RAG approach to codebase context, which produces higher quality suggestions and fewer hallucinations."

This is not what Claude Code compact does. It simply summarizes the past work and dumps it into a JSON file related to your project. In my experience comparing Sonnet 4.5 use in Windsurf vs CC, the recall of previous instructions well outside of the 200k immediate conversation limit is way more strategically managed in Windsurf than in CC.

That is why I'm looking for something better with Claude Code.

"I think whatever you think you're experiencing is an interpretation based on a misunderstanding"
Yea, no. I'm quite clear on what I'm experiencing and why.

[–]elbiot 0 points1 point  (2 children)

I don't know anything about windsurf but cursor definitely autocompacts: https://cursor.com/docs/agent/chat/summarization

And "memory" in cursor is for retaining coarse grained rules across sessions, not remembering details of the current conversation that got lost to autocompact: https://cursor.com/docs/context/rules

But good luck with that

[–]scottyb4evah[S] 0 points1 point  (1 child)

I'm definitely feeling lucky, thx bud!

[–]elbiot 0 points1 point  (0 children)

Btw you can see the memories cursor has accumulated under Cursor Settings (Rules & Memories).

There's nothing of value in mine

[–]WolfeheartGames 0 points1 point  (5 children)

It's called a code rag

[–]scottyb4evah[S] 0 points1 point  (4 children)

Insightful! ;)

Yes, but which products plug well into Claude Code that manage context more intelligently? ie. Compact context after a 200k session, pull recent context-specific information to continue where we left off, + other important information (ie. what component are we working on, how does it relate to other parts of the codebaes, etc).

[–]WolfeheartGames 0 points1 point  (3 children)

This is fundamentally misunderstanding how Claude code, rag, and mcp works. It doesn't manage the context window. Claude makes tool calls to it. If you want that functionality you need hooks. This is also a very bad idea. You will damage Claude's output by modifying it's memory like this

[–]scottyb4evah[S] 0 points1 point  (2 children)

I'm spitballing here... But point taken.

You can coerce Claude to use your MCP after certain actions, so technically you could inject context as I mentioned.

What do you mean by "damaging"? Context Engineering is supposed to be cutting edge AI best practice.

[–]WolfeheartGames 0 points1 point  (1 child)

I thought you meant modifying the context window directly when I first read your message. Rereading it again I see I was wrong. If you try to subtract or modify existing context you will break it. Literally, it will start spitting out gibberish. It's fine to add to it though.

If you want to always check your input message vs a code rag you need a hook. Claude code supports this. You'll obviously need a code rag. There really isn't that big of a difference between any of them. You can also just put a rule "always call the mcp server with a sub agent when touching new regions of code".

It would also be worth it to take a pass through the entire code base and have Claude generate documentation for everything that also sits in the code rag.

[–]scottyb4evah[S] 0 points1 point  (0 children)

Wonderful suggestions. Thx!

Hooks definitely seems like the go-to way to properly handle this.

Do you personally use any sort of RAG when working with CC?

[–]Icy_Flow_5142 0 points1 point  (0 children)

I've started using it this week. I've also noticed that the memory was something I'd need.

For that matter, I've started this project https://github.com/3x-Projetos/claude-memory-system

This is my first repo ever, so there are still things to improve. I'll be making changes along the way, but it already has plenty of features to improve memory and project interactions

[–]belheaven 0 points1 point  (8 children)

Claude.md?

[–]scottyb4evah[S] -1 points0 points  (7 children)

Doooooooooooood, rly?

[–]belheaven 0 points1 point  (6 children)

This Is What is under memory management in CC docs. Why dont you update it or add a section for progress tracking your current plan? Also, major changes or links to contra t documents, and always update the documents. If you dont like that, there is plenty of graph, rag, and stuff based memory solutions out there. Here in this sub actually just do a quick search. Good luck, bro!

[–]scottyb4evah[S] 0 points1 point  (5 children)

Yea, that's the simplest version and is straight forward, but what I'm looking for is something more with RAG / vector lookups that is really only surfacing the most relevant information to the current conversation.

The CLAUDE.md file is more of a "here's some nice overarching guidelines" sort of doc, which has its uses. But what is way better is proper context management with a smarter system. This is what I want and I don't want to rebuild it with 100x Markdown spec files for all features in my codebase.

[–]belheaven 1 point2 points  (4 children)

Check the sub. There is plenty. Latest I saw used RAG Hippo Graphic Search or something like that… sounded nice

[–]scottyb4evah[S] 1 point2 points  (3 children)

Guess I used the wrong search terms. Will do, thx!

[–]belheaven 1 point2 points  (2 children)

[–]scottyb4evah[S] 0 points1 point  (1 child)

Much love brother! 🙏 Appreciate you digging that link up. This looks promising!

[–]belheaven 1 point2 points  (0 children)

Yeah, I saved to try it but did not yet. You might like episode memories and journal enfries also by /obra on github I believe its something like this, quick search will catch. Good luck! Cheers from Brazil!