New global plugin with one SessionStart hook running all checks in-process
(hooks/checks.py, check(ctx) -> CheckResult, single registry). Three states:
ok (silent), note (near-zero-token line, never suppressed), warn (one
aggregated banner, once-per-day snooze + permanent suppress in gitignored
per-project .cc-os/). Initial checks: subagent-model-env-override (catches
the WS1 Cluster 1 incident deterministically), adr-system-present (verbatim
port of os-adr's hook, legacy .os-adr/suppress honored), vault-hub-note-present.
os-adr's own SessionStart hook moved here atomically (its hooks.json now
empty; session_start.py stays as wording source of record). Built via
OpenSpec change add-os-status-plugin; 36 model-free tests; smoke-tested
2026-07-06 incl. env-override canary.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Move memory plugin source from ~/.claude/plugins/memory (untracked) into cc-os/plugins/memory under git
- Port four bash hooks to Python deep-module architecture (config.py, hook_io.py, session_state.py + thin entry points)
- Split memsearch auto-commit+push into dedicated memsearch_sync.py SessionEnd hook (relocation of ADR-015, behavior preserved)
- Cutover via symlink + settings.json rewrite; fresh-session test verified all hooks fire
- Add ADR-016; update CLAUDE.md, build plan, and fix stale bash-hook/source-path references
- Sync three new-capability delta specs into openspec/specs; archive change as 2026-06-12-memory-plugin-source-and-port
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Sync memsearch-episodic delta spec to openspec/specs/memsearch-episodic/spec.md
- Update README.md: memsearch now active alongside Graphify
- Move change to openspec/changes/archive/2026-06-09-memsearch-episodic-layer/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Completes design and implementation of vault/project graph skill split:
memory-vault (renamed from memory-query, no god-node injection),
memory-project (new, covers full project-graph lifecycle), routing rule
in ~/.claude/CLAUDE.md, and trimmed session-context.sh (project graph
pointer only). All three AI assistant directories (.claude/, .codex/,
.pi/) remain content-identical after mirroring. Spec locked and moved to
openspec/specs/project-graph-lifecycle/.
- Memory plugin installed globally at ~/.claude/plugins/memory/ with three hooks:
session-start.sh (background graphify rebuild), session-context.sh (UserPromptSubmit
vault injection), and post-tool-use-write.sh (session log + dirty-file tracking)
- Root cause fixed: SessionStart has last-write-wins semantics (undocumented); moved
vault context injection to UserPromptSubmit which concatenates multiple hooks
- Verified working: vault graph map (366 nodes, 346 edges) injected into every session
- ADR-014: Graphify is a structure extractor, not a topic clusterer — hub notes +
wikilinks must be author-provided; migration scaffolding is now a first-class deliverable
- Graph connectivity findings documented in 07-graph-connectivity-findings.md
- Archive 2026-06-05-add-memory-plugin change; sync memory-plugin-hooks and
memory-plugin-skills to stable specs
- Add graphify-out/ to .gitignore (build artifact)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move the completed graphify-ollama-setup change to changes/archive/2026-06-05-graphify-ollama-setup/ and promote its two delta specs into the stable spec set: local-model-selection and vault-graph-build. Verification passed with no critical issues; 16/16 tasks done.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Executes all 16 tasks: local extraction-model benchmark with qwen2.5-coder:7b
selected as the default (7B parameter count, multi-modal, outperforms Mistral on
structured output), disposable vault graph build workflow, and supporting docs.
Adds extraction model options handbook, updates implementation process with
reconciliation strategy, and archives the scoring results.
Invert the build order to build-first / migrate-incrementally and
redesign Step 2c as a Claude reference-set benchmark.
- ADR-013 records the build-order inversion; CLAUDE.md locked-decisions
pointer updated
- New benchmark deliverable under docs/memory-system/benchmark/:
shared extraction spec + copy/paste dispatch prompt + reference-outputs
- Runbook (05): Step 1 = fixture selection with bulk migration deferred;
Step 2c = Claude-tiers-only reference set, quality-only metrics, Opus
as gold-standard rubric (produces references, not a model choice)
- 04-build-plan reconciled to the new build order and benchmark design
- Sync incremental-migration + reference-extraction-benchmark specs into
openspec/specs/; archive the completed change
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>