memory
Scannednpx machina-cli add skill TonyCasey/lisa/memory --openclawPurpose
Reusable memory helper that routes remember/recall requests to Graphiti MCP while staying model-neutral and providing cache fallback. Always summarizes results into human-readable format.
Triggers
Use when the user says things like: "load memory", "recall notes", "remember", "pull saved context", "fetch past tasks".
How to use
- For recall: run
lisa memory load --cache [--query <q>] [--limit 10] [--group <id>]. Reads Graphiti facts and prints JSON. Uses cache if MCP is down. - For remember: run
lisa memory add "<text>" --cache [--group <id>] [--tag foo] [--source <src>]to append an episode. - Endpoint: reads ${GRAPHITI_ENDPOINT} from
.lisa/.env(written by init); group ID is automatically derived from the project folder path. See rootAGENTS.mdfor canonical defaults. - Cache fallback: stored at
cache/memory.loginside this skill. On failure, last cached result is returned withstatus: "fallback". - IMPORTANT: After loading facts, ALWAYS synthesize them into a human-readable summary (see Summarization section below).
Summarization (Required for Recall)
After running the load command, you MUST synthesize the raw JSON facts into a useful summary. Never just show raw JSON to the user.
Summary Structure
Organize facts into these categories (skip empty categories):
- Project Overview - What the project is and does
- Recent Activity - What was worked on recently (files modified, features added)
- Conventions & Patterns - Naming conventions, coding standards, folder structure
- Configuration - Docker, environments, tools, dependencies
- Milestones - Completed features, important checkpoints
- Open Items - Pending tasks, known issues
How to Summarize
- ALWAYS sort memories by
created_atdescending (newest first) - Group related facts together
- Use bullet points for clarity
- Include specific file names and paths when relevant
- Include the date for each memory (format: "Jan 23" or "Jan 23, 2026")
- Filter out expired or superseded facts (check
expired_atfield) - Prioritize recent facts over older ones - show newest at top of each section
- Extract the
factfield from each item - that's the human-readable content
Example Output Format
## Memory Summary
**Project:** Lisa - Long-term memory system for Claude Code
**Recent Activity:**
- Modified `src/lib/mcp.ts` for MCP integration
- Updated Docker config to use `zepai/knowledge-graph-mcp:standalone`
- Added init-review script
**Conventions:**
- Files use kebab-case naming
- JavaScript/TypeScript as primary languages
**Configuration:**
- Docker Compose at `.lisa/docker-compose.graphiti.yml`
- Config file: `config-docker-neo4j.yaml`
**Milestones:**
- Memory system reached major milestone (date)
I/O contract (examples)
- Recall: output JSON
{ status: "ok", action: "load", group, query, facts: [...] }. - Remember: JSON
{ status: "ok", action: "add", group, text }. - Fallback: JSON
{ status: "fallback", error, fallback: <last cached object> }.
Cross-model checklist
- Claude: confirm concise trigger phrasing; keep under system limits; avoid markdown-heavy instructions.
- Gemini: ensure commands are explicit; avoid model-specific tokens; keep JSON small.
Notes
- All commands use the
lisaCLI binary β no scripts to run directly. - Facts query defaults to
*withmax_facts=10; tune via--limitand--query. - The
factfield in each JSON object contains the human-readable content to summarize.
Source
git clone https://github.com/TonyCasey/lisa/blob/main/src/project/.lisa/skills/memory/SKILL.mdView on GitHub Overview
Memory is a reusable helper that routes remember/recall requests to Graphiti MCP while staying model-neutral and providing a cache fallback. It always synthesizes results into a human-readable summary after loading facts, ensuring useful context is surfaced.
How This Skill Works
The skill exposes two actions: load (recall) and add (remember). Load queries Graphiti MCP for facts and falls back to the cache if MCP is down, returning a human-readable summary. Add appends an episode to memory with optional group, tag, and source metadata. The endpoint reads GRAPHITI_ENDPOINT from .lisa/.env, derives the group ID from the project path, and caches results in cache/memory.log; on retrieval failure, the last cached result is returned with status 'fallback'.
When to Use It
- When you need to recall stored context or notes (e.g., 'recall notes' or 'load memory').
- When you want to remember an important detail or task (e.g., 'remember this task' or 'pull saved context').
- When youβre resuming work after a break and need past context to continue smoothly.
- When you want a persistent record of ideas, decisions, or episode histories with optional grouping.
- When Graphiti MCP is temporarily unavailable and you need a cache-backed response.
Quick Start
- Step 1: Run recall to load facts: lisa memory load --cache [--query <q>] [--limit 10] [--group <id>]
- Step 2: Remember a new episode: lisa memory add "<text>" [--cache] [--group <id>] [--tag foo] [--source <src>]
- Step 3: Verify a human-readable summary is produced after load and check .lisa/.env for GRAPHITI_ENDPOINT and the cache at cache/memory.log
Best Practices
- Always synthesize the results into a human-readable summary after loading facts.
- Use meaningful group IDs (derived from project path) to organize memories by context.
- Tag memories with relevant metadata and a clear source when remembering.
- Limit recall queries with --limit and craft precise queries with --query to filter results.
- Regularly inspect cache/memory.log to verify cached results and fallback behavior.
Example Use Cases
- Recall latest notes from the current sprint by running: lisa memory load --cache --group sprint-2026-feb --limit 10
- Remember a critical decision: lisa memory add "Approved switch to Graphiti MCP v1.2" --group sprint-2026-feb --tag decision --source meeting-notes.md
- Load memory after a restart to resume context: lisa memory load --cache --group project-ui --limit 20
- Fetch past task summaries: lisa memory load --cache --query 'task summary' --limit 5 --group planning
- Organize context by folder: remember notes under src/features/ui in group project-ui to keep context aligned with file structure