Use this skill when answering questions against a wikillm knowledge base. Covers finding relevant articles, synthesizing answers, choosing output formats (conversation, report, slides, visualization), and filing valuable results back into the wiki. Use whenever the user asks a question about their KB content or requests analysis.
Answer questions and perform analysis against the knowledge base.
obsidian vaults. If it succeeds, prefer /wikillm:obsidian-cli for search and graph queries. If it errors or hangs, Obsidian is closed — fall back to Grep/Glob. Do not rely on obsidian --version for this check; it succeeds when the binary is installed even if the app is closed.vault="<name>". Run obsidian vaults verbose to list available vaults.wiki/_index/INDEX.md next — it's the lookup table for everything that follows.Prefer direct reads when INDEX pins the answer. If INDEX.md lists ≤2 articles that clearly cover the question, skip search — Read them directly. Search is strictly more round-trips for targeted lookups, and INDEX is already a curated lookup table.
Search when INDEX is ambiguous. When the question is cross-cutting, vague, or mentions a term that isn't an article title, use obsidian search query="<term>" (or Grep when Obsidian is closed).
Scope searches to wiki/ to cut raw/ noise: obsidian search returns matches from both raw/ (immutable source material) and wiki/ (compiled articles) indistinguishably. The raw/ folder is the input to the wiki — don't pull facts from it directly. Filter at the CLI level:
obsidian search query="<term>" path="wiki"
Use tags for thematic questions. Read wiki/_index/TAGS.md to find articles by topic tags when the question is thematic ("what do we know about streaming?").
Once you've identified your primary targets, run backlinks on each to catch hub articles you'd otherwise miss:
obsidian backlinks file="<primary-article>"
Hub articles (the ones multiple other articles link to) often contain the canonical framing, the cross-cutting gotchas, or the comparison tables that make an answer feel complete. They frequently aren't obvious from INDEX browsing — the INDEX lists every article equally, but the graph tells you which ones are load-bearing.
Also useful:
obsidian links file="<article>" — what the article links out to (forward graph)obsidian unresolved — broken wikilinks worth flagging as gapsGraph traversal is the single biggest advantage of querying Obsidian over flat-markdown grep. If you skip this step, you're leaving information on the table. Don't skip it — the whole point of keeping the wiki in Obsidian is the graph.
raw/ — the wiki is the compiled knowledge)[[wikilinks]] to related articles for additional contextBased on the question and enabled features (check CLAUDE.md):
outputs/reports/YYYY-MM-DD-topic.md. If the answer will inform upcoming code changes or be shared with other sessions, write the report — don't rely on chat scrollback./wikillm:marp-cli and write to outputs/slides/YYYY-MM-DD-topic.mdoutputs/visualizations/YYYY-MM-DD-topic.pngOnly use output formats that are enabled in the vault's CLAUDE.md.
Most queries should NOT file back. Pure lookups — "what's the shape of this API?" — don't produce new knowledge; they just surface what's already written. Filing back on every read creates update churn and stale RECENT.md entries for no gain.
File back only when the query produces genuine synthesis value:
[unverified] claim and can remove the markerWhen filing back:
## [YYYY-MM-DD HH:MM] query | <topic>query: <topic> — added/updated N articlesIf the question reveals a gap in the KB (topic not covered, outdated info, unresolved wikilink referenced repeatedly):
[gap] markerraw/ to fill the gap/wikillm:lint section 2.4)