Step 4: nmem_conflicts(action="list") → active contradictions
Record all metrics as baseline. If any tool fails, note it and continue.
Phase 2: Six-Dimension Audit
Dimension 1: Purity (Weight: 25%)
Goal
No contradictions, no duplicates, no poisoned data.
Check
Method
Severity
Active contradictions
nmem_conflicts list
CRITICAL if >0
Near-duplicates
Recall common topics, check for paraphrases
HIGH
Outdated facts
Check facts older than 90 days with version-sensitive content
MEDIUM
Unverified claims
Look for memories without source attribution
LOW
Scoring
:
A (95-100): 0 conflicts, 0 duplicates
B (80-94): 0 conflicts, <3 near-duplicates
C (65-79): 1-2 conflicts OR 3-5 duplicates
D (50-64): 3-5 conflicts OR significant duplication
F (<50): >5 conflicts, widespread quality issues
Dimension 2: Freshness (Weight: 20%)
Goal
Active memories are recent; stale memories are flagged or expired.
Check
Method
Severity
Stale ratio
% of memories >90 days old with no recent access
HIGH if >40%
Expired TODOs
TODOs past their expiry still active
MEDIUM
Zombie memories
Memories never recalled since creation (>30 days)
LOW
Freshness distribution
Healthy = bell curve; unhealthy = bimodal (all new or all old)
INFO
Scoring
:
A: <10% stale, 0 expired TODOs
B: 10-25% stale, <3 expired TODOs
C: 25-40% stale
D: 40-60% stale
F: >60% stale
Dimension 3: Coverage (Weight: 20%)
Goal
Important topics have adequate memory depth; no critical gaps.
Check
Method
Severity
Topic balance
Recall key project topics, check memory count per topic
HIGH if topic has <2 memories
Decision coverage
Every major decision should have reasoning stored
HIGH
Error patterns
Recurring errors should have resolution memories
MEDIUM
Workflow completeness
Workflows should have all steps documented
LOW
Approach
:
Identify top 5-10 topics from existing tags
For each topic, recall and count relevant memories
Flag topics with <2 memories as "thin"
Flag decisions without reasoning as "incomplete"
Dimension 4: Clarity (Weight: 15%)
Goal
Each memory is specific, self-contained, and unambiguous.
Check
Method
Severity
Vague memories
Content like "fixed the thing", "updated config"
HIGH
Missing context
Decisions without reasoning, errors without resolution
MEDIUM
Overstuffed memories
Single memory covering 3+ distinct concepts
MEDIUM
Acronym soup
Unexpanded abbreviations without context
LOW
Heuristics
:
Vague: content <20 characters, or lacks specific nouns/verbs
Missing context:
decision
type without "because", "reason", "due to"
Overstuffed: content >500 characters with 3+ distinct topics
Dimension 5: Relevance (Weight: 10%)
Goal
Memories match current project/user context.
Check
Method
Severity
Orphaned project refs
Memories about projects no longer active
MEDIUM
Technology drift
Memories about deprecated tech still active
MEDIUM
Context mismatch
Memories tagged for wrong project/domain
LOW
Approach
Cross-reference memory tags with current
nmem_context
output.
Dimension 6: Structure (Weight: 10%)
Goal
Good graph connectivity, diverse synapse types, healthy fiber pathways.
Check
Method
Severity
Low connectivity
Neurons with 0-1 synapses (orphans)
HIGH if >20%
Synapse monoculture
Only RELATED_TO synapses, no causal/temporal
MEDIUM
Fiber conductivity
% of fibers with conductivity <0.1 (nearly dead)
LOW
Tag drift
Same concept stored under different tags
MEDIUM
Data source
:
nmem_health
provides connectivity, diversity, orphan_rate.
Phase 3: Severity Triage
Classify all findings:
Severity
Criteria
Action
CRITICAL
Active contradictions, security-sensitive errors
Fix immediately
HIGH
Significant gaps, widespread staleness, vague decisions
Fix this session
MEDIUM
Moderate quality issues, some duplicates
Fix within 1 week
LOW
Cosmetic, minor optimization opportunities
Fix when convenient
INFO
Observations, patterns, no action needed
Note for awareness
Phase 4: Generate Recommendations
For each finding, produce an actionable recommendation:
Finding: [CRITICAL] 3 active contradictions about API endpoint URLs
Memory A: "API endpoint is /v2/users" (2026-01-15)
Memory B: "Migrated API to /v3/users" (2026-02-01)
Memory C: "API uses /api/v2/users prefix" (2026-01-20)
Recommendation: Resolve via nmem_conflicts
1. Keep Memory B (most recent, explicit migration note)
2. Mark A and C as superseded
3. Store clarification: "API migrated from /v2 to /v3 on 2026-02-01"
Impact: Eliminates recall confusion for API-related queries
Effort: 2 minutes
Phase 5: Report
Present the audit report:
Memory Audit Report
Brain: default | Date: 2026-02-10
Overall Grade: B (82/100)
Dimension Scores:
Purity: ████████░░ 85/100 (0 conflicts, 2 near-duplicates)
Freshness: ███████░░░ 72/100 (18% stale, 1 expired TODO)
Coverage: █████████░ 90/100 (all major topics covered)
Clarity: ████████░░ 80/100 (3 vague memories found)
Relevance: █████████░ 88/100 (1 orphaned project reference)
Structure: ███████░░░ 75/100 (low synapse diversity)
Findings: 8 total
CRITICAL: 0
HIGH: 2 (staleness, vague decisions)
MEDIUM: 4 (duplicates, tag drift, low diversity, expired TODO)
LOW: 2 (acronyms, orphaned ref)
Top 3 Recommendations:
1. [HIGH] Clarify 3 vague decision memories — add reasoning
2. [MEDIUM] Resolve 2 near-duplicate memories about auth config
3. [MEDIUM] Run consolidation to improve synapse diversity
Projected grade after fixes: A- (91/100)
Rules
Evidence-based only
— every finding must reference specific memories or metrics
No guessing
— if a tool fails or data is insufficient, report "insufficient data" for that dimension
Prioritize by impact
— always present CRITICAL before LOW
Actionable recommendations
— every finding must have a concrete fix, not just "improve quality"
Respect user time
— estimate effort for each recommendation (minutes, not hours)
No auto-modifications
— audit is read-only; user decides what to fix
Compare to baseline
— if previous audit exists, show delta (improved/degraded/unchanged)
Vietnamese support
— if brain content is Vietnamese, report in Vietnamese