Turn a wiki topic into a cited Markdown briefing, plain-language explanation, or progressive lecture. Use this skill for topic-based briefing, explanation, and lecture requests that must stay within the evidence compiled in an Obsidian vault.
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Use this skill only for a topic-based Markdown readout. Do not add tag or page-list selection, prior-query input, voice aliases, HTML, PDF, slides, renderer handoffs, or new compiled knowledge pages.
/wiki-narrate <topic> [--voice briefing|plain-language|lecturer] [--save]
<topic>.briefing.briefing, plain-language, and lecturer without searching or
writing.--save is the only persistence switch.hot.md.@name vault override, then read the target vault's AGENTS.md when it exists.
Load OBSIDIAN_LINK_FORMAT before drafting citations.hot.md and index.md first. Select candidates by frontmatter and summary
before reading bodies.rg; if QMD is absent, unconfigured, or fails,
continue with the index and rg path. Treat QMD output as candidate guidance, not
evidence: establish each claim from the allowed vault page itself.visibility/internal or visibility/pii in that mode: never read, cite, or expose
them._readouts/, _raw/, _archives/, _meta/, index.md, log.md,
hot.md, and _insights.md from candidates.Draft a ledger before prose. Each item contains a claim, supporting [[vault page]]
links, and one status: supported fact, inferred connection, or ambiguous conflict.
When OBSIDIAN_LINK_FORMAT=markdown, render the same supporting page as a standard
Markdown link; otherwise use the vault's [[wikilink]] form.
Ensure every factual sentence has adjacent supporting citations. Mark inferred connections ^[inferred]; mark unresolved conflicts ^[ambiguous]. Never use web knowledge, model memory, or invented examples to close a gap. Omit unsupported claims and name the gap in Coverage. An inference or ambiguity marker supplements, rather than replaces, adjacent citations.
Read references/voices.md and use exactly the requested voice skeleton. The selected
voice may change prose and ordering, but cannot change the ledger's factual boundary.
Return Markdown only, structured as:
OBSIDIAN_LINK_FORMAT.## Coverage footer listing cited pages, the count of inferred statements, and
known evidence gaps.If evidence is weak or contradictory, produce only the supported portion. Mark each
unresolved conflict ^[ambiguous] with citations to all conflicting pages, and list
the remaining gaps in ## Coverage.
Present the result by default. For --save, create _readouts/ if necessary and write
_readouts/<slug>.md with title, topic, voice, sources, created, and
updated frontmatter. Use a deterministic, filesystem-safe <slug> derived from the
topic. Save the same completed Markdown readout that was returned in conversation.
A readout is derived output: exclude _readouts/ from retrieval and must not update index.md or .manifest.json. Do not create _readouts/ or a readout file without a successful --save result.
After a narration attempt that reaches retrieval, append one WIKI_NARRATE event to
log.md:
- [TIMESTAMP] WIKI_NARRATE topic="<topic>" voice=<voice> result_pages=N mode=normal|filtered saved=true|false outcome=success|no_match|write_failed--save, append the event with saved=false after returning the readout;
do not create a readout or change hot.md.--save write, append the event with saved=true, then refresh
hot.md with the topic, voice, cited pages, inference count, evidence gaps, and
saved readout path. hot.md changes only after a successful save.WIKI_NARRATE event with
saved=false outcome=write_failed when log.md remains writable, and do not update
hot.md.log.md fails, preserve the readout result and report the logging
failure separately. Never represent a failed log or save as successful.--save was requested, do not change hot.md, and record a
WIKI_NARRATE event with outcome=no_match when log.md is writable.## Coverage; saving remains available for that successful partial
readout.index.md and rg; do not fail the narration
merely because QMD is unavailable.hot.md, and never update index.md or .manifest.json.52c9f2b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.