
Trusty Memory
- 5 installs
- 145 repo stars
- Updated July 27, 2026
- bobmatnyc/claude-mpm
trusty-memory is a skill that documents a persistent memory-palace system with hierarchical storage, progressive retrieval, and a temporal knowledge graph for cross-session agent context.
About
This skill documents trusty-memory, a persistent memory system that organizes context across sessions using a memory-palace metaphor with hierarchical storage and progressive retrieval layers L0-L3. It exposes MCP tools to remember, recall, and forget drawers and to assert and query knowledge-graph triples. A developer uses it to store decisions, learnings, and relationships so an agent can recall them in later sessions.
- Persistent memory palace with hierarchical storage (palace/wing/room/closet/drawer)
- Progressive retrieval layers L0-L3 with memory_recall and memory_recall_deep
- Temporal knowledge graph via kg_assert and kg_query for cross-session context
Trusty Memory by the numbers
- 5 all-time installs (skills.sh)
- Ranked #13,046 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
trusty-memory capabilities & compatibility
- Capabilities
- trusty search
- Use cases
- memory · orchestration
- Pricing
- Free
What trusty-memory says it does
Persistent memory system using the **Memory Palace** metaphor for organizing context across sessions.
**Always try `memory_recall` first.** Escalate to `memory_recall_deep` only if results are insufficient.
**Do NOT use for**: ephemeral scratch notes, code snippets (use trusty-search), or content that belongs in source files.
npx skills add https://github.com/bobmatnyc/claude-mpm --skill trusty-memoryAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5 |
|---|---|
| repo stars | ★ 145 |
| Last updated | July 27, 2026 |
| Repository | bobmatnyc/claude-mpm ↗ |
What it does
Store and recall cross-session context and knowledge-graph facts for a coding agent.
Who is it for?
Storing architectural decisions, learnings, gotchas, and entity relationships an agent needs to recall across sessions.
Skip if: Ephemeral scratch notes, code snippets (use trusty-search), or content that belongs in source files.
When should I use this skill?
At session start to recall context, at decision moments to store choices, and at session end to persist outcomes.
What you get
Persisted, progressively-retrievable memory and a queryable knowledge graph across sessions.
By the numbers
- Four progressive retrieval layers L0-L3
- Nine room types from Backend to General
- Replaces mcp__kuzu-memory__* tools
Files
trusty-memory
Persistent memory system using the Memory Palace metaphor for organizing context across sessions. Replaces mcp__kuzu-memory__* tools.
When to Use
- Session start: Recall relevant context for the current task
- Decision moments: Store key architectural/design decisions
- Learning capture: Remember new patterns, conventions, gotchas discovered
- Relationship tracking: Assert facts in the knowledge graph (X depends on Y, A replaces B)
- Session end: Persist outcomes and next steps
Do NOT use for: ephemeral scratch notes, code snippets (use trusty-search), or content that belongs in source files.
Architecture
Palace (project) e.g. "claude-mpm"
└── Wing (area) e.g. "Backend"
└── Room e.g. "Backend", "Frontend", "Testing", "Planning",
"Documentation", "Research", "Configuration",
"Meetings", "General"
└── Closet (sub-category)
└── Drawer (memory item: uuid, content, tags, importance)Progressive Retrieval Layers
| Layer | Tokens | When | Trigger |
|---|---|---|---|
| L0 | ~100 | Always | Identity / project context auto-loaded |
| L1 | ~800 | Always | Top-15 drawers by importance auto-loaded |
| L2 | variable | On topic match | memory_recall — metadata-filtered vector search |
| L3 | exhaustive | Explicit | memory_recall_deep — full HNSW deep search |
Always try `memory_recall` first. Escalate to memory_recall_deep only if results are insufficient.
Tool Reference
Retrieval
`memory_recall` — Fast progressive retrieval (L0+L1+L2). Use this first.
mcp__trusty-memory__memory_recall(
query="how does the migration registry work",
room="Backend", # optional filter
limit=10 # optional
)`memory_recall_deep` — Full HNSW deep search (L3). Use when memory_recall insufficient.
mcp__trusty-memory__memory_recall_deep(
query="rare edge case in hook dispatcher",
limit=20
)`memory_list` — Browse drawers by room/tag (no semantic query).
mcp__trusty-memory__memory_list(room="Planning", tag="release-workflow")Storage
`memory_remember` — Store a drawer.
mcp__trusty-memory__memory_remember(
content="The migration runner uses run_pending_migrations() at startup; state in ~/.claude-mpm/migrations.json",
room="Backend",
tags=["migrations", "startup"],
importance=0.8 # 0.0-1.0; higher = more likely to appear in L1
)`memory_forget` — Delete by UUID.
mcp__trusty-memory__memory_forget(drawer_id="<uuid>")Palace Management
mcp__trusty-memory__palace_list()
mcp__trusty-memory__palace_info(palace="claude-mpm")
mcp__trusty-memory__palace_create(name="new-project")Knowledge Graph (temporal triples)
`kg_assert` — Assert a (subject, predicate, object) fact.
mcp__trusty-memory__kg_assert(
subject="trusty-memory",
predicate="replaces",
object="kuzu-memory"
)`kg_query` — Query triples for a subject.
mcp__trusty-memory__kg_query(subject="trusty-memory")Room Type Selection
| Room | Use For |
|---|---|
| Backend | Server-side logic, APIs, services, data layer |
| Frontend | UI, components, styling, client-state |
| Testing | Test patterns, fixtures, flaky test notes, coverage decisions |
| Planning | Roadmaps, architectural decisions, ticket plans |
| Documentation | Doc conventions, README structure, public API docs |
| Research | Investigations, spike findings, library evaluations |
| Configuration | Build setup, env vars, deploy config, tooling |
| Meetings | Decisions from sync calls, action items |
| General | Cross-cutting concerns, miscellaneous |
When unsure, prefer the most-specific room. Tags handle the rest.
KG Triple Patterns
Use consistent predicates for queryable graphs:
| Predicate | Example |
|---|---|
replaces | (trusty-memory, replaces, kuzu-memory) |
depends_on | (release-publish, depends_on, gh-account-bobmatnyc) |
implements | (migration_runner, implements, run_pending_migrations) |
documented_in | (release_workflow, documented_in, CLAUDE.md) |
owned_by | (planner-agent, owned_by, .claude/agents/planner.md) |
version_of | (6.2.67, version_of, claude-mpm) |
triggers | (SessionStart, triggers, model_tier_hook) |
Workflow Protocols
Session Start Protocol
1. Auto-loaded: L0 identity + L1 top-15 drawers appear in context automatically. 2. Targeted recall: For task-specific context:
memory_recall(query="<current task domain>", limit=10)3. Check KG for relevant entity relationships:
kg_query(subject="<entity being modified>")Session End Protocol
For each significant outcome, persist it:
1. Decisions → memory_remember with high importance (0.7-0.9)
memory_remember(
content="Decided to consolidate hook scripts under claude-hook-fast.sh; old per-event scripts deprecated",
room="Backend",
tags=["hooks", "decision"],
importance=0.85
)2. Relationships → kg_assert
kg_assert(subject="claude-hook-fast.sh", predicate="replaces", object="per-event-hook-scripts")3. Gotchas / learnings → memory_remember with tags for discoverability
memory_remember(
content="release-publish requires `claude-mpm gh switch` to bobmatnyc first; bob-duetto account causes auth failures",
room="Configuration",
tags=["release", "gotcha", "github-auth"],
importance=0.9
)Recall vs Recall-Deep Decision
| Situation | Use |
|---|---|
| Standard context lookup | memory_recall |
| Top-N relevant results enough | memory_recall |
memory_recall returned <3 hits | memory_recall_deep |
| Investigating obscure / rare topic | memory_recall_deep |
| Need exhaustive coverage of a concept | memory_recall_deep |
Importance Scoring
| Score | Type |
|---|---|
| 0.9-1.0 | Critical: release gotchas, security constraints, hard rules |
| 0.7-0.9 | Architectural decisions, major patterns |
| 0.5-0.7 | Useful conventions, common patterns |
| 0.3-0.5 | Project trivia, minor preferences |
| 0.0-0.3 | Ephemeral, rarely-useful |
L1 surfaces the top 15 by importance — score accordingly.
Migration from kuzu-memory
| Old | New |
|---|---|
mcp__kuzu-memory__kuzu_recall | mcp__trusty-memory__memory_recall |
mcp__kuzu-memory__kuzu_learn | mcp__trusty-memory__memory_remember |
mcp__kuzu-memory__kuzu_remember | mcp__trusty-memory__memory_remember |
mcp__kuzu-memory__kuzu_project_context | Auto-loaded via L0 |
mcp__kuzu-memory__kuzu_stats | mcp__trusty-memory__palace_info |
Integration with trusty-search
Common pattern: search → understand → remember.
# 1. Find code with trusty-search
search_code(query="migration runner", query_type="Definition")
# 2. After investigating, persist the learning
memory_remember(
content="Migration runner pattern: registry.py registers each migrate_*.py module; run_pending_migrations iterates by version",
room="Backend",
tags=["migrations", "pattern"],
importance=0.75
)Best Practices
- Be specific: "Release workflow requires bobmatnyc gh account" beats "Check gh account before releasing"
- Include WHY: Decision rationale beats decision alone
- Tag generously: Tags enable cross-room discovery
- Use KG for relationships: Don't bury "X replaces Y" in prose — assert it
- Update over duplicate: Forget stale drawers when superseded
- Prefer recall over recall_deep: Save the expensive call for when you need it
{
"name": "trusty-memory",
"version": "1.0.0",
"category": "tools",
"toolchain": "trusty",
"framework": null,
"tags": [
"memory",
"mcp",
"persistence",
"knowledge-graph",
"context"
],
"author": "bobmatnyc",
"license": "MIT",
"requires": [],
"updated": "2026-05-10",
"created": "2026-05-10",
"modified": "2026-05-10",
"maintainer": "Claude MPM Team",
"attribution_required": false,
"repository": "https://github.com/bobmatnyc/claude-mpm"
}
Related skills
FAQ
What are the retrieval layers?
L0 identity (~100 tokens) and L1 top-15 drawers (~800 tokens) auto-load; L2 is memory_recall for topic matches; L3 is memory_recall_deep for exhaustive HNSW search.
When should I not use trusty-memory?
For ephemeral scratch notes, code snippets (use trusty-search), or content that belongs in source files.