## Persistent memory (ICM) — MANDATORY
This project uses [ICM](https://github.com/rtk-ai/icm) for persistent memory across sessions.
You MUST use it actively. Not optional.
### Recall (before starting work)
```bash
icm recall "query" # search memories
icm recall "query" -t "topic-name" # filter by topic
icm recall-context "query" --limit 5 # formatted for prompt injection
```
### Store — MANDATORY triggers
You MUST call `icm store` when ANY of the following happens:
1. **Error resolved** → `icm store -t errors-resolved -c "description" -i high -k "keyword1,keyword2"`
2. **Architecture/design decision** → `icm store -t decisions-{project} -c "description" -i high`
3. **User preference discovered** → `icm store -t preferences -c "description" -i critical`
4. **Significant task completed** → `icm store -t context-{project} -c "summary of work done" -i high`
5. **Conversation exceeds ~20 tool calls without a store** → store a progress summary
Do this BEFORE responding to the user. Not after. Not later. Immediately.
Do NOT store: trivial details, info already in CLAUDE.md, ephemeral state (build logs, git status).
### Other commands
```bash
icm update <id> -c "updated content" # edit memory in-place
icm health # topic hygiene audit
icm topics # list all topics
```