← roadmap

interknow

merge priority P2 effort M wave 2

What it does: A knowledge-compounding plugin: 2 skills (compound = write a durable pattern entry; recall = query for relevant patterns), 1 SessionStart hook that reports entry counts as additionalContext, and 1 optional qmd stdio MCP server (launch-qmd.sh with graceful degradation if qmd is absent). Entries are markdown + YAML frontmatter carrying provenance (independent vs primed, to break the prime→re-confirm feedback loop), lastConfirmed timestamps, evidence anchors (file:line/SHA), and dual decay (10 reviews OR 180 days, with hysteresis and an archive/ folder). Per its own files, the plugin has been self-converged: compound/SKILL.md and config/knowledge/README.md both carry ‘Deprecated’ banners redirecting to /clavain:compound and docs/solutions/, with config/knowledge/ demoted to a read-only legacy fallback.

Rationale: The plugin’s own source declares it superseded: skills/compound/SKILL.md is titled ‘(deprecated — use /clavain:compound)’, config/knowledge/README.md is headed ‘Knowledge Layer (Deprecated)’ and says the store converged into docs/solutions/ (‘Do not add new entries here’), and skills/recall/SKILL.md now treats docs/solutions/ as primary with config/knowledge/ as legacy. So the live capability is functionally a thin shell around the qmd MCP server plus two skills that mostly point elsewhere. Its conceptual core — provenance-tracked, decaying knowledge entries — is genuinely good and directly matches the 2026 agent-memory consensus (separate episodic/semantic/procedural memory with explicit write/consolidation policies; human-auditable git-tracked stores over opaque auto-updating ones; the memory-pollution caution that provenance+decay specifically defends against). But that core now lives in clavain/docs-solutions, intermem graduates memory→docs, and interlearn indexes solution docs cross-repo. Keeping interknow as a separate plugin means three contradictions are shipping: (1) the headline ‘semantic retrieval’ is BM25-only in practice — qmd reports 0 vectors embedded / 2904 pending and the embedding model fails to compile on this machine; (2) the recall skill documents qmd:vsearch / qmd:status MCP calls that don’t match the actual MCP surface (query/get/multi_get/status — vsearch is a CLI-only subcommand); (3) the README asserts ‘8 entries migrated, do not add here’ but config/knowledge/ still holds 9 live entries. The valuable part is the provenance+decay schema; the right move is to fold that schema into the canonical clavain/docs-solutions path and retire the duplicate plugin surface, not to independently modernize a self-deprecated shell.

SOTA gap: Embedding-based semantic retrieval (RAG-MCP / MemRouter gated memory) is the named feature but is non-functional: qmd shows 0/2946 vectors embedded, so ‘semantic retrieval via qmd’ is keyword-only today. Deeper frontier gaps: (a) graph/temporal agent memory (Zep, GAM, ‘what changed about X and why’ over the entry history) — provenance+lastConfirmed are the perfect substrate for a temporal knowledge graph but it’s flat-file only; (b) the tool-vs-skill / self-evolving skill-library framing (SkillFoundry, SoK: Agentic Skills) — these entries are static procedural knowledge that doesn’t improve from usage; (c) experience-replay distillation (EvolveR, RLEP) — sessions aren’t mined to auto-distill new entries. But fixing these inside a deprecated plugin is the wrong investment; the embedding gap should be closed once, centrally, in the shared qmd/intersearch layer that all consumers use.

Redundancy: High and acknowledged in-source. /clavain:compound and /clavain:recall now own compound/recall (the skills redirect to them). docs/solutions/ is the canonical store (config/knowledge/README.md says so). intermem graduates auto-memory→AGENTS.md/docs (complementary but overlapping write path). interlearn indexes solution docs cross-repo (overlapping recall path). intersearch is the shared embedding+search infra; the qmd MCP server here is the same global qmd instance shared across the ecosystem (it indexes all 2946 sylveste docs, not interknow’s entries), so interknow does not own a distinct retrieval surface. recall also overlaps the broader /clavain:recall ‘search across all knowledge systems’.

Actions:

  • Decide the merge target explicitly: fold the provenance (independent/primed) + dual-decay + hysteresis schema into the canonical docs/solutions/ + /clavain:compound path, then reduce interknow to either (a) a deprecated stub that forwards to clavain, or (b) removed from the marketplace once clavain:compound preserves the provenance fields. Document the decision in AGENTS.md so it is not re-litigated.
  • Fix the recall skill’s broken MCP contract: replace qmd:vsearch / top_k / path invocations with the real qmd MCP tools (query with typed lex/vec sub-queries + intent, get/multi_get, status). Drop ‘vsearch tool’ from AGENTS.md and CLAUDE.md.
  • Resolve the migration contradiction: README says 8 entries migrated and ‘do not add here’ but 9 live entries remain — either finish migrating the 9 into docs/solutions/best-practices/ and empty config/knowledge/, or correct the README count and status.
  • Close the semantic-retrieval gap centrally, not per-plugin: run qmd embed (or fix the Metal/embeddinggemma compile failure) in the shared qmd/intersearch layer so ‘semantic retrieval’ is real for all consumers; until then, stop advertising ‘semantic retrieval via qmd’ in plugin.json since it is BM25-only.