llm-wiki
LLM Wiki
Build and maintain a personal knowledge base as plain markdown. You manage two directories: raw/ (immutable source material) and wiki/ (compiled knowledge you own). Sources land in raw/, you compile them into wiki/ articles, and the wiki compounds over time. Everything is local markdown with YAML frontmatter, readable on GitHub and openable as an Obsidian vault. No servers, no databases, no embeddings.
Core idea (Karpathy): the LLM writes and maintains the wiki; the human chooses sources and asks questions. Knowledge is compiled once at ingest and kept current, not re-derived on every query. That is the difference from RAG, which retrieves raw chunks and re-synthesises on every question.
Invocation
Query is the default. Ingest, Lint, Audit, and Critique are the four deliberate operations - each opted into by its verb or by a request that plainly calls for it. Anything else is a Query against the wiki: a bare question, "what do I know about X", "summarise everything on Y". You do not need a query keyword to query; it is what the skill does unless one of the four operations is clearly being asked for.
A leading mode argument routes straight to that operation:
ingest(aliasadd) - Ingest. Any trailing text is the source: a URL, a path, or pasted content.lint- Lint. Health checks; needs no further input.audit- Audit. Trailing text names the article or topic to verify.critique(aliasscrutinise) - Critique. Trailing text names the article, topic, or pasted content whose reasoning to examine.query(aliasask) - Query. Rarely needed as an explicit keyword, but it forces query handling when a question might otherwise look like one of the four operations above.
So /llm-wiki lint runs Lint and /llm-wiki ingest https://... ingests that URL. Otherwise treat the whole argument as a natural-language request: route it to Ingest, Lint, Audit, or Critique only when it clearly calls for one, and answer everything else as a Query.