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

1.9 KiB

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: SessionStarthooks/session_start.py, UserPromptSubmithooks/session_context.py, PostToolUsehooks/post_tool_use_write.py, SessionEndhooks/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.