Skip to main content

test-memory

Comprehensive interactive testing of all Memory MCP features

来源信息

仓库
michael-denyer/memory-mcp
最近来源活动
2026年9月13日 20:56
检测到的 SKILL.md 语言
英语
星标
10
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
test-memory
description
Comprehensive interactive testing of all Memory MCP features
allowed-tools
mcp__memory__*
# Memory MCP Live Testing Skill Run `/test-memory` to start a guided testing session. Walk through each phase, execute tests, and track results. ## Prerequisites Install memory-mcp from the marketplace: ```bash # Add the marketplace /plugin marketplace add michael-denyer/memory-mcp # Install the plugin /plugin install memory-mcp@michael-denyer/memory-mcp ``` Or install directly: ```bash /plugin install github:michael-denyer/memory-mcp ``` ## Phases --- ### Phase 1: Core Memory Operations **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): - "what framework for backend" → should find FastAPI - "how to run tests" → should find pytest - "request throttling" → should find rate limit Verify confidence levels returned. **1.3 Recall Modes** - Compare precision vs exploratory: - `recall("testing", mode="precision")` → fewer, higher-confidence - `recall("testing", mode="exploratory")` → more results **1.4 Recall by Tag**: - `recall_by_tag("test")` → should return all test memories **1.5 Forget** - Delete one test memory and verify it's gone. --- ### Phase 2: Hot Cache Mechanics **2.1 Manual Promotion**: - `promote(memory_id)` one of the test memories - `hot_cache_status()` → verify it appears **2.2 Manual Demotion**: - `demote(memory_id)` - Verify removed from hot cache but still recallable **2.3 Pin/Unpin**: - `pin(memory_id)` → pinned_count increases - `unpin(memory_id)` → pinned_count decreases **2.4 Auto-Promotion** (optional - requires multiple recalls): - Create a memory and recall it 3+ times - Check if auto-promoted --- ### Phase 3: Knowledge Graph **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 C - `get_related_memories(A, direction="outgoing")` → should show B **3.3 Multi-Hop Recall**: - `recall("PostgreSQL", expand_relations=true)` → should include related memories **3.4 Unlink**: - `unlink_memories(A, B)` - Verify relationship removed --- ### Phase 4: Trust Management **4.1 Validate**: - `validate_memory(id, reason="used_correctly")` - Check trust_score increased **4.2 Invalidate**: - `invalidate_memory(id, reason="outdated", note="Testing invalidation")` - Check trust_score decreased **4.3 Trust History**: - `get_trust_history(memory_id)` → shows all changes --- ### Phase 5: Contradiction Detection **5.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 Y - `mark_contradiction(X, Y)` - `get_contradictions()` → pair listed **5.3 Resolve**: - `resolve_contradiction(X, Y, keep_id=X, resolution="supersedes")` - Verify X supersedes Y, Y's trust reduced --- ### Phase 6: Sessions & Episodic Memory **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: - Decisions (choices made and rationale) - Insights (lessons, antipatterns, landmines, constraints) - Action Items (todos, bugs, tasks) - Context (background, conventions, preferences, architecture) - Use before `end_session()` to review what will be promoted **6.5 End Session** (optional - ends current session): - `end_session(session_id, promote_top=true)` --- ### Phase 7: Pattern Mining **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)` --- ### Phase 8: Seeding & Bootstrap **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)` - Verify it finds CLAUDE.md, README.md, etc. --- ### Phase 9: Predictive Cache **9.1 Check Status**: - `predictive_cache_status()` → shows if enabled **9.2 Access Patterns**: - `access_patterns(limit=5)` → learned patterns **9.3 Predict Next** (needs existing access history): - `predict_next(memory_id)` → predicted memories **9.4 Warm Cache**: - `warm_cache(memory_id)` → pre-promote predicted --- ### Phase 10: Retrieval Quality **10.1 Mark Memory Used**: - `mark_memory_used(memory_id, feedback="helpful")` **10.2 Retrieval Stats**: - `retrieval_quality_stats()` → global stats - `retrieval_quality_stats(memory_id=X)` → per-memory --- ### Phase 11: Maintenance & DB Info **11.1 Stats & Observability**: - `memory_stats()` - `hot_cache_status()` - `metrics_status()` **11.2 Database Info**: - `db_info()` → schema version, size - `embedding_info()` → provider, cache info **11.3 Maintenance Operations**: - `db_maintenance()` - `validate_embeddings()` - `run_cleanup()` → comprehensive cleanup **11.4 Consolidation**: - `preview_consolidation()` → dry run - `run_consolidation(dry_run=true)` → preview - `run_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 memories - Use when: switching embedding models, fixing dimension mismatches, recovering from corruption --- ### Phase 12: MCP Resources **12.1 Hot Cache Resource**: Read `memory://hot-cache` directly (auto-injected to Claude): - Session-aware active context (~10 items max) - Combines: recently recalled, predicted next, top salience - Verify contents match `hot_cache_status()` items **12.2 Promoted Memories Resource**: Read `memory://promoted-memories` directly: - Backing store of promoted memories (~20 items, disabled by default) - Verify larger/broader than hot-cache **12.3 Project Context Resource**: Read `memory://project-context` directly: - Project-scoped memories for current working directory - Should filter to current project only --- ### Phase 13: Additional Tools **13.1 List Memories**: - `list_memories(limit=5)` → paginated browse - `list_memories(memory_type="pattern")` → filtered - `list_memories(offset=5, limit=5)` → pagination **13.2 Recall with Fallback**: - `recall_with_fallback("query")` → tries patterns → project → all **13.3 Relationship Stats**: - `relationship_stats()` → knowledge graph overview **13.4 Session Details**: - `get_session(session_id)` → specific session - `get_session_memories(session_id)` → memories from session - `cross_session_patterns()` → patterns across sessions --- ### Phase 14: Error Handling & Edge Cases **14.1 Invalid IDs**: - `forget(memory_id=999999)` → should return error/not found - `promote(memory_id=-1)` → should handle gracefully - `get_related_memories(memory_id=0)` → should not crash **14.2 Recall Edge Cases**: - `recall("", mode="precision")` → empty query handling - `recall("xyz", threshold=0.99)` → very high threshold, likely no results - `recall("test", limit=0)` → zero limit edge case - `recall("test", limit=1000)` → large limit handling **14.3 Pagination Boundaries**: - `list_memories(offset=99999, limit=10)` → beyond data range - `list_memories(offset=-1)` → negative offset - `audit_history(limit=0)` → zero limit **14.4 Link/Unlink Errors**: - `link_memories(id, id, "relates_to")` → self-link - `link_memories(999, 888, "relates_to")` → non-existent IDs - `unlink_memories(id_a, id_b)` → when no link exists **14.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 session - `end_session("bad-id")` → non-existent session **14.7 Mining Edge Cases**: - `run_mining(hours=0)` → zero hours - `approve_candidate(pattern_id=999)` → non-existent candidate --- ### Phase 15: Cleanup After testing, clean up test data: - `forget()` all memories tagged with "test" - Or use `recall_by_tag("test")` to find them first --- ### Phase 16: Compact Conversation **16.1 Run Compact**: After completing all tests, prompt the user to run `/compact` to: - Reduce conversation context size - Test that the session can be resumed after compaction - Verify memories persist across conversation summarization Note: `/compact` is a user-initiated command and cannot be run programmatically by the assistant. --- ## Test Tracking 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 | ⬜ | |
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看