Fable helped me figure out why I couldn't understand it over the summer
Over the summer I was getting frustrated with the way Claude talks (it wasn't just me). I build Sputnik Intelligence, a media intelligence product, almost entirely with Claude Code. Most days it works. But in July and August there were conversations where I read a reply two or three times and still didn't know what it was telling me. I kept typing things like "explain simply" and "what do you mean by that". I couldn't say what was wrong with the writing, only that I was lost.
In September I asked Claude to investigate itself.
Step 1: get the data
My first prompt:
Can you help me investigate something? During July and August, I remember we had conversations working on this where I found it hard to understand what you were telling me. First step is to find those parts of those conversations. I think you can search past sessions but I'm not sure, can you do that?
It could. Claude Code keeps full transcripts of each session on disk, and a separate history file with every prompt I ever typed. The transcripts only went back to August 3. The prompt history covered all of July and August: about 3,500 prompts.
Claude scanned my prompts for phrases like "I don't understand", "explain simply", "wait", "I thought we", and "be concise". It found 139 raw hits and curated them by hand to 52 real ones. On July 9 alone I had pasted "simplify the language in the docs. They're hard to read and wrap my head around" into six sessions within eighteen seconds.
Step 2: more data from the chat transcripts
For the August cases the transcripts had both sides. Claude pulled its own reply before each of my complaints, and the reply after.
On August 12, reviewing an alerts design, it wrote "indexed_at is a landmine" and proposed that "digests group by search". I wrote: "I don't understand 'digests group by search'?" One turn later it explained: forty hits under subheadings instead of one flat list. One plain sentence, delivered a turn too late.
On August 17 it sent me latency measurements between servers and ended with "Revised bar, replacing the one in the doc." I wrote: "So concisely what are you saying?" Its answer: "today's NYC box is already ~118 ms from the bucket, so Helsinki may well be faster, not slower." That sentence should have been the reply.
For July the transcripts were gone, but I had often quoted the phrase that lost me. "What is 'silent provider death'?" "Not sure what 'The recurrence promotion' is?" "What is spool?" Those quotes were the surviving evidence.
I remembered the metaphors too:
I remember that you claude used to use metaphors for things that I found hard to understand. As the next step, I want to identify a list of examples of those.
Claude searched its own August replies for figurative language and found about 150 examples. Trap, lever, landmine, symptom, mirror, bitten, anchor, seam, blast radius. In one session it used "the seam" fourteen times for the gap between two search indexes during a rebuild. On July 30 I had already told it: "please don't use so many metaphors in the future, they don't help, just say 'Job' (for a queued job), don't say 'doorman'. Remember that." It remembered but the rate did not drop.
Step 3: so why was it using those weird words and metaphors
can you look at a set of specific examples of 'labels I coined for a mechanism', and investigate for each label: at that time, where did that label or metaphor come from? Does it or did it exist in memory? In the docs files or codebase at the time? Did you come up with it earlier in the conversation?
Claude picked twelve labels and, for each, checked git history, its memory files, my prompt history, and the transcripts. Nine of the twelve it had coined itself. I had introduced none of them. In seven cases my only use of the word was quoting it back to ask what it meant.
Some were invented mid-conversation and never written down anywhere. "Silent provider death" named an API that stopped answering while the job still printed "Done", but the phrase exists in no file. Others it had written into a doc once and then kept re-importing. "Landmine" went into a doc on July 16, became the name of a memory file on July 17, and that memory index loads at the start of every session. So a word coined once in July kept reappearing in August with no other link to the original conversation. Same for "lane", "seam", and "guardrail".
One more finding: every label I questioned was gone within the hour. "Spool" became "outbox" in 41 minutes. The ones I didn't question kept spreading.
I also asked which model was doing it. July was Fable 5. In August, Opus 5 wrote eleven of the twelve replies that made me ask for clarification.
Step 4: clean up the root causes
The words lived in the docs and in Claude's memory, so telling it to stop was never going to be enough. The last step:
can you look through the docs and the current memory, and remove this confusing language and metaphors, so that we don't keep using them?
Sixty-six doc files and fifty-one memory files changed. Six memory files were renamed. "Lane" became "pipeline", "guardrail" became "budget limit", "landmine" became "known problem", "seam" became "index cutover gap". The memory file about my original complaint now holds my exact words, a banned-word list with replacements, and a rule against coining two-word names for mechanisms.
Conclusions
Claude reads its own words as vocabulary we share. When it names a mechanism, the name feels settled to it from then on, and the memory system makes it settled across sessions.