| name | memory-integration |
| description | Use to maintain context across sessions - integrates episodic-memory for conversation recall and mcp__memory knowledge graph for persistent facts |
Memory Integration
Overview
Use both memory systems to maintain context across sessions.
Core principle: You have no memory between sessions. Use these tools to remember.
Systems:
- Episodic Memory - Conversation history search
- Knowledge Graph (mcp__memory) - Structured facts and relationships
When to Use Memory
| Moment | Memory Action |
|---|---|
| Session start | Search for relevant context |
| Before starting issue | Search for previous work |
| Making decision | Check for past decisions |
| Completing work | Store important learnings |
| Session end | Store key outcomes |
Episodic Memory
What It Stores
- Full conversation history
- Decisions made
- Problems solved
- Approaches tried
- Lessons learned
Searching Episodic Memory
Use the episodic-memory skill or MCP tools:
Search for:
- Issue number: "issue 123", "#123"
- Feature name: "authentication", "user login"
- Problem type: "TypeScript error", "build failure"
- Project name: repository name
Semantic Search (Single Query)
// Search with natural language
mcp__plugin_episodic-memory_episodic-memory__search({
query: "user authentication implementation decisions"
})
Precise Search (Multiple Concepts)
// Search for intersection of concepts
mcp__plugin_episodic-memory_episodic-memory__search({
query: ["authentication", "session", "JWT"]
})
Reading Full Conversations
After finding relevant results:
// Read the full conversation
mcp__plugin_episodic-memory_episodic-memory__read({
path: "/path/to/conversation.jsonl"
})
What to Search For
| Situation | Search Terms |
|---|---|
| Starting issue #123 | "issue 123", "#123" |
| Working on auth | "authentication", "login", "session" |
| TypeScript problem | "TypeScript", "type error", specific error message |
| Similar feature | Feature name, related concepts |
Knowledge Graph (mcp__memory)
What It Stores
- Entities (Projects, Issues, Decisions, Patterns)
- Relationships between entities
- Observations about entities
Creating Entities
Store important facts:
// Create an entity for a project decision
mcp__memory__create_entities({
entities: [{
name: "Decision: Use JWT for Auth",
entityType: "Decision",
observations: [
"Decided on 2024-12-01",
"JWT chosen over sessions for API statelessness",
"Related to issue #123",
"Implementation in src/auth/jwt.ts"
]
}]
})
Creating Relationships
Link entities together:
// Create relationships
mcp__memory__create_relations({
relations: [
{
from: "Project: MyApp",
to: "Decision: Use JWT for Auth",
relationType: "has_decision"
},
{
from: "Issue #123",
to: "Decision: Use JWT for Auth",
relationType: "resulted_in"
}
]
})
Searching the Graph
// Search for relevant nodes
mcp__memory__search_nodes({
query: "authentication"
})
// Open specific nodes
mcp__memory__open_nodes({
names: ["Decision: Use JWT for Auth"]
})
// Read entire graph (for small graphs)
mcp__memory__read_graph({})
Memory Protocol
At Session Start
Search episodic memory for:
- Current issue number
- Project/repository name
- Active feature being worked on
Search knowledge graph for:
- Project entity
- Related decisions
- Known patterns
Synthesize context before proceeding
During Work
Store as you go:
| Event | Store In |
|---|---|
| Major decision | Knowledge graph entity |
| Problem solved | Add observation to issue entity |
| Pattern discovered | Knowledge graph entity |
| Lesson learned | Add observation |
At Session End
Update knowledge graph with:
- New decisions made
- Problems solved
- Patterns discovered
Add observations to existing entities:
- Progress on issues
- Learnings
- Next steps
Entity Types
Suggested entity types for the knowledge graph:
| Type | Use For | Example |
|---|---|---|
| Project | Repository/codebase | "Project: MyApp" |
| Issue | GitHub issues | "Issue #123: Auth" |
| Decision | Architectural decisions | "Decision: Use JWT" |
| Pattern | Code patterns | "Pattern: Repository Layer" |
| Problem | Known issues | "Problem: Race Condition in X" |
| Person | Collaborators | "Person: Alice (maintainer)" |
Example: Issue Memory Flow
Session 1: Starting Issue
// Search for any previous context
const episodic = await search("issue 456 user profile");
const graph = await search_nodes("user profile");
// If nothing found, create fresh entity
await create_entities({
entities: [{
name: "Issue #456: User Profile Page",
entityType: "Issue",
observations: [
"Started: 2024-12-01",
"Scope: Profile display, edit, avatar upload"
]
}]
});
Session 1: Mid-Work Decision
// Store a decision made
await add_observations({
observations: [{
entityName: "Issue #456: User Profile Page",
contents: [
"Decision: Using react-image-crop for avatar cropping",
"Reason: Best mobile support, active maintenance"
]
}]
});
Session 2: Resuming
// Search for context
const results = await search("issue 456");
// Read: "Using react-image-crop for avatar cropping"
// Continue with context maintained
What to Store
Always Store
- Architectural decisions with rationale
- Non-obvious problem solutions
- Important constraints discovered
- Dependencies between components
Don't Store
- Trivial implementation details
- Things obvious from code
- Temporary debugging notes
- Speculation without conclusion
Checklist
At session start:
- Search episodic memory for issue/project
- Search knowledge graph for context
- Note relevant findings
During work:
- Store major decisions
- Record problem solutions
- Note discovered patterns
At session end:
- Update entities with progress
- Add new learnings
- Record next steps
Integration
This skill is called by:
session-start- Initial context gatheringissue-driven-development- Step 4
This skill supports:
- Cross-session continuity
- Decision documentation
- Pattern discovery