mem0-plugin/.opencode-plugin/opencode-skills/context-loader/SKILL.md
Pre-fetches relevant memories to prime context before working on a task.
Extract topics from current message/task. Identify: file paths, module names, feature areas, error patterns.
Run 2-4 parallel search_memories calls with different angles:
| Query angle | Filter | Purpose |
|---|---|---|
| Feature/module name | {"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}, {"metadata": {"type": "decision"}}]} | Architecture decisions |
| File paths mentioned | {"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}, {"metadata": {"type": "convention"}}]} | Coding patterns |
| Error keywords (if any) | {"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}, {"metadata": {"type": "anti_pattern"}}]} | Known pitfalls |
| Broad project context | {"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}]} | Catch-all |
Deduplicate results by memory ID across all search responses.
Output compact context block (max 10 memories):
context-loader: loaded <N> memories for "<task summary>"
- [decision] <content> [mem0:<short_id>]
- [convention] <content> [mem0:<short_id>]
- [anti_pattern] <content> [mem0:<short_id>]
IMPORTANT: Do NOT use markdown in your output. OpenCode TUI renders text verbatim — markdown like bold, ## headers, and | table | syntax appears as raw characters. Use plain text with indentation for structure. Use dashes for lists. Use spaces to align columns instead of markdown tables.