From vector-memory
This skill should be used when the user asks to "store a memory", "remember this", "search memories", "what did we decide", "find relevant context", "update a memory", "delete a memory", "that memory was useful", discusses "memory quality", "memory best practices", "proactive memory search", or when guidance is needed on when and how to use the vector memory system effectively. Provides patterns for storing, searching, and leveraging semantic memories across sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vector-memory:vector-memory-usageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The vector memory system provides semantic, project-scoped memory storage. Memories persist across sessions and are retrieved via semantic search — meaning queries find relevant memories by meaning, not just keyword matching.
The vector memory system provides semantic, project-scoped memory storage. Memories persist across sessions and are retrieved via semantic search — meaning queries find relevant memories by meaning, not just keyword matching.
The vector-memory MCP server stores its database as a single SQLite file (.vector-memory/memories.db) inside the project directory. This database should be committed to version control by default. Committing the database ensures:
The database is a single SQLite file with sqlite-vec for vector search and FTS5 for full-text search. If a project has sensitive memories that should not be committed, add .vector-memory/ to .gitignore on a per-project basis — but the default expectation is to commit it.
Search memories BEFORE making decisions or assumptions. The cost of an unnecessary search is low; the cost of missing relevant context is high.
Good queries combine intent with specific terms:
| Scenario | Query | Intent |
|---|---|---|
| Resuming work | "authentication system architecture" | continuity |
| Checking a decision | "database choice PostgreSQL vs SQLite" | fact_check |
| Finding patterns | "error handling patterns API endpoints" | frequent |
| Exploring connections | "performance optimization caching" | associative |
| Creative exploration | "alternative approaches to state management" | explore |
Call mcp__vector-memory__search_memories with the appropriate intent:
The reason_for_search field forces intentional retrieval. Be specific:
Each memory should be self-contained and capture exactly one idea:
Good:
"Chose libSQL over PostgreSQL for the Resonance project because
of native vector support and simpler single-file deployment for local-first
architecture."
Bad:
"Uses SQLite"
The good example includes: what was decided, for which project, and why. The bad example lacks context, subject, and reasoning.
When memory content exceeds ~1,000 characters, provide an embedding_text field with a concise searchable summary. The embedding is generated from embedding_text instead of the full content, ensuring the memory remains discoverable:
{
"content": "[detailed multi-paragraph implementation notes...]",
"embedding_text": "Authentication middleware implementation using JWT with RS256 signing and refresh token rotation",
"metadata": { "type": "implementation" }
}
Call mcp__vector-memory__store_memories with appropriate metadata type tags:
| Type | Store | Example |
|---|---|---|
decision | What was chosen + why | "Chose Drizzle ORM over Prisma for type safety and SQL-like syntax" |
implementation | What was built + where + patterns | "Auth middleware in src/middleware/auth.ts uses JWT with RS256 signing" |
insight | Learning + why it matters | "sqlite-vec virtual tables require DELETE+INSERT, not INSERT OR REPLACE" |
blocker | Problem + resolution | "CORS errors resolved by adding origin whitelist in server config" |
next-step | TODO + suggested approach | "Add rate limiting to API; consider express-rate-limit middleware" |
context | Background info + constraints | "Project targets Node 20+ only; can use native fetch and crypto" |
Call mcp__vector-memory__update_memories when a memory's content is still conceptually valid but needs correction or refinement:
Updating preserves the memory ID, so any waypoint references to it remain valid.
Call mcp__vector-memory__delete_memories when a memory is no longer relevant:
Deletion is a soft-delete — the memory can be recovered by searching with include_deleted: true. This means it is safe to delete aggressively when memories become stale.
Rule of thumb: If the memory needs minor corrections, update it. If it no longer reflects reality, delete it.
Call mcp__vector-memory__report_memory_usefulness after retrieving memories to indicate whether they were helpful. This feedback loop is important for search quality:
All tools use the mcp__vector-memory__ prefix:
| Tool | Purpose |
|---|---|
mcp__vector-memory__search_memories | Semantic search with intent-based ranking |
mcp__vector-memory__store_memories | Persist new memories (batch supported) |
mcp__vector-memory__get_memories | Retrieve specific memories by ID |
mcp__vector-memory__update_memories | Modify existing memories in place |
mcp__vector-memory__delete_memories | Soft-delete outdated memories (recoverable) |
mcp__vector-memory__report_memory_usefulness | Feedback on memory quality |
For session-level snapshots, see the waypoint-workflow skill which covers mcp__vector-memory__set_waypoint and mcp__vector-memory__get_waypoint.
npx claudepluginhub aeriondyseti/vector-memory-mcp --plugin vector-memoryManages persistent memory across Claude Code sessions via AutoMem. Recall project context, architectural decisions, bug fixes, user preferences, and patterns at session start or debugging.
PROACTIVELY query Forgetful MCP (mcp__forgetful__* tools) when starting work on any project, when user references past decisions or patterns, when implementing features that may have been solved before, or when needing context about preferences. Save important decisions, patterns, and architectural insights to memory.
Loads and applies project memories from prior sessions for consistent decisions, conventions, and preferences. Stores new entries automatically or via /remember.