DEV Community

Scott Sun
Scott Sun

Posted on

Claude Code Keeps Forgetting My Projects - Here's the Skill I Built to Make It Remember /project-registry

Monday's meeting, Wednesday's session: Claude asks \"what is this project about?\"

If you use Claude Code, you know the pattern. You left a half-finished plan, discussed architecture, revised review materials three times - all still there, except the context. Claude starts every session as a blank slate. It's smart, but it doesn't remember.

I manage 25 projects (training programs, hospital collaborations, talent reviews, plus a few technical ones). For a non-developer like me, the most expensive thing was never compute - it was re-explaining context every single time.

I tried everything: stuffing project lists into global config, pasting background before each session, building document trees. None of it worked - either too much maintenance, or Claude simply never read it.

Then I realized the problem: Claude isn't forgetful, I never gave it a memory system. It auto-loads CLAUDE.md from the project directory every session - a native memory interface I was completely ignoring.

The structure: a registry + per-project logs

Two pieces:

~/projects/
  PROJECTS.json          # registry: every project registered
  <project>/
    README.md            # for humans: background & scope
    CLAUDE.md            # for AI: status, decisions, todos, next steps
Enter fullscreen mode Exit fullscreen mode

PROJECTS.json is a list - one line per project: sequence, key, name, status, created date. 25 projects, one glance.

CLAUDE.md is the core. A markdown file auto-loaded by Claude Code every session, holding five sections: current status, decision log, todos, known issues, next actions.

The structure itself is cheap. The value is in the four disciplines below.

Discipline 1: Every decision records WHY

My old project notes only said what happened: revised the plan three times, added two features. Months later I couldn't answer why.

The rule: every decision must record its reason - no reason, no record.

- [done] 2026-08-08 - Single-version open-source strategy (why: forking creates permanent sync burden; expected: zero maintenance cost)
Enter fullscreen mode Exit fullscreen mode

Reason mandatory, expected outcome optional. Writing it takes seconds; three months later it answers the question you'd otherwise lose forever.

This also built a habit: record major decisions immediately. When a discussion lands on \"let's go with plan X\", Claude asks \"log this as a decision?\" - before the reasoning evaporates. Minor decisions get batch-recorded at save time.

Discipline 2: Session resume - from recollection to continuation

The real cost of Claude's amnesia was re-explaining. Now opening a project triggers three automatic steps:

  1. Read the project's CLAUDE.md
  2. Summarize last progress: \"last session finished the member module, CRM integration in progress\"
  3. List prioritized next steps, ask where to continue

Three days or three weeks later, it's one sentence to get back up to speed. Session resume (last progress + next actions) - once you have it, there's no going back.

The key habit: on save, Claude updates CLAUDE.md with this session's progress, decisions, todos - then commits to git. Five seconds, and every future session starts with full context.

Discipline 3: Attribution - a \"why\" that traces back

Project reviews always hit the same question: \"why did we cut that feature?\"

Without records, the answer is always \"I forgot\".

Now: say \"why X\" and Claude lists the relevant decisions in chronological order - each with its reason, status (executed / superseded / shelved), and downstream impact. The decision chain is visible.

This matters most for business work. You adjusted a quote, changed a collaboration boundary - months later when someone asks \"how was this negotiated?\", you can answer instead of asking around.

Discipline 4: Health checks and rollback

25 projects inevitably contain zombies: marked \"in progress\", untouched for three months. A content-level check flags them: status contradictions, staleness, todo backlog, unimplemented decisions. Checks are proactive and bring relevant decisions along.

Mistakes get rollback: everything is in git, CLAUDE.md has rotating backups. Say \"rollback\" - diff, confirm, restore. Rollback itself is backed up first - you can undo an undo.

Why this works for non-developers

I designed this for technical projects initially, but business projects benefit the most:

  • Business projects run for months - cross-session probability is near 100%
  • Business context is negotiation positions, plan versions, approval progress - easier to lose than code
  • Non-developers are worst at rebuilding context, because the original discussion lives in chat history

Code can be rewritten. A negotiation position, once lost, is gone.

The tool

I packaged this into an open-source Claude Code skill called project-registry:

  • Install: npx skills add SUNQSHENG/project-registry (or /plugin marketplace add SUNQSHENG/project-registry)
  • Repo: github.com/SUNQSHENG/project-registry
  • Chinese-first UI, but every trigger works in English
  • Docs, examples and demo screenshots in the README

Try the methodology even if you skip the tool - every decision records why and every save leaves next steps are habits that make any AI assistant better.

Star the repo if it saves you a re-explanation - issues welcome.

Top comments (0)