feat: v1.1 — URL ingestion, vision, delta tracking, 3 new skills, auto-commit
Skills (new): - skills/obsidian-markdown/ — full Obsidian Flavored Markdown syntax reference (wikilinks, embeds, callouts, properties, math, Mermaid) - skills/obsidian-bases/ — Obsidian Bases (.base files) with correct filters/views/ formulas syntax (sourced from kepano/obsidian-skills authoritative spec) - skills/defuddle/ — web page cleaner; strips ads/nav before URL ingestion, saves 40-60% tokens on web articles wiki-ingest upgrades: - URL ingestion: pass https:// directly, auto-fetches + runs defuddle if available - Image/vision ingestion: .png/.jpg/.gif etc → Claude reads → description saved to .raw/ → standard ingest pipeline - Delta tracking: .raw/.manifest.json tracks hash per source, skips unchanged files wiki-query upgrades: - Quick mode (query quick:) — hot.md + index only, ~1500 tokens - Standard mode — existing behaviour, 3-5 pages - Deep mode (query deep:) — full wiki + optional web search supplement hooks: - PostToolUse auto-commit: every Write/Edit to wiki/ or .raw/ triggers git add + commit automatically, vault always versioned fixes: - Removed invalid allowed-tools field from all 10 SKILL.md files (not a valid skill frontmatter attribute per spec; was silently ignored) - Canvas SKILL.md now references json-canvas open standard and kepano/obsidian-skills wiki research: - Ecosystem research: 16+ Claude+Obsidian projects mapped and filed - New pages: comparisons/claude-obsidian-ecosystem, concepts/cherry-picks, entities/ (6 new), sources/claude-obsidian-ecosystem-research - Cherry-picks roadmap filed at wiki/concepts/cherry-picks.md Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
226
skills/obsidian-markdown/SKILL.md
Normal file
226
skills/obsidian-markdown/SKILL.md
Normal file
@@ -0,0 +1,226 @@
|
||||
---
|
||||
name: obsidian-markdown
|
||||
description: "Write correct Obsidian Flavored Markdown — wikilinks, embeds, callouts, properties, tags, highlights, math, and canvas syntax. Reference this when creating or editing any wiki page. Triggers on: write obsidian note, obsidian syntax, wikilink, callout, embed, obsidian markdown."
|
||||
---
|
||||
|
||||
# obsidian-markdown — Obsidian Flavored Markdown
|
||||
|
||||
Reference this skill when writing any wiki page. Obsidian extends standard Markdown with wikilinks, embeds, callouts, and properties. Getting syntax wrong causes broken links, invisible callouts, or malformed frontmatter.
|
||||
|
||||
**Cross-reference**: `kepano/obsidian-skills` publishes the authoritative cross-platform version of this skill at [github.com/kepano/obsidian-skills](https://github.com/kepano/obsidian-skills). If installed, that skill is the canonical reference — use it alongside this one.
|
||||
|
||||
---
|
||||
|
||||
## Wikilinks
|
||||
|
||||
Internal links use double brackets. The filename without extension.
|
||||
|
||||
```markdown
|
||||
[[Note Name]] — basic link
|
||||
[[Note Name|Display Text]] — aliased link (shows "Display Text")
|
||||
[[Note Name#Heading]] — link to a specific heading
|
||||
[[Note Name#^block-id]] — link to a specific block
|
||||
```
|
||||
|
||||
Rules:
|
||||
- Case-sensitive on some systems. Match the exact filename.
|
||||
- No path needed — Obsidian resolves by filename uniqueness.
|
||||
- If two files have the same name, use `[[Folder/Note Name]]` to disambiguate.
|
||||
|
||||
---
|
||||
|
||||
## Embeds
|
||||
|
||||
Embeds use `!` before the wikilink. They display the content inline.
|
||||
|
||||
```markdown
|
||||
![[Note Name]] — embed a full note
|
||||
![[Note Name#Heading]] — embed a section
|
||||
![[image.png]] — embed an image
|
||||
![[image.png|300]] — embed image with width 300px
|
||||
![[document.pdf]] — embed a PDF (Obsidian renders natively)
|
||||
![[audio.mp3]] — embed audio
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Callouts
|
||||
|
||||
Callouts are blockquotes with a type keyword. They render as styled alert boxes.
|
||||
|
||||
```markdown
|
||||
> [!note]
|
||||
> Default informational callout.
|
||||
|
||||
> [!note] Custom Title
|
||||
> Callout with a custom title.
|
||||
|
||||
> [!note]- Collapsible (closed by default)
|
||||
> Click to expand.
|
||||
|
||||
> [!note]+ Collapsible (open by default)
|
||||
> Click to collapse.
|
||||
```
|
||||
|
||||
### All callout types
|
||||
|
||||
| Type | Aliases | Use for |
|
||||
|------|---------|---------|
|
||||
| `note` | — | General notes |
|
||||
| `abstract` | `summary`, `tldr` | Summaries |
|
||||
| `info` | — | Information |
|
||||
| `todo` | — | Action items |
|
||||
| `tip` | `hint`, `important` | Tips and highlights |
|
||||
| `success` | `check`, `done` | Positive outcomes |
|
||||
| `question` | `help`, `faq` | Open questions |
|
||||
| `warning` | `caution`, `attention` | Warnings |
|
||||
| `failure` | `fail`, `missing` | Errors or failures |
|
||||
| `danger` | `error` | Critical issues |
|
||||
| `bug` | — | Known bugs |
|
||||
| `example` | — | Examples |
|
||||
| `quote` | `cite` | Quotations |
|
||||
| `contradiction` | — | Conflicting information (wiki convention) |
|
||||
|
||||
---
|
||||
|
||||
## Properties (Frontmatter)
|
||||
|
||||
Obsidian renders YAML frontmatter as a Properties panel. Rules:
|
||||
|
||||
```yaml
|
||||
---
|
||||
type: concept # plain string
|
||||
title: "Note Title" # quoted if it contains special chars
|
||||
created: 2026-04-08 # date as YYYY-MM-DD (not ISO datetime)
|
||||
updated: 2026-04-08
|
||||
tags:
|
||||
- tag-one # list items use - format
|
||||
- tag-two
|
||||
status: developing
|
||||
related:
|
||||
- "[[Other Note]]" # wikilinks must be quoted in YAML
|
||||
sources:
|
||||
- "[[source-page]]"
|
||||
---
|
||||
```
|
||||
|
||||
Rules:
|
||||
- Flat YAML only. Never nest objects.
|
||||
- Dates as `YYYY-MM-DD`, not `2026-04-08T00:00:00`.
|
||||
- Lists as `- item`, not inline `[a, b, c]`.
|
||||
- Wikilinks in YAML must be quoted: `"[[Page]]"`.
|
||||
- `tags` field: Obsidian reads this as the tag list, searchable in vault.
|
||||
|
||||
---
|
||||
|
||||
## Tags
|
||||
|
||||
Two valid forms:
|
||||
|
||||
```markdown
|
||||
#tag-name — inline tag anywhere in the body
|
||||
#parent/child-tag — nested tag (shows hierarchy in tag pane)
|
||||
```
|
||||
|
||||
In frontmatter:
|
||||
```yaml
|
||||
tags:
|
||||
- research
|
||||
- ai/obsidian
|
||||
```
|
||||
|
||||
Do not use `#` inside frontmatter tag lists — just the tag name.
|
||||
|
||||
---
|
||||
|
||||
## Text Formatting
|
||||
|
||||
Standard Markdown plus Obsidian extensions:
|
||||
|
||||
```markdown
|
||||
**bold** — bold
|
||||
*italic* — italic
|
||||
~~strikethrough~~ — strikethrough
|
||||
==highlight== — highlighted text (yellow in Obsidian)
|
||||
`inline code` — inline code
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Math
|
||||
|
||||
Obsidian uses MathJax/KaTeX:
|
||||
|
||||
```markdown
|
||||
$E = mc^2$ — inline math
|
||||
|
||||
$$
|
||||
\int_0^\infty e^{-x} dx = 1
|
||||
$$ — block math
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Code Blocks
|
||||
|
||||
Standard fenced code blocks. Obsidian highlights all common languages:
|
||||
|
||||
````markdown
|
||||
```python
|
||||
def hello():
|
||||
return "world"
|
||||
```
|
||||
````
|
||||
|
||||
---
|
||||
|
||||
## Tables
|
||||
|
||||
Standard Markdown tables:
|
||||
|
||||
```markdown
|
||||
| Column A | Column B | Column C |
|
||||
|----------|----------|----------|
|
||||
| Value | Value | Value |
|
||||
| Value | Value | Value |
|
||||
```
|
||||
|
||||
Obsidian renders tables natively. No plugin needed.
|
||||
|
||||
---
|
||||
|
||||
## Mermaid Diagrams
|
||||
|
||||
Obsidian renders Mermaid natively:
|
||||
|
||||
````markdown
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Start] --> B{Decision}
|
||||
B -->|Yes| C[End]
|
||||
B -->|No| D[Loop]
|
||||
D --> A
|
||||
```
|
||||
````
|
||||
|
||||
Supported: `graph`, `sequenceDiagram`, `gantt`, `classDiagram`, `pie`, `flowchart`.
|
||||
|
||||
---
|
||||
|
||||
## Footnotes
|
||||
|
||||
```markdown
|
||||
This sentence has a footnote.[^1]
|
||||
|
||||
[^1]: The footnote text goes here.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What NOT to Do
|
||||
|
||||
- Do not use `[link text](path/to/note.md)` for internal links — use `[[Note Name]]` instead.
|
||||
- Do not use HTML inside callouts — stick to Markdown.
|
||||
- Do not use `##` inside a callout body — headings don't render inside callouts.
|
||||
- Do not write `tags: [a, b, c]` inline in frontmatter — Obsidian prefers the list format.
|
||||
- Do not write ISO datetimes in frontmatter (`2026-04-08T00:00:00Z`) — use `2026-04-08`.
|
||||
Reference in New Issue
Block a user