Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 269% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -45% | 0% |
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.error listing briefing, plain-language, and lecturer without searching or writing.
--save is the only persistence switch.or validation error and do not search, write, append a log event, or change 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 summarybefore 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.
content", "as a user would see it", and "exclude internal". Skip pages tagged 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.
claim cannot otherwise be established. Preserve relevant lifecycle and freshness annotations; do not upgrade a page's trust.
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, andknown 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 refreshhot.md with the topic, voice, cited pages, inference count, evidence gaps, and saved readout path. hot.md changes only after a successful save.
conversation, report that saving failed, append a 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 loggingfailure separately. Never represent a failed log or save as successful.
no readout file even if --save was requested, do not change hot.md, and record a WIKI_NARRATE event with outcome=no_match when log.md is writable.
Return only supported claims, label ambiguity where applicable, and make the gap explicit in ## Coverage; saving remains available for that successful partial readout.
update and continue safely through index.md and rg; do not fail the narration merely because QMD is unavailable.
hot.md, and never update index.md or .manifest.json.
Other measured skills in the registry, with their headline benchmark lift.