--- name: knowledge-vault description: Manage the Obsidian Knowledge vault — create notes, organize content, search, and maintain the PARA + Zettelkasten system --- # Knowledge Vault Management ## Vault Location `/Users/yiukai/Documents/git/knowledge-base` ## Folder Structure ``` 0 - Daily Notes/ # 每日笔记 1 - Inbox/ # 快速捕捉 2 - Projects/ # 有目标的项目 3 - Areas/ # 长期关注领域 4 - Resources/ # 主题参考资料 5 - Archive/ # 已完成/暂停 6 - Zettelkasten/ # 原子化永久笔记 System/ Attachments/ # 附件 Templates/ # 模板 ``` ## Creating Notes ### Inbox Note Quick capture, no formatting pressure. Place in `1 - Inbox/`. ```markdown --- created: "YYYY-MM-DD HH:mm" type: inbox --- # Title Content here ``` ### Daily Note Place in `0 - Daily Notes/` with filename `YYYY-MM-DD.md`. ```markdown --- created: "YYYY-MM-DD" type: daily --- # YYYY-MM-DD dddd ## 今日捕捉 - ## 待办 - [ ] ## 回顾 ``` ### Zettelkasten Note Atomic permanent note. One idea per note. Place in `6 - Zettelkasten/`. Filename format: `YYYYMMDDHHMMSS Title.md` ```markdown --- created: "YYYY-MM-DD HH:mm" type: zettel tags: [] source: "" --- # Title Write the idea in your own words. --- ## Related - [[link to related notes]] ## Source - Source reference ``` ### Project Note Place in `2 - Projects/`. ```markdown --- created: "YYYY-MM-DD" type: project status: active deadline: "" --- # Title ## Goal ## Tasks - [ ] ## Notes - ## Related - ``` ### Resource Note Place in `4 - Resources/`. ```markdown --- created: "YYYY-MM-DD" type: resource tags: [] source: "" --- # Title ## Summary ## Key Points - ## Related - ``` ### MOC (Map of Content) Index note for a topic. Place in `3 - Areas/` or `4 - Resources/`. ```markdown --- created: "YYYY-MM-DD" type: moc --- # Title ## Overview - ## Key Notes - [[links]] ## Related MOCs - ``` ## Operations ### Create a note 1. Determine note type based on content 2. Use the correct template from above 3. Fill `created` with current date/time 4. For Zettelkasten: generate timestamp filename `YYYYMMDDHHMMSS Title.md` 5. Add `[[links]]` to related existing notes when possible ### Organize Inbox 1. Read all files in `1 - Inbox/` (exclude README.md) 2. For each note, suggest destination: - Actionable task → `2 - Projects/` - Ongoing responsibility → `3 - Areas/` - Reference material → `4 - Resources/` - Original insight → rewrite as Zettel in `6 - Zettelkasten/` - Outdated → suggest deletion 3. Update frontmatter `type` field to match destination (e.g., `project`, `resource`, `zettel`) 4. Add `[[wikilinks]]` to related existing notes in the destination folder 5. Move files after user confirmation ### Search notes Use Grep to search note content across the vault: ``` Grep pattern="search term" path="/Users/yiukai/Documents/git/knowledge-base" glob="*.md" ``` Exclude system files: ``` Grep pattern="search term" path="/Users/yiukai/Documents/git/knowledge-base" glob="[0-6]*/**/*.md" ``` Present search results as a list of `[[wikilinks]]` with brief Chinese summaries of each match. ### Find related notes 1. Extract key concepts/tags from the current note 2. Search for those terms across `6 - Zettelkasten/` and other folders 3. Present results as `[[wikilinks]]` with Chinese explanation of each note's relevance ### Review Zettelkasten health 1. Find orphan notes (no incoming or outgoing links) 2. Find notes missing tags or sources 3. Suggest connections between notes on related topics ## Git Sync MANDATORY for every vault operation that modifies files: ### Before modifying files ```bash cd /Users/yiukai/Documents/git/knowledge-base && git pull --rebase origin main ``` ### After modifying files ```bash cd /Users/yiukai/Documents/git/knowledge-base && git add -A && git commit -m "vault: " && git push origin main ``` Commit message examples: - `vault: add daily note 2026-03-15` - `vault: create zettel on distributed consensus` - `vault: organize inbox notes to projects and resources` - `vault: update MOC for claude code` If pull has conflicts, stop and ask the user before proceeding. ## Dependencies This skill defines **what** to create and **where** to put it. For **how** to write Obsidian content, delegate to `obsidian-skills` plugin: - **Writing Markdown** → use `obsidian:obsidian-markdown` for wikilinks, embeds, callouts, properties syntax - **Creating .canvas files** → use `obsidian:json-canvas` - **Creating .base files** → use `obsidian:obsidian-bases` - **Interacting with running Obsidian** → use `obsidian:obsidian-cli` (read/create/search via CLI) - **Fetching web content into notes** → use `obsidian:defuddle` to extract clean markdown from URLs ## Rules - ALWAYS use Obsidian `[[wikilink]]` syntax for internal links (see `obsidian:obsidian-markdown`) - ALWAYS pull before and push after modifying vault files (see Git Sync above) - NEVER modify notes without user confirmation (except when creating new ones) - Zettelkasten notes must be atomic — one idea per note - Use simplified Chinese for all note content - Frontmatter `created` field uses ISO format: `YYYY-MM-DD` or `YYYY-MM-DD HH:mm` - Tags in frontmatter use lowercase English: `[concept, insight, question]`