kg-corelisted
Install: claude install-skill mironmax/claudecode-plugins
# Knowledge Graph Core Reference
## Session Protocol (Detailed)
Memory usually arrives **preloaded**: the SessionStart hook injects a "KG MEMORY
PRELOADED" context block, including the session_id — zero tool calls, orientation
before the first decision. The block is a **compact core**: the top-scored nodes of
both graphs, capped so it always lands inline (hook context tolerates far less than
tool results). It is a partial view — the preload routinely drops whole levels
(the user graph often loses every gist to the project graph's higher-scored nodes).
That is why the **loud read is required, not optional**: before any substantive
work, call `kg_read(session_id)` once. It renders the full graph — preloaded gists
collapse to id-only `(preloaded)` anchors, so the budget goes to everything the
compact core had to drop. Nothing is shown twice; `kg_read(session_id, ids=[...])`
re-reads anything in full depth. Announce "I have recalled KG Memories" after this
full read — the preload alone is orientation, not recall.
If no preloaded block exists (server was still warming up), load explicitly:
```
kg_read(cwd="<project root>") # Returns full graph + session_id
```
Either way, the session_id is used for **all** subsequent tool calls — including later
kg_read calls (node reads, re-reads). Passing it means the server reuses your session;
omitting it and passing cwd again mints a fresh one. Passing session_id to kg_search
ensures the project graph is included — worth doing by default