Vault scribe
Converts transcripts, video summaries, meeting notes, brainstorming sessions, strategy documents, and rough notes into polished Obsidian-flavored Markdown. Activates when creating or editing notes in an Obsidian vault, generating front matter, applying callout blocks, structuring knowledge base articles, or producing developer-facing guides. Also triggers on mentions of Obsidian, front matter, callout blocks, vault organisation, or requests for GitHub-compatible Markdown documents.From its SKILL.md
npx -y skills add psenger/ai-agent-skills --skill vault-scribeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.2 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it
Vault Scribe — Obsidian + GitHub Markdown Skill
Creates and edits Markdown that is GitHub-Flavored Markdown (GFM) first, with optional Obsidian-specific extensions when needed. Standard Markdown (headings, bold, italic, lists, quotes, code blocks, tables) is assumed knowledge.
Default rule: Use standard GFM syntax unless the user explicitly requests Obsidian-specific features or is working in an Obsidian-only context. Obsidian wikilinks (
[[Note]]) break on GitHub — always prefer standard Markdown links for cross-platform compatibility.
When invoked with an argument (e.g. /vault-scribe meeting), use $ARGUMENTS to determine the note type. If no argument is provided, infer the type from the source material or ask the user.
Workflow: Creating a Note
1. Analyse the Source Material
- Read the full transcript, notes, or brief carefully
- Identify the core topic, intended audience, and key concepts
- Note any implicit structure (e.g., problem → solution → examples)
- Extract any explicit examples, warnings, tips, or quotes worth preserving
2. Generate YAML Front Matter
Reference: See
references/FRONT-MATTER.mdfor the complete schema definitions, all enum values, and type-specific required fields.
First, determine the note type based on what the user is creating:
| If the user wants… | Set type to |
|---|---|
| A guide, reference doc, or knowledge article | article |
| A step-by-step instructional guide or procedure | how-to |
| Architecture docs, RFCs, design docs, system specs | technical |
| An investigation with multiple sources | deep-research |
| A versioned plan or strategy document | strategy |
| Meeting notes, 1:1s, standups, retrospectives | meeting |
| Brainstorming, ideation, or exploratory thinking (solo or group) | brainstorming |
[!TIP] Brainstorming is its own note type. It works for group sessions (add
attendeesandmeeting_date) and solo AI ideation (omit them). Addsourceswhen the brainstorm draws on external references.
Then apply the corresponding frontmatter schema from references/FRONT-MATTER.md. Every note type uses the core fields plus any type-specific required fields.
Tag guidelines:
- Use lowercase, hyphenated slugs only (e.g.
distributed-systems, notDistributed Systems) - Include 4–8 tags: topic-specific first, then broader domain tags
- Always include at least one technology tag and one domain/concept tag
3. Structure the Document Body
Use this hierarchy:
# Title (H1) — matches front matter title
## Section (H2) — major topic areas
### Subsection (H3) — specific concepts within a section
Target sections (adapt names to the topic):
- Overview / What is X? — define the subject clearly
- How It Works — mechanics, process, or architecture
- Practical Examples — concrete code blocks or walkthroughs
- Common Mistakes / Warnings — callout blocks
- Quick-Start / Checklist — actionable summary
- Further Reading & References — links table
[!NOTE] Minimum 4 sections (Overview, How It Works, Examples, References) for all notes. The full 6 sections are the target for comprehensive articles and guides. Simpler note types (meetings) naturally use fewer sections.
4. Apply Callout Blocks
Use GFM Alerts by default (renders on both GitHub and Obsidian). See references/CALLOUTS.md for the full list of callout types including Obsidian-only variants.
| Callout Type | Use For |
|---|---|
[!NOTE] | Neutral supplementary info |
[!TIP] | Actionable best practice |
[!IMPORTANT] | Key concept the reader must not miss |
[!WARNING] | Common mistake or gotcha |
[!CAUTION] | Risk of data loss, security issue, or breaking change |
[!TIP] Every Warning, Tip, and TL;DR should be a callout block — not plain prose. This makes the document scannable.
5. Code Blocks
Always use fenced code blocks with a language identifier:
```yaml
key: value
```
```bash
mkdir -p ~/.claude/skills/my-skill
```
For directory trees, use plain text or no language tag.
6. Table of Contents
Never use [TOC], [[_TOC_]], or any other TOC directive — neither GitHub nor Obsidian supports them natively. They render as broken plain text.
- GitHub auto-generates a TOC in the sidebar — no directive needed.
- Obsidian generates one via its built-in plugin — no directive needed.
- Only add a manual TOC (using standard anchor links) when the document has 6+ sections and will be read outside a browser. See
references/MARKDOWN-SYNTAX.mdfor anchor rules and an example.
7. Tables & Links
Use Markdown tables for comparisons, option lists, and reference links. Always include a reference links table at the end:
| Resource | Link |
|---|---|
| Official Docs | [docs.example.com](https://docs.example.com) |
| Source Video | [youtube.com/watch?v=...](https://youtube.com/watch?v=...) |
8. Inline Formatting Rules
| Element | Usage |
|---|---|
**bold** | Key terms on first use, critical values |
*italic* | Titles of external resources, emphasis |
`code` | All file paths, commands, config keys, code symbols |
[[wikilink]] | Internal Obsidian links (only if Obsidian-only context) |
9. Transcript Appendix
When the source material includes a transcript (video, podcast, meeting recording, article), always append the raw transcript at the very end of the document, after all other content, using this exact format:
---
## Transcript
Transcript from: [<name of video or article or meeting>](<link to source>)
Date of material: <YYYY-MM-DD>
\```
<raw transcript>
\```
- The transcript section is separated from the rest of the document by a horizontal rule (
---) - The source name must be a clickable Markdown link when a URL is available
- If no URL exists, use plain text for the name
- Date should be in
YYYY-MM-DDformat when known; leave blank if unknown - Before appending, scan the transcript for sensitive values and replace each match with
[REDACTED]. Patterns to detect (case-insensitive):- API keys and tokens: strings matching
sk-[A-Za-z0-9]{20,},AKIA[A-Z0-9]{16},AIza[0-9A-Za-z\-_]{35},ghp_[A-Za-z0-9]{36},Bearer [A-Za-z0-9\-._~+/]+=* - Passwords in URLs:
://[^:]+:[^@]+@(replace the password segment only) - Connection strings: DSN-style strings containing
password=,pwd=,passwd=followed by a value - Private key blocks: anything between
-----BEGIN ... KEY-----and-----END ... KEY----- - Generic high-entropy secrets: any token-like value assigned to a key named
key,secret,token,password,passwd,pwd,credential, orapi_key(case-insensitive)
- API keys and tokens: strings matching
- If no sensitive patterns are found, content is preserved unchanged
- The raw transcript goes inside a fenced code block with no language tag
Output Requirements
- File extension:
.md - Encoding: UTF-8
- Front matter: Always present, always first
- Minimum sections: 4 (Overview, How It Works, Examples, References). Target 6 for comprehensive articles.
- All external URLs must be real and formatted as
[label](url) - No bare URLs — always wrapped in Markdown link syntax
- End the document with an
[!abstract]callout containing the TL;DR (before the Transcript appendix, if present)
Quality Checklist
Before finalising the output, verify:
- Front matter is complete and valid YAML
-
typefield is set and matches the correct note type schema - All type-specific required fields are present (per
references/FRONT-MATTER.md) - Title in front matter matches H1 heading
-
categoryis a valid enum value - Tags are lowercase and hyphenated
- All warnings/tips are callout blocks, not plain paragraphs
- At least one code block example is present (for articles/guides)
- A reference links table exists at the end
- Document closes with an
[!abstract]callout (before Transcript appendix if present) - No bare URLs (all links use
[label](url)format) -
date_createdanddate_updatedare set (use today's date if unknown) - If source material includes a transcript, it is appended in the Transcript Appendix format
- Transcript appendix has been scanned for credentials; any sensitive values are replaced with
[REDACTED]
Reference Files
references/FRONT-MATTER.md— Complete frontmatter schemas for all note types, enum values fortype,category, andstatus, and type-specific required/optional fields. Always consult this file when generating front matter.references/CALLOUTS.md— GFM Alerts (default) and Obsidian callout types, foldable/nested syntax, aliases, and custom CSS callouts.references/EMBEDS.md— Standard GFM image syntax (default) and Obsidian-specific embed syntax for notes, images, audio, and PDFs.references/MARKDOWN-SYNTAX.md— Detailed GFM + Obsidian syntax reference for links, tags, comments, highlighting, math, diagrams, footnotes, and the compatibility matrix.examples/— Example output files showing correctly formatted notes for different note types.
References
What ships with it: 9 files
38.0 KB alongside SKILL.md
examples/
- article-example.md1.7 KB
- how-to-example.md3.5 KB
- meeting-brainstorm-example.md1.4 KB
- technical-example.md4.1 KB
- transcript-example.md2.3 KB
references/
- CALLOUTS.md2.6 KB
- EMBEDS.md1.9 KB
- FRONT-MATTER.md15.4 KB
- MARKDOWN-SYNTAX.md4.9 KB
Gives 1 of the 12 instructions most note taking skills give in ~2.4k tokens
Counted across 632 of the 857 authors here whose files we hold, read 2026-09-06
- Use standard Markdown links for external URLshere, and in 16 of 632, across 8 files
- Use wikilinks for internal vault connectionsin 15 of 632, across 7 files
- Embed content using the exclamation mark prefixin 14 of 632, across 6 files
- Ask for clarification if the user request is ambiguousin 13 of 632
- Add frontmatter properties at the top of the filein 12 of 632, across 4 files
- Verify note renders correctly in reading viewin 12 of 632, across 4 files
- Include a visual element on every slidein 11 of 632, across 5 files
- Left-align body text and listsin 11 of 632, across 5 files
- Maintain 0.5 inch minimum marginsin 11 of 632, across 5 files
- Wrap formulas containing double quotes in single quotesin 11 of 632, across 5 files
- Repeat one distinctive visual motif across all slidesin 10 of 632, across 4 files
- Use 36pt or larger for slide titlesin 10 of 632, across 4 files
Said here and by no other author read
- use github-flavored markdown by default
- infer note type from source material
- structure documents with h1 h2 and h3 headings
- include at least four sections in every note
- use callout blocks for warnings tips and tl;dr
- redact sensitive credentials from transcripts
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.