cc-os/plugins/os-vault/CLAUDE.md

40 lines
1.9 KiB
Markdown

# os-vault
Integrates the SecondBrain Obsidian vault (semantic/knowledge memory, ADR-012) and
per-project Graphify knowledge graphs into Claude sessions. Episodic memory is a
separate system (memsearch, ADR-015) — see `README.md` for the requirements/version
pins and `config.yaml` for vault path, model, and threshold knobs.
## Component map
- `skills/` — five skills: `query`, `write`, `reorganize`, `onboard-project`,
`design-template`.
- `hooks/``session_start.py` (SessionStart), `session_context.py`
(UserPromptSubmit), `post_tool_use_write.py` (PostToolUse), `session_end.py` +
`memsearch_sync.py` + `vault_sync.py` (SessionEnd); shared `config.py`,
`hook_io.py`, `session_state.py`. See "Hook wiring" below.
- `tests/` — golden-file harness (`harness.sh`, `golden/`, `inputs/`,
`python-wrappers/`); own `tests/README.md`.
- `eval/` — write-behavior eval harness (scenarios + `scenarios-reserve/`,
judge-rubric, results); eval discipline (reserves never read informally) per
root `CLAUDE.md`.
- `invariants.md` — reversion-protection contract; read before changing frontmatter
facets, hook fail-soft behavior, or sync timing.
- `config.yaml` — vault_path, graphify model, thresholds, env overrides.
## Hook wiring
os-vault's hooks are **not** wired via a plugin `hooks/hooks.json` — there isn't
one, and this is deliberate, not a defect. They're registered at user level in
`~/.claude/settings.json`, pointing at the repo source scripts directly:
`SessionStart``hooks/session_start.py`, `UserPromptSubmit`
`hooks/session_context.py`, `PostToolUse``hooks/post_tool_use_write.py`,
`SessionEnd``hooks/session_end.py` + `hooks/memsearch_sync.py` +
`hooks/vault_sync.py`.
## Pointers
- Design: `docs/memory-system/02-system-design.md`. Decisions: ADR-011 (facets),
ADR-012 (vault as semantic source of truth), ADR-015 (memsearch split).
- Status/build history: `docs/implementation-status/os-vault.md`.