Original Reddit post

I use Claude Code as a daily work assistant, not just for code. Everything it needs to know lives in a git repo: a rules file it loads at the start of every session, context notes per domain, and a folder of small memory files. On paper this works. In practice, one thing keeps breaking, and I’d like to know how others handle it. The problem: it reads the notes, then answers from recall anyway. Two examples from a single day. Later I asked why my curtains hadn’t closed. It investigated properly, found a real error, and then proposed building an automation to fix it. That automation already existed. It had been running since August, triggered by the exact same event. It just never looked. And the rule “check the actual system before you state how it behaves today” was already in the rules file. It had been there for weeks. It was read at the start of the session and broken three times that same day. What I tried Writing the rule down harder does nothing. Adding it a fourth time changes nothing — that was the point where I stopped writing rules and started building plumbing. So now there’s a UserPromptSubmit hook that runs before every message I send. It takes the words from my message, greps my own source code and notes, and pastes the matching lines underneath the question, with an instruction to read them first. The idea: make not looking a deliberate choice rather than an oversight. It helps. It’s also clearly not enough. Where it still falls short Picking search terms is crude. My tool wants all words present in the same section, so a normal sentence matches nothing and it falls back to fewer words. “company car” plus “reserve” finds exactly the right section; “car” plus “company” finds an unrelated page about something else. It should weight rare words, not the first ones it sees. Dating sections is fragile. My notes grow by appending, so the oldest state sits at the top. I sort by the newest date found in each section — but any date in the text counts, including future ones from a plan, so one section came back claiming it was the newest by three years. Some things aren’t files. My home automation rules live inside the home automation app, not in the repo. Nothing to grep. The best I could do is inject a reminder saying “this lives in the app — go fetch it before you answer”, which is a note to self dressed up as tooling. Noise vs silence. Pasting context under every message gets ignored. Pasting it rarely means it’s absent when it matters. A bad match that looks authoritative is worse than nothing — that’s how wrong answers get made in the first place. What I’m asking Does anyone have retrieval that actually fires reliably on the right things, without drowning every message? How do you rank “which note is current” when notes are append-only and full of dates? Do you force a lookup as a hard gate (refuse to answer before a tool call has run), or do you just inject and hope? For state that lives in an app rather than in files, do you wire the live system into retrieval via MCP, or accept that it needs a manual check? Not looking for “use a vector database” as an answer unless you’ve genuinely seen it beat plain search for this. My notes are a few hundred KB of prose, not a corpus. submitted by /u/DoubleU-Belgium

Originally posted by u/DoubleU-Belgium on r/ClaudeCode