From cogitation
Review and maintain EC memories. List all memories, find duplicates, prune stale entries, and organize by type. Use when memories need cleanup, when user says "audit memories", "clean up EC", "review what's stored", or periodically for hygiene.
npx claudepluginhub merewhiplash/engram-cogitator --plugin cogitationThis skill uses the workspace's default tool permissions.
Review, clean, and organize stored memories.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Review, clean, and organize stored memories.
Announce: "I'm using the audit skill to review EC memories."
List All → Analyze → Present → Clean → Verify
Pull everything by type:
ec_list:
limit: 100
type: decision
ec_list:
limit: 100
type: learning
ec_list:
limit: 100
type: pattern
ec_list:
limit: 100
type: config
Also check for invalidated entries:
ec_list:
limit: 50
include_invalid: true
Organize memories by their area tag to see coverage:
## EC Memory Audit
**Total Memories:** N (D decisions, L learnings, P patterns, C config)
**Invalidated:** N
### By Area
| Area | Decisions | Learnings | Patterns |
|------|-----------|-----------|----------|
| auth | 3 | 2 | 1 |
| api | 1 | 4 | 2 |
| ... | ... | ... | ... |
### Issues Found
- **Duplicates (N):** [list IDs]
- **Potentially stale (N):** [list with reason]
- **Vague entries (N):** [list IDs]
Use AskUserQuestion for each category:
{
"questions": [{
"question": "How should I handle the N duplicate memories?",
"header": "Duplicates",
"options": [
{ "label": "Merge", "description": "Keep best version, invalidate others" },
{ "label": "Keep all", "description": "They might have nuance" },
{ "label": "Review each", "description": "Show me one by one" }
],
"multiSelect": false
}]
}
When removing a memory, use ec_invalidate with optional superseding:
ec_invalidate:
id: <old_memory_id>
superseded_by: <new_memory_id> # Optional: link to replacement
ec_addec_invalidate, pointing to new IDAfter cleanup, show the delta:
## Cleanup Complete
**Before:** N memories
**After:** M memories
**Invalidated:** X entries
### Changes
- Merged N duplicates
- Invalidated M stale entries
- Recategorized P entries
| Check | Action |
|---|---|
| Duplicate content | Merge or invalidate |
| References deleted code | Invalidate |
| Too vague to act on | Rewrite or invalidate |
| Wrong type | Create new with correct type, invalidate old |
| Missing area tag | Update via new entry |
Stop and ask if: