# Memory Plugin for Claude Code

Global Claude Code plugin that integrates the SecondBrain vault and Graphify knowledge graph into Claude sessions.

## Requirements

- Graphify **v0.8.31** (pinned — do not upgrade without verifying the patch)
- Ollama with the `qwen25-coder-7b-16k` Modelfile-baked model
- `jq` available on PATH

## Critical: reasoning_effort patch

Graphify v0.8.31 requires a `reasoning_effort:"none"` patch to prevent hanging on Ollama extraction. After any `pip upgrade graphifyy`, verify the patch is still present:

```bash
python -c "import graphify; import inspect; src = inspect.getsource(graphify); print('patch present' if 'reasoning_effort' in src else 'PATCH MISSING — reinstall v0.8.31')"
```

If the patch is missing, reinstall the pinned version:
```bash
pip install graphifyy==0.8.31
```

## Modelfile-baked context

The `num_ctx` setting (8192) is baked into the `qwen25-coder-7b-16k` Ollama Modelfile rather than passed as an env var, because `GRAPHIFY_OLLAMA_NUM_CTX` propagation is unreliable. If you create a new Modelfile variant, bake `num_ctx` in directly.

## Hooks

- `hooks/session_start.py` — SessionStart: staleness check, detached rebuild, vault context injection
- `hooks/session_context.py` — UserPromptSubmit: project graph path injection
- `hooks/post_tool_use_write.py` — PostToolUse: graph update on vault writes
- `hooks/session_end.py` — SessionEnd: episodic journal append
- `hooks/memsearch_sync.py` — SessionEnd: memsearch auto-commit+push (ADR-015 behavior, split from session_end by ADR-016)

Shared modules: `hooks/config.py`, `hooks/hook_io.py`, `hooks/session_state.py`.

## Skills

- `skills/query/SKILL.md` — When and how to query the vault graph
- `skills/write/SKILL.md` — When and how to write to the vault
- `skills/reorganize/SKILL.md` — Plan-mode vault consolidation

## Configuration

Edit `cc-os/plugins/os-vault/config.yaml` (or via the symlink `~/.claude/plugins/os-vault/config.yaml`) to change vault path, model, or thresholds.
