This skill should be used when the user asks to "remember this", "save to memory", "recall what we did", "log this decision", "what did we work on", "save this pattern", "check my memories", or needs...
Manage persistent memory across Claude Code sessions using Obsidian vault storage.
Each project has its own isolated memory space. The project name is auto-detected from the git repository name (or folder name if not a git repo).
claude-memory/
└── projects/
└── {project-name}/ # Isolated per-project memory
├── short-term/ # Current session context (cleared between major tasks)
│ ├── current-task.md # Active task details
│ └── conversation-context.md # User preferences, session state
├── long-term/ # Persistent knowledge (never auto-cleared)
│ ├── decisions-log.md # Architectural/design decisions
│ ├── code-patterns.md # Reusable code patterns
│ ├── lessons-learned.md # Bugs, gotchas, hard-won knowledge
│ └── tools-reference.md # Commands and tool references
└── daily/ # Session logs by date
└── YYYY-MM-DD.md # Daily activity log
The project name is determined by:
basename $(git rev-parse --show-toplevel 2>/dev/null)Trigger a save when discovering:
| Discovery | Save To | Tags |
|---|---|---|
| Architectural decision | claude-memory/projects/{project}/long-term/decisions-log.md |
#decision |
| Reusable code pattern | claude-memory/projects/{project}/long-term/code-patterns.md |
#pattern |
| Bug fix or gotcha | claude-memory/projects/{project}/long-term/lessons-learned.md |
#bug #learning |
| Tool/command reference | claude-memory/projects/{project}/long-term/tools-reference.md |
#reference |
Update during active work:
| Event | Save To |
|---|---|
| Starting new task | claude-memory/projects/{project}/short-term/current-task.md |
| User preference discovered | claude-memory/projects/{project}/short-term/conversation-context.md |
| Session activity | claude-memory/projects/{project}/daily/YYYY-MM-DD.md |
Use consistent formatting with metadata:
## YYYY-MM-DD: Title
**Context**: Why this matters
**Decision/Pattern/Lesson**: What was learned
**Files**: Affected files (if applicable)
**Tags**: #decision #pattern #bug #learning
Use these tools for memory operations:
| Operation | Tool |
|---|---|
| Save/append | mcp__MCP_DOCKER__obsidian_append_content |
| Read single file | mcp__MCP_DOCKER__obsidian_get_file_contents |
| Read multiple files | mcp__MCP_DOCKER__obsidian_batch_get_file_contents |
| Search memories | mcp__MCP_DOCKER__obsidian_simple_search |
| Get today's note | mcp__MCP_DOCKER__obsidian_get_periodic_note |
| Recent changes | mcp__MCP_DOCKER__obsidian_get_recent_changes |
| List directory | mcp__MCP_DOCKER__obsidian_list_files_in_dir |
Read: claude-memory/projects/{project}/short-term/conversation-context.md
Read: claude-memory/projects/{project}/daily/{recent-date}.md
current-task.md when switching taskscurrent-task.md with next stepsArchitectural and design decisions with rationale:
Reusable code snippets and patterns:
Bugs, gotchas, and hard-won knowledge:
Commands and tool quick reference:
For detailed patterns and templates:
references/memory-templates.md - Entry templates for each categoryreferences/tagging-guide.md - Comprehensive tagging conventionsWorking memory entries:
examples/decision-entry.md - Sample decision log entryexamples/pattern-entry.md - Sample pattern entryexamples/lesson-entry.md - Sample lesson learned entry