
/deep-sota, a Claude Code plugin

Blog post:
/deep-sota (deep state of the art) is the dedicated front-end for lodestone — and only for lodestone. It is not a standalone plugin. It ships a single skill whose entire purpose is to drive lodestone's 21 MCP tools (coverage checks, top-down taxonomy walks, bottom-up BM25 searches, section reads, citation traversal, inline figures, and code-repo reads) to ground your task in your own research corpus instead of letting Claude hallucinate. Without the lodestone Claude Code plugin installed and enabled, /deep-sota has nothing to drive and will not work. Install lodestone first, every time.
Where /deep-plan is built for planning software and /deep-implement for building it, /deep-sota is built for grounding it: real citations, real figures, real training code, and an honest "lodestone doesn't have X" when it doesn't.
lodestone is a hard requirement, not a recommendation. /deep-sota does not ship its own corpus, MCP server, or any of the tools it invokes — those all live in lodestone. Every install / TL;DR / quick-start block in this README installs lodestone first and /deep-sota second. If you only install /deep-sota, the skill loads but every tool call fails.
TL;DR
Requires uv on PATH.
Install lodestone first, then /deep-sota, then run /lodestone:doctor before you restart so the venv is populated by the time Claude Code launches the MCP server:
/plugin marketplace add piercelamb/lodestone
/plugin install lodestone
/plugin install deep-sota
/reload-plugins
/lodestone:doctor # picks LLM provider/model + downloads HF models (~400 MB) — give it a few minutes
/mcp -> find lodestone -> enable or reconnect
Then fully quit and relaunch Claude Code (not /reload-plugins) — once. Done.
Optional — pre-seed the taxonomy (domains and collections) before your first ingest. Either use my taxonomy or write your own in the same shape, then point Claude at seed_taxonomy.py. Skip seeding entirely and the classify step grows the taxonomy from scratch as you ingest — both paths are fully supported. See Seeding the Taxonomy.
Now seed your corpus — /deep-sota accepts arXiv, code repo, and blog post URLs:
/deep-sota https://arxiv.org/abs/2305.10601 # arXiv paper
/deep-sota https://github.com/owner/repo # code repo
/deep-sota https://lilianweng.github.io/posts/2023-06-23-agent/ # blog post
Once the corpus has a few papers, ask research questions:
/deep-sota "long-context retrieval"
/deep-sota "what's the SOTA on agentic web search?"
/deep-sota "what's the SOTA on RAG with KV-cache offloading?"
/lodestone:doctor is the required first-run setup: it runs the one-time uv sync (~30–90s) and pre-seeds the venv, walks you through the LLM provider + model picker (writing ~/.config/lodestone/config.toml), and downloads the two CPU-only HuggingFace models (bge-small-en-v1.5 embeddings + gliner2-large-v1 entity extraction, ~400 MB total) in the background while you answer the picker prompts. On the next launch Claude Code finds the venv ready on its first MCP-server attempt, config in place, and models cached — mcp__lodestone__* tools register immediately and your first /deep-sota ingest can start straight away. If you skip doctor and try to ingest, /deep-sota reads ~/.config/lodestone/config.toml, sees it's missing, and tells you to run /lodestone:doctor first — the skill does not do its own picker fallback.
Why doctor before restart? Claude Code launches MCP servers in parallel with SessionStart prewarm hooks and won't retry one that fails mid-session. If you skip the doctor and just restart, the lodestone MCP server attempts to launch against an empty venv, exits 1, and stays unavailable until you restart a second time. Doctor-first preempts the race.
Table of Contents