From project-memory
Use at every conversation start and after completing any task involving external tools, deployments, uploads, pipelines, credentials, tokens, or project-specific workflows
How this skill is triggered — by the user, by Claude, or both
Slash command
/project-memory:using-project-memoryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Two layers, one write call:
Two layers, one write call:
| Layer | Role |
|---|---|
deep | Full content — all details, fully searchable |
lite | Auto-created pointer to a deep entry, containing its ID |
memory_write always saves to deep and automatically creates a lite pointer. You never need to write to both layers manually.
The hook has already injected into your context:
[→ abc123] Translations workflow... plus any standalone factsRead these before doing anything. When a pointer is relevant, call memory_get(id) to load the full content.
memory_write(
content="Full detail: mc alias pearldiver, path misc/static/com/pearldivergame/dev, run VITE_ENVIRONMENT=testnet npm run gen-translations after editing CSV files. Never edit local JSON files directly.",
tags=["translations", "minio", "mc", "i18n"],
summary="Translations workflow — mc alias pearldiver, run gen-translations after CSV edits"
)
This creates:
abc123: full content, searchable by tags[→ abc123] Translations workflow — mc alias pearldiver, run gen-translations after CSV edits [translations, minio, mc, i18n]Next session, Claude sees the pointer in context and calls memory_get("abc123") when needed.
| Situation | Tool |
|---|---|
Session start, see [→ id] pointer and need full details | memory_get(id) |
| Don't have ID, need to find by topic | memory_search("topic") |
| User asks "show memory" / "what do you remember" | memory_read_lite() |
| Auditing or cleaning up entries | memory_read_all() — management only |
Never call memory_read_all for a regular read request. It dumps the entire database.
Save memory proactively whenever any of the following happens during a session. Do not wait for the user to ask — if the trigger applies, save immediately.
When the user provides any credential, save it before using it. Entry files are committed to git — only store credentials if the repo is private or the team is trusted.
memory_write(
content="GitHub PAT for knownout account: ghp_xxxx. Use when osxkeychain has wrong account cached.",
tags=["github", "token", "credentials"],
summary="GitHub PAT for knownout account (use when osxkeychain fails)"
)
For very short always-needed facts that don't need a deep entry, pass layer="lite" explicitly:
memory_write(
content="Active stack: Next.js frontend, FastAPI backend, PostgreSQL",
tags=["stack"],
layer="lite"
)
Do NOT write any of these to memory:
Rule of thumb: if it won't help Claude complete a task in a future session, don't save it.
Session starts?
→ Read injected lite memory and topic index (already in context)
→ For relevant [→ id] pointers → memory_get(id)
User provides credential/token/secret?
→ memory_write(...) IMMEDIATELY before using it
User explains a convention, preference, or workflow?
→ memory_write(...) right away
Completed external task (deploy, upload, pipeline, DB op, API call)?
→ memory_write(content=<full detail>, tags=[...], summary=<1 sentence>)
Discovered a gotcha, undocumented dependency, or non-obvious fix?
→ memory_write(...) before moving on
User corrected you on something?
→ memory_write the correct approach
memory_read_all when the user just wants to see what's savedmemory_write callnpx claudepluginhub knownout/claude-project-memory --plugin project-memoryManages persistent local memory in .nemp/memories.json for Claude Code agents, storing project stack, architecture decisions, user preferences, and enabling cross-session context retention.
Loads and applies project memories from prior sessions for consistent decisions, conventions, and preferences. Stores new entries automatically or via /remember.
Manages persistent memory across Claude Code sessions via AutoMem. Recall project context, architectural decisions, bug fixes, user preferences, and patterns at session start or debugging.