1.9 KiB
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); sharedconfig.py,hook_io.py,session_state.py. See "Hook wiring" below.tests/— golden-file harness (harness.sh,golden/,inputs/,python-wrappers/); owntests/README.md.eval/— write-behavior eval harness (scenarios +scenarios-reserve/, judge-rubric, results); eval discipline (reserves never read informally) per rootCLAUDE.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.