> 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.
npx skills add https://github.com/Ar9av/obsidian-wiki --skill wiki-narrate
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.
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
Take ar9av/wiki-narrate from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.