Original Reddit post

every “claude forgets everything” thread gets the same answers: obsidian, some memory mcp, a 2000 line claude.md. i tried all three. what stuck is dumber and has survived 3 machines and a few months of daily use. the idea in one line: separate how i work from what happened, keep both in git, make claude read the right slice at start and write back at the end. repo 1: how i work rules and preferences, split into small skills by job (writing, design, deploy, seo, outreach, whatever you do). packaged as a claude code plugin so only the skill for the current job gets loaded. the content is mine and useless to you, the shape isnt:

  • one skill per job, not one giant file
  • every rule has a weight (must / never / prefer) and a why. claude follows a rule it understands, it argues with a bare command
  • “user decided on <date>: …” lines are separate from general advice and always win
  • rules come from incidents. claude does something i hate, one dated line goes in. the file is basically a changelog of my annoyances repo 2: what happened one folder per project: readme (summary, stack, where things live, last status, open tasks), a dated log of what was done, decisions with the why, tech notes. one fact lives in one place. this is the repo that makes “why did we do X in september” answerable. repo 3: sources raw stuff i’m learning from (books, newsletters, talks). never fed to claude directly. i distill the useful parts into rules in repo 1, the raw text stays as a receipt. repo 3 improves 1, 1 drives the work, 2 records it. the hooks (this is the part that turns notes into memory)
  • session start: pull both repos, inject the core rules + who i am + a short project card for the folder i’m in. ~3k tokens. same hook re-fires after context compaction, so the rules survive long sessions
  • each message: a small router reads what i asked and tells claude which skill to load
  • before writing a page/template/style or running a deploy: blocked if the matching skill isnt loaded. deploy to prod also triggers “ask the human”
  • after a file is written: a script checks the text for my known mistakes and claude fixes them before i see it
  • on stop: if project files changed and nothing was logged, one nudge to write the log write back end of every task claude appends dated lines to the project log, updates last status and open tasks, commits, pushes. “from now on never do X” becomes a dated user decision in the right skill, pushed the same minute. laptop and two servers pull the same thing, so phone sessions (remote control into a server) write to the same memory. what it costs startup went from ~59kb of readmes per session to ~3k tokens. the log can grow forever, it only gets opened on demand. the one thing i prune by hand is the “last status” block in each readme, 2 minutes every few weeks. what i’d tell you
  • start with two folders and one rule: read this first, write back at the end. thats 90%
  • split how from what on day one. mixing them is how claudemd turns into soup
  • facts claude cant guess beat behaviour rules every time. “staging is at X, never touch folder Y” changed more than any “be careful” ever did
  • the hooks are the upgrade. memory in a file is nice. memory that blocks a deploy until the rules are loaded is a different animal no repo link, the content is my business and would be noise in yours. the structure is the whole trick anyway. happy to answer questions submitted by /u/tahayelkenci

Originally posted by u/tahayelkenci on r/ClaudeCode