From mnemonic
Silently captures user decisions, learnings, patterns, blockers, and context into mnemonic namespaces on trigger phrases; recalls via search and status commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mnemonic:coreThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- BEGIN MNEMONIC PROTOCOL -->
Search first: /mnemonic:search {relevant_keywords}
Capture after: /mnemonic:capture {namespace} "{title}"
Run /mnemonic:list --namespaces to see available namespaces from loaded ontologies.
Memory system operations. See references/ for full documentation.
Decisions (namespace: _semantic/decisions):
Learnings (namespace: _semantic/knowledge):
Patterns (namespace: _procedural/patterns):
Blockers (namespace: _episodic/sessions/blockers):
Context (namespace: _semantic/knowledge):
When to capture: Only capture when the user explicitly states a decision, learning, pattern, or blocker in their message. Do NOT capture based on Claude's own suggestions or recommendations.
When trigger phrases are detected:
Do NOT capture:
Users can review captured memories at any time:
# Check session status and recent captures
/mnemonic:status
# List recent memories (last 7 days)
find ${MNEMONIC_ROOT} -name "*.memory.md" -mtime -7 -exec basename {} \;
# Search for specific captures
/mnemonic:search {keywords}
If a user asks "what did you capture?" or "show me my memories":
/mnemonic:status to show memory stats/mnemonic:capture {namespace} "{title}"
Namespaces: _semantic/decisions | _semantic/knowledge | _procedural/patterns | _episodic/blockers | _episodic/sessions
MANDATORY: Before creating any memory, check for duplicates:
Search for existing memories with similar keywords:
rg -i "{key_words}" ${MNEMONIC_ROOT}/ --glob "*.memory.md" -l | head -5
If matches found, read the top result
If it covers the same topic → UPDATE existing memory (use Edit tool) instead of creating new
If related but different → create new memory with relates_to relationship
Only create brand new if no matches found
rg -i "{keywords}" ${MNEMONIC_ROOT}/ --glob "*.memory.md" -l
CRITICAL: Generate real values. NEVER write placeholders like "PLACEHOLDER_UUID" or "PLACEHOLDER_DATE".
Generate a UUID and timestamp FIRST, then write the file:
# Generate these BEFORE writing the memory file
UUID=$(uuidgen 2>/dev/null | tr '[:upper:]' '[:lower:]')
[ -z "$UUID" ] && UUID=$(python3 -c "import uuid; print(uuid.uuid4())")
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
Type must match namespace path:
_semantic/* → type: semantic_procedural/* → type: procedural_episodic/* → type: episodicThen create the file with the real generated values:
---
id: <the real UUID generated above>
title: "Your actual title here"
type: semantic
namespace: _semantic/decisions
created: <the real DATE generated above>
confidence: 0.9
strength: 1.0
half_life: P90D
last_accessed: <the real DATE generated above>
decay_model: exponential
provenance:
source_type: conversation
agent: claude
---
# Your actual title here
Content here.
Half-life defaults:
_semantic/decisions: P180D (long-lived)_semantic/knowledge: P90D_procedural/patterns: P180D (long-lived)_episodic/*: P30D (fast decay)references/capture.md - Full capture workflowreferences/recall.md - Search and retrieval patternsreferences/schema.md - Complete MIF Level 3 schemareferences/examples.md - Working examplesnpx claudepluginhub zircote/mnemonicCaptures decisions, learnings, patterns, and context as persistent memories organized by namespace across Claude Code sessions.
Persists learnings into a 5-layer memory hierarchy (CLAUDE.md files, memory/MEMORY.md) and consolidates by pruning outdated entries and promoting recurring patterns. Triggers on 'extract learnings', 'remember', 'dream'.
Stores important decisions, patterns, bug fixes, and lessons into Cortex persistent memory. Use after resolving bugs, making architecture choices, or when the user asks to remember something.