Loading...
Loading...
Use to maintain context across sessions - integrates episodic-memory for conversation recall and mcp__memory knowledge graph for persistent facts
npx skill4agent add troykelly/codex-skills memory-integration| 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 |
Search for:
- Issue number: "issue 123", "#123"
- Feature name: "authentication", "user login"
- Problem type: "TypeScript error", "build failure"
- Project name: repository name// Search with natural language
mcp__plugin_episodic-memory_episodic-memory__search({
query: "user authentication implementation decisions"
})// Search for intersection of concepts
mcp__plugin_episodic-memory_episodic-memory__search({
query: ["authentication", "session", "JWT"]
})// Read the full conversation
mcp__plugin_episodic-memory_episodic-memory__read({
path: "/path/to/conversation.jsonl"
})| 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 |
// 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"
]
}]
})// 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"
}
]
})// 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({})| Event | Store In |
|---|---|
| Major decision | Knowledge graph entity |
| Problem solved | Add observation to issue entity |
| Pattern discovered | Knowledge graph entity |
| Lesson learned | Add observation |
| 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)" |
// 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"
]
}]
});// 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"
]
}]
});// Search for context
const results = await search("issue 456");
// Read: "Using react-image-crop for avatar cropping"
// Continue with context maintainedsession-startissue-driven-development