There are many other posts here which agree with you. Filling context with what you think the model needs adds nothing and possibly just inflates context which is harmful.
A good method seems to be only make a skill or memory when the LLM gets something wrong, or if you actually observe it's always doing the same step and you can get the model to the same place with less tokens.
I’ve basically never edited a skill or memory myself. I make the LLM do it as part of the /handoff skill before I clear a session. That also includes pruning existing skills/memories and resolving any drift.
Even the /handoff skill was written by the model…
It's funny because with so many different implementations of /handoff, I wonder if anyone has benchmarked handoff-and-resume to figure out what the best performance implementation looks like.
I also imagine that varies by model.
Mine are project-specific, which is a bit annoying since I’d like it to be global but there are some project-specific additions. Maybe I’ll (ask Claude to) refactor that to be more composable.
It should be a first class feature of the harness, tbh. It kind of is with the /compact [focus] parameter but this is coarse and leaves no record. I find keeping the handoff files in the repo to be useful for historical context and later debugging.
> Filling context with what you think the model needs adds nothing and possibly just inflates context which is harmful.
The solution that I've developed is, let the agent figure things out efficiently, without inflating the context. I have what I call a smart repo that better explains this at
https://github.com/gitsense/smart-ripgrep
The basic idea is, when the agent does a ripgrep it gets back files + matching lines + context.