Agent skill
memory-health
Check memory system health and data quality. Use when user asks "how's my memory?", "system health", "memory stats", "data quality", "how's my brain?", or for periodic self-diagnostics.
Install this agent skill to your Project
npx add-skill https://github.com/kbanc85/claudia/tree/main/template-v2/.claude/skills/memory-health
SKILL.md
Memory Health
Provide a dashboard view of the memory system's health, including entity counts, memory statistics, data quality indicators, and recommendations.
Triggers
- User says "memory health", "memory stats", "brain check"
- User says "data quality", "how's my memory system?"
- User says "how much do you remember?", "what's in your brain?"
- Periodic self-check (weekly review, morning brief)
Schema Reference
Use these exact column names in all SQLite queries. Do NOT guess column names.
entities table: id, name, type, canonical_name, description, importance (REAL), created_at, updated_at, metadata, last_contact_at, contact_frequency_days, contact_trend, attention_tier, close_circle (BOOLEAN), close_circle_reason, deleted_at, deleted_reason
memories table: id, content, content_hash, type, importance (REAL), confidence (REAL), source, source_id, source_context, created_at, updated_at, last_accessed_at, access_count, verified_at, verification_status, metadata, source_channel, deadline_at, temporal_markers, lifecycle_tier, sacred_reason (NOT sacred), archived_at, fact_id, hash, prev_hash, workspace_id, corrected_at, corrected_from, invalidated_at, invalidated_reason, origin_type
relationships table: id, source_entity_id, target_entity_id, relationship_type, strength (REAL), origin_type, direction, valid_at, invalid_at (NOT invalidated_at), created_at, updated_at, metadata, lifecycle_tier
predictions table: id, content, prediction_type, priority (REAL), expires_at, is_shown, is_acted_on, created_at, shown_at, prediction_pattern_name, metadata
Important distinctions:
- Embeddings are in SEPARATE tables (
entity_embeddings,memory_embeddings), NOT columns on the main tables memories.sacred_reasonexists, but there is no column calledsacredorcriticalrelationships.invalid_at(notinvalidated_at) marks invalid relationshipsmemories.invalidated_atmarks invalidated memories (different column name than relationships)- Always filter with
deleted_at IS NULLon entities andinvalidated_at IS NULLon memories
Workflow
Step 1: Gather Statistics
Use the memory_system_health MCP tool or direct SQLite queries with the schema above.
Alternatively, use the Claudia CLI to get current system state:
claudia memory session context --scope full --project-dir "$PWD"
This returns entity counts, memory counts, relationship counts, and predictions.
Step 2: Calculate Health Indicators
From the session context, derive:
Entity Health
- Total entities by type (people, projects, organizations, topics)
- Entities with no associated memories (orphans)
- Entities not mentioned in 90+ days (stale)
Memory Health
- Total memories by type (fact, preference, observation, learning)
- Average importance score
- Invalidated vs. active memories
- Corrected memories count
Relationship Health
- Total active relationships
- Relationships marked as invalid
- Cooling relationships (no recent activity)
Data Quality
- Potential duplicate entities (fuzzy name match)
- Orphan memories (no entity links)
- Memories below importance threshold (0.3)
Step 3: Present Dashboard
Format:
## Memory System Health Report
### Entities
| Type | Count | Stale (90d) |
|--------------|-------|-------------|
| People | 23 | 2 |
| Projects | 12 | 5 |
| Organizations| 8 | 0 |
| Topics | 15 | 3 |
### Memories
- **Total:** 847 active memories
- **Average importance:** 0.72
- **By type:** 412 facts, 198 preferences, 156 observations, 81 learnings
- **Corrected:** 12 memories have been corrected
- **Invalidated:** 34 memories marked as no longer true
### Relationships
- **Active:** 67 relationships
- **Cooling:** 8 relationships (no contact in 30+ days)
### Data Quality
- **Potential duplicates:** 3 entity pairs to review
- **Orphan memories:** 5 memories without entity links
- **Low importance:** 23 memories below 0.3 threshold
### Recommendations
1. Review potential duplicates: "John Smith" and "Jon Smith" may be the same person
2. Consider archiving 5 stale projects with no recent activity
3. 8 relationships are cooling - may want to reconnect
Quick Stats Mode
If user just wants numbers:
Your memory at a glance:
- 58 people, 12 projects, 8 orgs
- 847 memories (avg importance: 0.72)
- 67 relationships tracked
- Last consolidation: 2 hours ago
Troubleshooting Mode
When user reports memory issues ("you forgot X", "why don't you remember"):
- Search for the specific topic/entity
- Check if memories exist but are below recall threshold
- Check if memories were invalidated
- Report findings:
I searched for memories about "[topic]":
- Found 3 memories, but all below importance 0.4 (not surfacing in context)
- One memory was corrected on [date]
- Recommendation: I can boost the importance of these if they're still relevant
Recommendations Engine
Based on health metrics, suggest:
- Duplicates found: "Run /fix-duplicates to clean up 3 potential duplicate entities"
- Stale entities: "Consider archiving [X] project - no activity in 120 days"
- Cooling relationships: "Haven't heard about [Name] in 45 days - want me to add a follow-up?"
- Low memory count: "I only have [N] memories about [Entity] - we could add more context"
- High invalidation rate: "12% of memories about [Entity] were invalidated - the situation may have changed significantly"
Never
- Expose raw database IDs or technical details to user
- Make the user feel bad about "memory problems"
- Automatically delete or modify data based on health checks
- Claim perfect memory - always acknowledge limitations
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
map-connections
Scan context files to extract entities and relationships into the memory system. Triggers on "who knows who?", "network graph", "map my connections", "extract relationships".
inbox-check
Lightweight inbox triage across all configured email accounts. Dispatches fast subagent to fetch, then reviews with judgment. Use when user says "check my inbox", "any new emails?", "check email".
growth-check
Periodic reflection on development, skills, learning, and progress toward goals. Triggers on "am I growing?", "development check", "personal growth review".
feedback
Send feedback, ideas, or bug reports about Claudia. Opens a pre-filled GitHub Discussion with system context. Use when user says "feedback", "suggestion", "report a bug", "feature request", or "I have an idea".
draft-reply
Draft an email response with tone matching the relationship context. Shows draft for approval before sending. Use when user says "draft a reply", "respond to this email", "write a response to [person]", or shares an email and asks for help replying.
brain
Launch the Brain Visualizer, a real-time 3D view of memory and relationships. Triggers on "show your brain", "visualize memory", "open the brain", "memory graph".
Didn't find tool you were looking for?