obsidian-knowledge-organizer
by cjke84
An OpenClaw- and Codex-compatible Obsidian knowledge organization skill for importing articles, organizing notes, applying tags, archiving content, generating summaries, and suggesting related notes.
安装
claude skill add --url github.com/openclaw/skills/tree/main/skills/cjke84/obsidian-knowledge-organizer文档
Knowledge Organizer
This skill turns article links, drafts, and notes into structured Obsidian-ready Markdown with duplicate checks, tags, summaries, related-note suggestions, and image downloads.
Use Cases
- Store content in a knowledge base
- Organize articles
- Apply tags
- Archive notes
- Generate summaries
- Suggest related notes
Capabilities
- Generate Obsidian-ready notes with YAML frontmatter, wikilinks, embeds, and block IDs
- If
draft.imagesis present, download images intoassets/and keep relative references in the note body; common fields likesrc,data_src,data-original,data-lazy-src,srcset,url,image_url, andoriginalare supported - Run duplicate detection before writing, covering URL, hash, alias, and similarity checks
- Treat duplicate hits as normal control flow; the CLI returns a structured decision result
- Recommend directly linkable related notes
- Validate tags against the knowledge-base tag contract
Workflow
- Get content: use a browser for public-account links, prefer
xiaohongshu-mcpfor Xiaohongshu links, useweb_fetchfor other web pages, and process user-provided content directly - Check duplicates before final write: prefer URL + title + similarity checks, and treat duplicate hits as normal control flow
- Render the note:
scripts/obsidian_note.pygenerates the content and destination path - Write to the vault: runtime writes directly to
destination_pathwithout a second Markdown pass
For WeChat public-account imports, read references/wechat-import.md before doing browser extraction, image handling, or final write.
Execution Rules
- After reading this skill, follow its workflow before improvising your own path
- Do not skip duplicate checks on import tasks
- If a browser/evaluate call fails twice because of parameter misuse, stop blind retries and re-read the workflow / reference
- Prefer reusing bundled scripts over hand-writing a parallel pipeline when the scripts already cover the task
- For article imports, separate the pipeline into: fetch/normalize → duplicate-check → render → write, instead of mixing all steps together
- Before running script-based import flows, prefer checking
scripts/check_runtime.pyto confirm Python and knowledge-base paths are available
Contract
- Input: structured draft, title aliases, source metadata, summary, bullets, excerpts, images, related notes, and vault root
- Output:
RenderedNote(content, destination_path) - Frontmatter must include
title,aliases,tags,source_type,source_url,published,created,updated,importance,status, andcanonical_hash - Before writing tags, require at least 1 domain tag and 1 type tag, with a total of 5-10 tags
- Vault root must be a non-empty absolute path
- Vault root should come from
OPENCLAW_KB_ROOTwhen available - This contract covers frontmatter / wikilink / embed / block id rules
WeChat Notes
- WeChat article links (
mp.weixin.qq.com) are a special case: default tobrowser, notweb_fetch - Prefer the container order documented in
references/wechat-import.mdwhen extracting正文 - For image extraction, prefer
data-src, thensrc, thendata-original/data_src/original - Preserve or add
from=appmsgon WeChat image URLs when needed - Normalize image fields before conversion when possible (treat resolved
data-srcas the finalsrc) - Strip common tail noise (scan prompts, 授权提示, 阅读原文引导) before final render
browser actwith evaluation must includefn; missingfnis a caller error, not a reason to improvise blindly
Xiaohongshu Notes
- Xiaohongshu links are a special case: default to
xiaohongshu-mcp, not genericweb_fetch - Prefer checking MCP status first when the workflow depends on local login/session
- Prefer
detailfor complete note content; usesearch→detailonly when direct note identifiers are missing - Treat Xiaohongshu as a structured content source, not just a webpage snapshot
- Preserve source metadata such as author, publish time, tags, images, and engagement when available
draft.images Example
yaml
images:
- path: /absolute/path/to/local.png
alt: Local image
- src: https://example.com/cover.png
alt: Remote image
- srcset: https://example.com/cover-1x.png 1x, https://example.com/cover-2x.png 2x
alt: Responsive image
path is for local files. src / data_src / data-original / data-lazy-src / original etc. are used for remote images; srcset prefers the highest-value candidate.
Compatibility
- OpenClaw 兼容
- Codex 兼容
- Obsidian vault 工作流
Project Links
- GitHub repository: https://github.com/cjke84/obsidian-knowledge-organizer
Output Template
text
✅ Stored in knowledge base
📁 Location: knowledge-base/xxx.md
🏷️ Tags: tag1, tag2, tag3
📋 Summary: one-sentence summary
⭐ Importance: core
🔗 Related notes: xxx, yyy