When user mentions "stale", "outdated", "reindex", "sync", "refresh index", "embeddings outdated", or when search results seem wrong. Guides index maintenance decisions.
This skill activates when:
| Index Type | File | Contents |
|---|---|---|
| Summaries | summaries.json | File descriptions, purposes |
| Functions | functions.json | Function names, locations |
| Embeddings | embeddings_v2.json | Semantic vectors for search |
| Schema | schema.json |
| Database collections, fields |
| Health | health.json | Code quality metrics |
The system checks:
Files modified since last scan: 15
Last health scan: 3 days ago
Last embedding update: 5 days ago
Git commits since index: 12
memory_health action=status project=gyst
Returns:
The system tracks:
Incremental (fast, <20 files changed):
Full Reindex (slower, but thorough):
# Check freshness
python3 ~/.claude-dash/mlx-tools/freshness_checker.py /path/to/project project-id
# Sync embeddings
python3 ~/.claude-dash/mlx-tools/embedding_sync.py project-id
# Full reindex (via watcher)
~/.claude-dash/watcher/start-watcher.sh reindex project-id
| Scenario | Action |
|---|---|
| Few files changed (<5) | Auto-handled by watcher |
| Moderate changes (5-20) | Incremental reindex |
| Major refactor (>20 files) | Full reindex |
| Search results wrong | Full reindex |
| After branch switch | Check + incremental |
| New project setup | Full index |
# Check health status (includes freshness)
memory_health action=status project=gyst
# Trigger scan
memory_health action=scan project=gyst
# Workers for maintenance
workers_run worker=freshness project=gyst
workers_run worker=consolidate
Typical sizes for a medium project:
summaries.json ~500KB
functions.json ~200KB
embeddings_v2.json ~5MB
health.json ~50KB
If files seem too small, index may be incomplete.