chore: initial backup of Claude Code configuration
Includes: CLAUDE.md, settings.json, agents, commands, rules, skills, hooks, contexts, evals, get-shit-done, plugin configs (installed list and marketplace sources). Excludes credentials, runtime caches, telemetry, session data, and plugin binary cache.
This commit is contained in:
266
skills/knowledge-vault/SKILL.md
Normal file
266
skills/knowledge-vault/SKILL.md
Normal file
@@ -0,0 +1,266 @@
|
||||
---
|
||||
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: <brief description of changes>" && 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]`
|
||||
Reference in New Issue
Block a user