with one click
test-memory
Comprehensive interactive testing of all Memory MCP features
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Comprehensive interactive testing of all Memory MCP features
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
This skill should be used when the user asks a retrospective question about past work or prior decisions, such as "didn't we already try this", "last time we did X", "how did we solve this before", or "have we seen this before". Nudges a call to the memory recall tool before answering from scratch, so the answer reflects what actually happened instead of a guess.
Persistent memory for Claude Code with two-tier architecture: hot cache for instant recall (0ms) and semantic search for everything else (~50ms). Automatically learns what you use and promotes it.
| name | test-memory |
| description | Comprehensive interactive testing of all Memory MCP features |
| allowed-tools | mcp__memory__* |
Run /test-memory to start a guided testing session. Walk through each phase, execute tests, and track results.
Install memory-mcp from the marketplace:
# Add the marketplace
/plugin marketplace add michael-denyer/memory-mcp
# Install the plugin
/plugin install memory-mcp@michael-denyer/memory-mcp
Or install directly:
/plugin install github:michael-denyer/memory-mcp
1.1 Remember - Store test memories:
remember("Test: FastAPI with async endpoints", memory_type="project", tags=["test", "tech-stack"])
remember("Test: Always use uv run pytest -v", memory_type="pattern", tags=["test", "commands"])
remember("Test: API rate limit 100 req/min", memory_type="reference", tags=["test", "api"])
Record the returned IDs for later tests.
1.2 Recall - Semantic search (use different phrasings):
Verify confidence levels returned.
1.3 Recall Modes - Compare precision vs exploratory:
recall("testing", mode="precision") → fewer, higher-confidencerecall("testing", mode="exploratory") → more results1.4 Recall by Tag:
recall_by_tag("test") → should return all test memories1.5 Forget - Delete one test memory and verify it's gone.
2.1 Manual Promotion:
promote(memory_id) one of the test memorieshot_cache_status() → verify it appears2.2 Manual Demotion:
demote(memory_id)2.3 Pin/Unpin:
pin(memory_id) → pinned_count increasesunpin(memory_id) → pinned_count decreases2.4 Auto-Promotion (optional - requires multiple recalls):
3.1 Create Linked Memories:
remember("Test: Database uses PostgreSQL") → ID: A
remember("Test: pgvector for embeddings") → ID: B
remember("Test: Vector search needs pgvector") → ID: C
link_memories(A, B, "relates_to")
link_memories(B, C, "depends_on")
3.2 Traverse Graph:
get_related_memories(B) → should show A and Cget_related_memories(A, direction="outgoing") → should show B3.3 Multi-Hop Recall:
recall("PostgreSQL", expand_relations=true) → should include related memories3.4 Unlink:
unlink_memories(A, B)4.1 Validate:
validate_memory(id, reason="used_correctly")4.2 Invalidate:
invalidate_memory(id, reason="outdated", note="Testing invalidation")4.3 Trust History:
get_trust_history(memory_id) → shows all changes5.1 Create Conflicting Memories:
remember("Test: Timeout is 30 seconds") → ID: X
remember("Test: Timeout is 60 seconds") → ID: Y
5.2 Find & Mark:
find_contradictions(X) → should suggest Ymark_contradiction(X, Y)get_contradictions() → pair listed5.3 Resolve:
resolve_contradiction(X, Y, keep_id=X, resolution="supersedes")6.1 Check Sessions:
get_sessions(limit=5)6.2 Episodic Memories:
remember("Test: Debugging auth today", memory_type="episodic")
remember("Test: Found token bug", memory_type="episodic")
6.3 Session Topic:
set_session_topic(session_id, "Testing session")6.4 Summarize Session:
summarize_session(session_id) → structured summary with:
end_session() to review what will be promoted6.5 End Session (optional - ends current session):
end_session(session_id, promote_top=true)7.1 Log Output:
log_output("import pandas as pd")
log_output("import numpy as np")
log_output("uv run pytest -v")
7.2 Run Mining:
run_mining(hours=1)mining_status()7.3 Review Candidates:
review_candidates()7.4 Approve/Reject (if candidates exist):
approve_candidate(id) or reject_candidate(id)8.1 Seed from Text:
seed_from_text("- Item one\n- Item two\n- Item three", memory_type="project")
Verify 3 memories created.
8.2 Seed from File (creates temp file):
seed_from_file(file_path, memory_type="reference")8.3 Bootstrap Project:
bootstrap_project(root_path=".", promote_to_hot=false)9.1 Check Status:
predictive_cache_status() → shows if enabled9.2 Access Patterns:
access_patterns(limit=5) → learned patterns9.3 Predict Next (needs existing access history):
predict_next(memory_id) → predicted memories9.4 Warm Cache:
warm_cache(memory_id) → pre-promote predicted10.1 Mark Memory Used:
mark_memory_used(memory_id, feedback="helpful")10.2 Retrieval Stats:
retrieval_quality_stats() → global statsretrieval_quality_stats(memory_id=X) → per-memory11.1 Stats & Observability:
memory_stats()hot_cache_status()metrics_status()11.2 Database Info:
db_info() → schema version, sizeembedding_info() → provider, cache info11.3 Maintenance Operations:
db_maintenance()validate_embeddings()run_cleanup() → comprehensive cleanup11.4 Consolidation:
preview_consolidation() → dry runrun_consolidation(dry_run=true) → previewrun_consolidation(dry_run=false) → actual merge (careful!)11.5 Audit History:
audit_history(limit=10)11.6 Vector Rebuild (use with caution - rebuilds all embeddings):
db_rebuild_vectors(batch_size=100) → re-embed all memories12.1 Hot Cache Resource:
Read memory://hot-cache directly (auto-injected to Claude):
hot_cache_status() items12.2 Working Set Resource:
Read memory://working-set directly:
12.3 Project Context Resource:
Read memory://project-context directly:
13.1 List Memories:
list_memories(limit=5) → paginated browselist_memories(memory_type="pattern") → filteredlist_memories(offset=5, limit=5) → pagination13.2 Recall with Fallback:
recall_with_fallback("query") → tries patterns → project → all13.3 Relationship Stats:
relationship_stats() → knowledge graph overview13.4 Session Details:
get_session(session_id) → specific sessionget_session_memories(session_id) → memories from sessioncross_session_patterns() → patterns across sessions14.1 Invalid IDs:
forget(memory_id=999999) → should return error/not foundpromote(memory_id=-1) → should handle gracefullyget_related_memories(memory_id=0) → should not crash14.2 Recall Edge Cases:
recall("", mode="precision") → empty query handlingrecall("xyz", threshold=0.99) → very high threshold, likely no resultsrecall("test", limit=0) → zero limit edge caserecall("test", limit=1000) → large limit handling14.3 Pagination Boundaries:
list_memories(offset=99999, limit=10) → beyond data rangelist_memories(offset=-1) → negative offsetaudit_history(limit=0) → zero limit14.4 Link/Unlink Errors:
link_memories(id, id, "relates_to") → self-linklink_memories(999, 888, "relates_to") → non-existent IDsunlink_memories(id_a, id_b) → when no link exists14.5 Trust Boundaries:
validate_memory(id, boost=10.0) → extreme boost (should cap at 1.0)invalidate_memory(id, penalty=10.0) → extreme penalty (should floor at 0.0)14.6 Session Errors:
get_session("nonexistent-session-id") → invalid sessionend_session("bad-id") → non-existent session14.7 Mining Edge Cases:
run_mining(hours=0) → zero hoursapprove_candidate(pattern_id=999) → non-existent candidateAfter testing, clean up test data:
forget() all memories tagged with "test"recall_by_tag("test") to find them first16.1 Run Compact:
After completing all tests, prompt the user to run /compact to:
Note: /compact is a user-initiated command and cannot be run programmatically by the assistant.
Track results as you go:
| Phase | Test | Status | Notes |
|---|---|---|---|
| 1.1 | Remember | ⬜ | IDs: |
| 1.2 | Recall | ⬜ | |
| 1.3 | Recall Modes | ⬜ | |
| 1.4 | Recall by Tag | ⬜ | |
| 1.5 | Forget | ⬜ | |
| 2.1 | Promotion | ⬜ | |
| 2.2 | Demotion | ⬜ | |
| 2.3 | Pin/Unpin | ⬜ | |
| 3.1 | Link Memories | ⬜ | IDs: A=, B=, C= |
| 3.2 | Get Related | ⬜ | |
| 3.3 | Multi-Hop | ⬜ | |
| 3.4 | Unlink | ⬜ | |
| 4.1 | Validate | ⬜ | |
| 4.2 | Invalidate | ⬜ | |
| 4.3 | Trust History | ⬜ | |
| 5.1 | Contradictions | ⬜ | IDs: X=, Y= |
| 5.2 | Mark/Find | ⬜ | |
| 5.3 | Resolve | ⬜ | |
| 6.1 | Sessions | ⬜ | |
| 6.2 | Episodic | ⬜ | |
| 6.3 | Session Topic | ⬜ | |
| 6.4 | Summarize Session | ⬜ | |
| 7.1 | Log Output | ⬜ | |
| 7.2 | Run Mining | ⬜ | |
| 7.3 | Review | ⬜ | |
| 8.1 | Seed from Text | ⬜ | |
| 8.2 | Seed from File | ⬜ | |
| 8.3 | Bootstrap | ⬜ | |
| 9.1 | Predictive Status | ⬜ | |
| 9.2 | Access Patterns | ⬜ | |
| 9.3 | Predict Next | ⬜ | |
| 9.4 | Warm Cache | ⬜ | |
| 10.1 | Mark Used | ⬜ | |
| 10.2 | Retrieval Stats | ⬜ | |
| 11.1 | Stats | ⬜ | |
| 11.2 | DB Info | ⬜ | |
| 11.3 | Maintenance | ⬜ | |
| 11.4 | Consolidation | ⬜ | |
| 11.5 | Audit | ⬜ | |
| 11.6 | Vector Rebuild | ⬜ | |
| 12.1 | Hot Cache Resource | ⬜ | |
| 12.2 | Working Set Resource | ⬜ | |
| 12.3 | Project Context Resource | ⬜ | |
| 13.1 | List Memories | ⬜ | |
| 13.2 | Recall Fallback | ⬜ | |
| 13.3 | Relationship Stats | ⬜ | |
| 13.4 | Session Details | ⬜ | |
| 14.1 | Invalid IDs | ⬜ | |
| 14.2 | Recall Edge Cases | ⬜ | |
| 14.3 | Pagination Boundaries | ⬜ | |
| 14.4 | Link/Unlink Errors | ⬜ | |
| 14.5 | Trust Boundaries | ⬜ | |
| 14.6 | Session Errors | ⬜ | |
| 14.7 | Mining Edge Cases | ⬜ | |
| 15 | Cleanup | ⬜ | |
| 16.1 | Compact Conversation | ⬜ |
For a 2-minute sanity check:
remember("Smoke test", tags=["smoke"])recall("smoke")promote(id) → hot_cache_status()demote(id) → forget(id)memory_stats()When running this skill: