Obsidian Inbox Skill
Processes unsorted notes in /Users/ikatkov/Obsidian/Default/inbox/ into properly-formatted notes in the correct subfolder.
When to invoke
- User drops a raw
.md file in /Users/ikatkov/Obsidian/Default/inbox/ (containing a URL, pasted text, optionally images) and asks to process it.
- User says any of: "sort my inbox", "file this", "clean up the new note", "process inbox".
- User explicitly invokes via
/obsidian-inbox or Skill tool.
If multiple unsorted files exist, ask which one (or "all").
Workflow
1. Read the vault entry point
Read /Users/ikatkov/Obsidian/Default/inbox/CONVENTIONS.md first. It's the source of truth for the workflow, shared rules (image-filename uniqueness, frontmatter dates, language preservation), and the table of subfolders → convention docs. The skill instructions you're reading now are the trigger / driver; the vault file is the data.
2. Locate the unsorted note
ls /Users/ikatkov/Obsidian/Default/inbox/*.md — any .md files at the root of inbox/ (not inside a subfolder) are unsorted. Also list any loose images (.webp, .png, .jpg) at the root in case they belong to the note.
3. Read the raw note + classify
Read the raw note. Apply the classification heuristics from inbox/CONVENTIONS.md:
| Signals |
Folder |
| Title with year in parens, IMDb URL, director / cinematographer mentioned |
movies/ |
| Goodreads URL, author dominant, pages / publisher |
books/ |
| Instagram reel + "poses" / "позы" + numbered figure references |
poses/ |
| Instagram reel + place names / route / map / restaurants / "road trip" |
travel/ |
| Instagram reel / blog / GitHub URL describing a tool / technique / workflow |
ideas/ |
If none fit, ask the user whether to create a new subfolder; if yes, also generate a new conventions.md for it using the existing ones as a template.
4. Read the matching conventions
Read /Users/ikatkov/Obsidian/Default/inbox/<folder>/conventions.md. It contains the exact frontmatter shape, body sections, image widths, and tag rules you must follow — do not invent.
5. Gather any external info needed
- Movies: fetch IMDb (title, year, director, cinematographer, country, genre). If the raw note already has these, skip.
- Books: fetch Goodreads (rating, ratings_count, pages, blurb). Required.
- Poses / travel / ideas: if the source is an Instagram reel and the raw note doesn't already include stills, use
yt-dlp (for reels) or instagram-gallery-download (for /p/ posts) skills to pull media. For poses, follow the frame-selection rule in poses/conventions.md (darker graded final-pose frames, not demo/motion frames with numbered badges).
6. Process images
For every image that will end up in the new note:
- Convert to
.webp if not already: magick input.jpg -quality 85 output.webp. Delete the original.
- Choose a vault-globally-unique filename. Prefix with a category slug or note slug — never use generic
cover.webp / poster.webp / screenshot.webp. The exact naming pattern is in the matching conventions.md (e.g. movies use <film-slug>.webp, travel uses <region-slug>-NN.webp).
- Verify uniqueness:
find /Users/ikatkov/Obsidian/Default -name "<new-filename>" should return zero matches.
- Move into
<folder>/attachments/<note-slug>/.
7. Generate the final note
Write the new .md file directly into <folder>/, following the matching conventions.md precisely:
- Frontmatter shape per the convention (date created/modified to current time in
Month Dth YYYY, h:mm:ss am/pm format).
- Image embeds with the correct width (
|200).
- Tag taxonomy from that folder's convention. Do not invent new top-level namespaces. No
inbox/* tags, no year-as-tag.
- Body structure (sections, headings) exactly as the convention specifies.
- Language: keep source language for
title:, summary:, and body.
8. Clean up
- Delete the original raw
.md from inbox/ root only after confirming with the user that the new note looks right.
- Delete any temp / original-format images.
- If a new subfolder was created, ensure its
conventions.md is in place and the row in inbox/CONVENTIONS.md is updated.
Failure modes to avoid
- Generic image filenames. This is the single biggest pitfall — Obsidian wikilinks collide across the whole vault by filename alone. Always prefix.
- Inventing new tags. Use the namespaces in the folder's
conventions.md. If you genuinely need a new tag, surface it to the user before writing.
- Translating Russian titles / summaries. Russian source → Russian text. Don't be helpful by Englishifying.
- Skipping Goodreads enrichment for books. Required step, not optional.
- Deleting the raw inbox file before the user has eyeballed the result. Always confirm.
References
- Vault entry point:
/Users/ikatkov/Obsidian/Default/inbox/CONVENTIONS.md
- Per-folder conventions:
inbox/movies/conventions.md
inbox/books/conventions.md
inbox/ideas/conventions.md
inbox/poses/conventions.md
inbox/travel/conventions.md
1---2name: obsidian-inbox3description: Process an unsorted raw markdown note dropped in /Users/ikatkov/Obsidian/Default/inbox/ — classify it (movie / book / idea / poses / travel / new category), reformat per the matching per-folder conventions, rename and prefix images for vault-wide uniqueness, then file it into the correct subfolder. Use when the user says "sort my inbox", "process the new note in inbox", "file this", or drops a raw note + URL/screenshots in /Users/ikatkov/Obsidian/Default/inbox/ and asks to clean it up.4---56# Obsidian Inbox Skill78Processes unsorted notes in `/Users/ikatkov/Obsidian/Default/inbox/` into properly-formatted notes in the correct subfolder.910## When to invoke1112- User drops a raw `.md` file in `/Users/ikatkov/Obsidian/Default/inbox/` (containing a URL, pasted text, optionally images) and asks to process it.13- User says any of: "sort my inbox", "file this", "clean up the new note", "process inbox".14- User explicitly invokes via `/obsidian-inbox` or `Skill` tool.1516If multiple unsorted files exist, ask which one (or "all").1718## Workflow1920### 1. Read the vault entry point2122Read `/Users/ikatkov/Obsidian/Default/inbox/CONVENTIONS.md` first. It's the source of truth for the workflow, shared rules (image-filename uniqueness, frontmatter dates, language preservation), and the table of subfolders → convention docs. The skill instructions you're reading now are the trigger / driver; the vault file is the data.2324### 2. Locate the unsorted note2526`ls /Users/ikatkov/Obsidian/Default/inbox/*.md` — any `.md` files at the root of `inbox/` (not inside a subfolder) are unsorted. Also list any loose images (`.webp`, `.png`, `.jpg`) at the root in case they belong to the note.2728### 3. Read the raw note + classify2930Read the raw note. Apply the classification heuristics from `inbox/CONVENTIONS.md`:3132| Signals | Folder |33| ------------------------------------------------------------------------------- | --------- |34| Title with year in parens, IMDb URL, director / cinematographer mentioned | `movies/` |35| Goodreads URL, author dominant, pages / publisher | `books/` |36| Instagram reel + "poses" / "позы" + numbered figure references | `poses/` |37| Instagram reel + place names / route / map / restaurants / "road trip" | `travel/` |38| Instagram reel / blog / GitHub URL describing a tool / technique / workflow | `ideas/` |3940If none fit, ask the user whether to create a new subfolder; if yes, also generate a new `conventions.md` for it using the existing ones as a template.4142### 4. Read the matching conventions4344Read `/Users/ikatkov/Obsidian/Default/inbox/<folder>/conventions.md`. It contains the exact frontmatter shape, body sections, image widths, and tag rules you must follow — do not invent.4546### 5. Gather any external info needed4748- **Movies**: fetch IMDb (title, year, director, cinematographer, country, genre). If the raw note already has these, skip.49- **Books**: fetch Goodreads (rating, ratings_count, pages, blurb). Required.50- **Poses / travel / ideas**: if the source is an Instagram reel and the raw note doesn't already include stills, use `yt-dlp` (for reels) or `instagram-gallery-download` (for `/p/` posts) skills to pull media. For poses, follow the frame-selection rule in `poses/conventions.md` (darker graded final-pose frames, not demo/motion frames with numbered badges).5152### 6. Process images5354For every image that will end up in the new note:55561. Convert to `.webp` if not already: `magick input.jpg -quality 85 output.webp`. Delete the original.572. Choose a **vault-globally-unique filename**. Prefix with a category slug or note slug — never use generic `cover.webp` / `poster.webp` / `screenshot.webp`. The exact naming pattern is in the matching `conventions.md` (e.g. movies use `<film-slug>.webp`, travel uses `<region-slug>-NN.webp`).583. Verify uniqueness: `find /Users/ikatkov/Obsidian/Default -name "<new-filename>"` should return zero matches.594. Move into `<folder>/attachments/<note-slug>/`.6061### 7. Generate the final note6263Write the new `.md` file directly into `<folder>/`, following the matching `conventions.md` precisely:6465- Frontmatter shape per the convention (date created/modified to current time in `Month Dth YYYY, h:mm:ss am/pm` format).66- Image embeds with the correct width (`|200`).67- Tag taxonomy from that folder's convention. Do not invent new top-level namespaces. No `inbox/*` tags, no year-as-tag.68- Body structure (sections, headings) exactly as the convention specifies.69- Language: keep source language for `title:`, `summary:`, and body.7071### 8. Clean up7273- Delete the original raw `.md` from `inbox/` root **only after confirming with the user** that the new note looks right.74- Delete any temp / original-format images.75- If a new subfolder was created, ensure its `conventions.md` is in place and the row in `inbox/CONVENTIONS.md` is updated.7677## Failure modes to avoid7879- **Generic image filenames.** This is the single biggest pitfall — Obsidian wikilinks collide across the whole vault by filename alone. Always prefix.80- **Inventing new tags.** Use the namespaces in the folder's `conventions.md`. If you genuinely need a new tag, surface it to the user before writing.81- **Translating Russian titles / summaries.** Russian source → Russian text. Don't be helpful by Englishifying.82- **Skipping Goodreads enrichment for books.** Required step, not optional.83- **Deleting the raw inbox file before the user has eyeballed the result.** Always confirm.8485## References8687- Vault entry point: `/Users/ikatkov/Obsidian/Default/inbox/CONVENTIONS.md`88- Per-folder conventions:89 - `inbox/movies/conventions.md`90 - `inbox/books/conventions.md`91 - `inbox/ideas/conventions.md`92 - `inbox/poses/conventions.md`93 - `inbox/travel/conventions.md`