From sundial-org-awesome-openclaw-skills-4
Persists structured memory (context, decisions, tasks, learnings) across Claude Code sessions using git notes. Automatically syncs at session start/end.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:git-notes-memoryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**These rules are ABSOLUTE and must NEVER be violated:**
These rules are ABSOLUTE and must NEVER be violated:
# Replace $SKILL_PATH with actual path to memory.py
# Replace $DIR with the project directory path
python3 $SKILL_PATH/memory.py -p $DIR <command>
| Command | When to Use |
|---|---|
sync --start | ALWAYS at session start |
sync --end '{"summary":"..."}' | At session end (optional but recommended) |
remember '{"..."}' -t tags -i h | Store important information |
get <topic> | Retrieve context about a topic |
search "<query>" | Full-text search across all memories |
recall -i <id> | Get full details of a specific memory |
| Flag | Level | When to Use |
|---|---|---|
-i c | Critical | User says "always remember", "never forget", explicit preferences |
-i h | High | Decisions, architecture choices, user corrections, preferences |
-i n | Normal | General information (default) |
-i l | Low | Temporary notes, might be pruned |
Always run sync --start at the beginning of every session:
python3 $SKILL_PATH/memory.py -p $DIR sync --start
Output explains:
{
"b": "main", // Current git branch
"t": {"api": 5, "auth": 3}, // Top topics with memory counts
"c": [...], // Critical memories (always review these)
"n": 42, // Total memory count
"h": [...] // High-importance recent memories
}
Use this context to:
Silently remember when user:
-i h-i h or -i c-i n-i nRetrieve context when:
get <topic>search "<keywords>"python3 $SKILL_PATH/memory.py -p $DIR sync --end '{"summary": "Brief session summary"}'
For decisions:
{"decision": "Use React for frontend", "reason": "Team expertise", "alternatives": ["Vue", "Angular"]}
For preferences:
{"preference": "Detailed explanations", "context": "User prefers thorough explanations over brief answers"}
For learnings:
{"topic": "Authentication", "learned": "OAuth2 flow requires redirect URI configuration"}
For tasks:
{"task": "Implement user dashboard", "status": "in progress", "blockers": ["API not ready"]}
For notes:
{"subject": "Project Architecture", "note": "Microservices pattern with API gateway"}
Use tags to categorize memories for better retrieval:
-t architecture,backend - Technical categories-t urgent,bug - Priority/type markers-t meeting,requirements - Source contextsync --startInitialize session, get context overview.
python3 $SKILL_PATH/memory.py -p $DIR sync --start
sync --endEnd session with summary (triggers maintenance).
python3 $SKILL_PATH/memory.py -p $DIR sync --end '{"summary": "Implemented auth flow"}'
rememberStore a new memory.
python3 $SKILL_PATH/memory.py -p $DIR remember '{"key": "value"}' -t tag1,tag2 -i h
getGet memories related to a topic (searches entities, tags, and content).
python3 $SKILL_PATH/memory.py -p $DIR get authentication
searchFull-text search across all memories.
python3 $SKILL_PATH/memory.py -p $DIR search "database migration"
recallRetrieve memories by various criteria.
# Get full memory by ID
python3 $SKILL_PATH/memory.py -p $DIR recall -i abc123
# Get memories by tag
python3 $SKILL_PATH/memory.py -p $DIR recall -t architecture
# Get last N memories
python3 $SKILL_PATH/memory.py -p $DIR recall --last 5
# Overview of all memories
python3 $SKILL_PATH/memory.py -p $DIR recall
updateModify an existing memory.
# Replace content
python3 $SKILL_PATH/memory.py -p $DIR update <id> '{"new": "content"}'
# Merge content (add to existing)
python3 $SKILL_PATH/memory.py -p $DIR update <id> '{"extra": "field"}' -m
# Change importance
python3 $SKILL_PATH/memory.py -p $DIR update <id> -i c
# Update tags
python3 $SKILL_PATH/memory.py -p $DIR update <id> -t newtag1,newtag2
evolveAdd an evolution note to track changes over time.
python3 $SKILL_PATH/memory.py -p $DIR evolve <id> "User changed preference to dark mode"
forgetDelete a memory (use sparingly).
python3 $SKILL_PATH/memory.py -p $DIR forget <id>
entitiesList all extracted entities with counts.
python3 $SKILL_PATH/memory.py -p $DIR entities
entityGet details about a specific entity.
python3 $SKILL_PATH/memory.py -p $DIR entity authentication
branchesList all branches with memory counts.
python3 $SKILL_PATH/memory.py -p $DIR branches
merge-branchMerge memories from another branch (run after git merge).
python3 $SKILL_PATH/memory.py -p $DIR merge-branch feature-auth
merge-branch to combine memories1. User on main branch → memories stored in refs/notes/mem-main
2. User creates feature branch → auto-inherits main's memories
3. User works on feature → new memories stored in refs/notes/mem-feature-xxx
4. After git merge → run merge-branch to combine memories
The system automatically classifies memories based on content:
| Type | Trigger Words |
|---|---|
decision | decided, chose, picked, selected, opted, going with |
preference | prefer, favorite, like best, rather, better to |
learning | learned, studied, understood, realized, discovered |
task | todo, task, need to, plan to, next step, going to |
question | wondering, curious, research, investigate, find out |
note | noticed, observed, important, remember that |
progress | completed, finished, done, achieved, milestone |
info | (default for unclassified content) |
Entities are automatically extracted for intelligent retrieval:
topic, subject, name, category, area, project#cooking, #urgent, #v2"machine learning", "user authentication"React, PostgreSQL, MondayDO remember:
DON'T remember:
{
"b": "feature-auth", // Current branch
"t": {"auth": 5, "api": 3, "db": 2}, // Topics with counts
"c": [{"id": "x", "s": "summary", "t": "preference"}], // Critical
"n": 15, // Total count
"h": [{"id": "y", "s": "summary"}] // High importance
}
{
"topic": "auth",
"mem": [
{"id": "abc", "s": "decided OAuth2", "t": "decision", "i": "h", "b": "main"}
]
}
{
"d": {"decision": "Use OAuth2"}, // Full data
"e": ["auth", "oauth2"], // Entities
"t": "decision", // Type
"g": ["architecture"], // Tags
"i": "h", // Importance
"b": "main", // Branch
"c": "2024-01-15T10:30:00", // Created
"u": "2024-01-15T10:30:00", // Updated
"a": 3, // Access count
"ev": [{"n": "note", "t": "..."}] // Evolution notes (if any)
}
User: "Let's build a REST API with Python"
Claude: [silently: remember '{"decision": "REST API", "language": "Python"}' -t architecture -i h]
[responds about REST API setup WITHOUT mentioning memory]
User: "I prefer FastAPI over Flask"
Claude: [silently: remember '{"preference": "FastAPI over Flask", "reason": "user preference"}' -i h]
[continues discussion using FastAPI WITHOUT saying "I'll remember"]
User: "What did we decide about the API?"
Claude: [silently: get api]
[uses retrieved context to answer accurately]
User: "Actually, let's use Flask instead"
Claude: [silently: remember '{"decision": "Changed to Flask", "previous": "FastAPI"}' -i h]
[silently: evolve <fastapi-memory-id> "User changed preference to Flask"]
[acknowledges change WITHOUT mentioning memory update]
Memory not found:
search with different keywordsentities to see what's indexedrecall --last 10 to see recent memoriesContext seems stale:
sync --start at session beginningbranchesAfter git operations:
git merge: run merge-branch <source-branch>git checkout: sync --start will load correct branch contextnpx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4Manages persistent memory across Claude Code sessions via AutoMem. Recall project context, architectural decisions, bug fixes, user preferences, and patterns at session start or debugging.
Combines LanceDB auto-recall, Git-Notes structured memory, and workspace file search for persistent agent memory across sessions.
Manages workspaces and memories in the Recuerd0 platform via the recuerd0 CLI. Proactively captures architectural decisions, debugging resolutions, user preferences, and non-obvious discoveries.