Today I learned
How should I organize a Claude project so it stops forgetting context?
A Claude project works best when each kind of context has exactly one home. Otherwise you end up explaining the same thing in every chat.
How I split it for my site:
- One project per long-running goal ("build my personal site"), not one per task.
- Project instructions hold what never changes. Keep them short:
Owner: Ravy. Reply in Russian; everything on the site is in English.
Code: github.com/Rovniy/ravy.pro. Edit my local checkout, never commit unless asked.
Never publish anything from my private notes.
Rules about the code itself live in the repo's CLAUDE.md, not here.
One chat or thread per task. "Add a press kit" and "fix the OG images" never share a chat, so neither drags the other's history along. A finished task gets closed.
- Decisions go into memory or a file in the project the moment they're made ("the music is presented openly as AI work"). A new chat reads them instead of asking me again.
- Code rules live in the repo, next to the code they protect, so every tool that opens the repo sees them. -The test: open a fresh chat, ask for the next feature, and see whether it has to ask you anything it should already know.
Docs: What are projects?