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