I have read through the project and I still don't understand what this thing is for and why it is to be preferred over the harness's native memory management tools.
I have read through the project and I still don't understand what this thing is for and why it is to be preferred over the harness's native memory management tools.
My previous rule was that I never use AI for writing that expresses my own opinions or tries to be convincing (anything on my blog for example) but I'll let it do technical documentation.
The top of a README is about convincing and explaining why I built something though, which means it should fit my no-AI policy after all.
Give them 2 positive examples. A list of things to do, a list of things not to do and you have them giving you the exact output you want.
"Write a readme make no misteaks" is not deft usage.
I don't know why the models were generally trained to be so brief, but it's definitely not the way anyone I know actually writes. A second pass is always a good idea to clean this stuff up. And, thankfully, the models are all pretty good at that.
Well duh. RL can only train behaviors that can be defined. Clarity and elegance are damn subjective.
Also, I doubt we'll ever get AI to understand what clarity is to a human. They have such enormous contexts that what's clear to them is not clear to us.
Maybe give it a try next time you write a readme with agents. That and giving it an example of good README in real world repos can increase dramatically the likelihood of synthesizing a serviceable README.
My belief has always been that they see the document as more like a test that’s a single task and not just one piece in a larger process and so they treat it like a test where there’s a right answer. They know they don’t really understand the question being asked though so they default to a mindset of, “Well if I just put everything in there some of it has to contain the correct answer” so you end up with this document that’s full of “what”s and “how”s, but completely void of “why”s.
You’ll also often see them fill up space answering easy questions that match the structure of things that are in other documents instead of focusing on the actual hard problems in the design because the hard problems are often unique and their answers may not fit the existing patterns in the examples. There isn’t the instinct to go, “Yeah, none of these example documents talk about the servers were going to deploy it on, but this has to be deployed in an EU cluster because of GDPR laws so I need to add that” because they’re mostly just pattern matching at first.
Usually once they’ve experienced the whole process first hand it starts to click because they start to understand where a design document fits into the larger process so they get a feel for what information matters and what doesn’t.
I think when people just tell an agent to create a README you have the same problem because both the human and the agent see it as just a checkbox type task. The agent sees it as an isolated task snd has no fucking idea how the README is going to be used and the human isn’t giving them that context so they just spit out a bunch of stuff that’s factual and fits the patterns it knows, but is fairly useless.
Coding agents forget project decisions across sessions. You say “use Postgres, not SQLite” on Tuesday; Thursday a fresh chat invents SQLite again. jevmem watches each turn (Claude Code hooks; Cursor/Codex via agent/MCP), asks Jev a few typed save/skip questions, and appends keepers to JEVMEM.md in the repo. Change your mind later and the old line is marked superseded, not deleted. Next session those lines get injected back into context.
Vs Claude Code’s native memory: native is Claude deciding what to write into its own auto-memory / MEMORY.md under the local project store. That’s free and local. jevmem is different on purpose: the file lives in the repo (git-friendly, shareable), save/skip is a small typed gate rather than free-form “Claude, remember this,” and superseding is first-class. Tradeoff is real: scrubbed turn text goes to TypeSafe’s Jev API (and optionally an LLM to write the line), and full auto-capture is Claude Code only today.
Not claiming it’s always better than native. Prefer it when you want a repo-owned decision log that survives sessions without you prompting “remember that.” Prefer native (or nothing) when you want zero third-party traffic.