knowledge-organizer

Use when importing articles, organizing notes, or syncing a knowledge base across Obsidian, Feishu, and Tencent IMA with OpenClaw or Codex.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "knowledge-organizer" with this command: npx skills add cjke84/knowledge-organizer

Knowledge Organizer

This skill turns article links, drafts, and notes into structured Markdown with duplicate checks, tags, summaries, related-note suggestions, image downloads, and optional sync targets for Obsidian, Feishu, and Tencent IMA.

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.images is present, download images into assets/ and keep relative references in the note body; common fields like src, data_src, data-original, data-lazy-src, srcset, url, image_url, and original are 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
  • Sync to Feishu through the official OpenClaw openclaw-lark plugin
  • Sync to Tencent IMA through the direct import_doc OpenAPI flow
  • Orchestrate destination=obsidian|feishu|ima with mode=once|sync

Usage

  • For Obsidian, set destination=obsidian, provide vault_root, and let the runtime write directly to local markdown files.
  • For Feishu, set destination=feishu and make sure the OpenClaw openclaw-lark plugin is available for feishu_create_doc and feishu_update_doc.
  • For Feishu placement, set one of FEISHU_WIKI_NODE, FEISHU_WIKI_SPACE / FEISHU_KB_ID, or FEISHU_FOLDER_TOKEN / FEISHU_FOLDER_ID when your OpenClaw host needs an explicit target location.
  • The bare python3 -m scripts.knowledge_sync CLI cannot inject an OpenClaw transport on its own; use it for validation or dry-run, and run real Feishu imports through an OpenClaw host/plugin transport.
  • FEISHU_IMPORT_ENDPOINT is only for explicit custom transport setups; do not set it unless you intentionally want to override the default OpenClaw plugin path.
  • For Tencent IMA, set destination=ima and configure IMA_OPENAPI_CLIENTID and IMA_OPENAPI_APIKEY before syncing.
  • Use mode=once for a single import run, or mode=sync to skip items whose content hash has not changed.
  • The shared sync orchestrator lives in scripts/knowledge_sync.py, and can be used with --markdown-path, --folder-path, or --link.

Usage Examples

  • Obsidian: python3 -m scripts.knowledge_sync --destination obsidian --mode once --state .sync-state.json --vault-root /path/to/vault --markdown-path draft.md
  • Feishu validation / dry-run: python3 -m scripts.knowledge_sync --destination feishu --mode once --state .sync-state.json --markdown-path draft.md --dry-run
  • Feishu real import: run the same draft through an OpenClaw host that exposes openclaw-lark / feishu_create_doc / feishu_update_doc
  • Tencent IMA: python3 -m scripts.knowledge_sync --destination ima --mode sync --state .sync-state.json --folder-path drafts/
  • Disable one or more destinations: add --disable obsidian,feishu to skip the selected targets when invoking the sync orchestrator.

Workflow

  1. Get content: use a browser for public-account links, prefer xiaohongshu-mcp for Xiaohongshu links, use web_fetch for other web pages, and process user-provided content directly
  2. Normalize the source: use scripts/import_sources.py, scripts/import_normalizer.py, and scripts/import_models.py to build a shared ImportDraft
  3. Check duplicates before final write: prefer URL + title + similarity checks, and treat duplicate hits as normal control flow
  4. Choose a destination: scripts/knowledge_sync.py dispatches to obsidian, feishu, or ima
  5. Render or import: scripts/obsidian_note.py generates the content and destination path, while scripts/feishu_kb.py and scripts/ima_kb.py build the sync payloads
  6. Write or sync: runtime writes directly to destination_path for Obsidian, or stores SyncStateRecord for Feishu/IMA

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.py to confirm Python and knowledge-base paths are available
  • For Feishu import, prefer the official OpenClaw openclaw-lark plugin (feishu_create_doc / feishu_update_doc) and use Lark Markdown with <image url="..."/> / <file url="..." name="..."/>
  • For IMA import, use the direct OpenAPI import_doc flow with IMA_OPENAPI_CLIENTID and IMA_OPENAPI_APIKEY

Contract

  • Input: structured draft, title aliases, source metadata, summary, bullets, excerpts, images, related notes, and vault root
  • Output: RenderedNote(content, destination_path) for Obsidian, or a SyncStateRecord-backed import result for Feishu/IMA
  • Frontmatter must include title, aliases, tags, source_type, source_url, published, created, updated, importance, status, and canonical_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_ROOT when available
  • This contract covers frontmatter / wikilink / embed / block id rules
  • Feishu payloads use title + markdown + placement fields (folder_token / wiki_node / wiki_space)
  • IMA payloads use content_format=1, content, and optional folder_id

WeChat Notes

  • WeChat article links (mp.weixin.qq.com) are a special case: default to browser, not web_fetch
  • Prefer the container order documented in references/wechat-import.md when extracting正文
  • For image extraction, prefer data-src, then src, then data-original / data_src / original
  • Preserve or add from=appmsg on WeChat image URLs when needed
  • Normalize image fields before conversion when possible (treat resolved data-src as the final src)
  • Strip common tail noise (scan prompts, 授权提示, 阅读原文引导) before final render
  • browser act with evaluation must include fn; missing fn is a caller error, not a reason to improvise blindly

Xiaohongshu Notes

  • Xiaohongshu links are a special case: default to xiaohongshu-mcp, not generic web_fetch
  • Prefer checking MCP status first when the workflow depends on local login/session
  • Prefer detail for complete note content; use searchdetail only 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

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 工作流

OpenClaw 2026.3.22 Notes

  • Install this repository as a directory skill so OpenClaw can discover SKILL.md, scripts/, references/, and tests/ together
  • Prefer openclaw skills install / openclaw skills update for native skill management, or install through ClawHub / bundle flows when packaging this repository for distribution
  • Keep the skill name as knowledge-organizer so bundle-to-skill mapping stays stable across OpenClaw and Codex environments
  • Obsidian flows need a valid absolute vault root; prefer OPENCLAW_KB_ROOT when it is available
  • Feishu sync depends on the official openclaw-lark plugin being installed and configured, with feishu_create_doc / feishu_update_doc available in the OpenClaw host
  • Feishu placement envs such as FEISHU_WIKI_SPACE, FEISHU_FOLDER_TOKEN, FEISHU_WIKI_NODE, FEISHU_KB_ID, and FEISHU_FOLDER_ID are optional routing hints, not always-required secrets
  • Feishu sync from CLI examples requires an OpenClaw host/plugin transport; the bare Python entrypoint only validates the flow and reports missing transport clearly
  • Xiaohongshu imports depend on xiaohongshu-mcp being available before the workflow reaches structured note extraction
  • Tencent IMA sync depends on IMA_OPENAPI_CLIENTID and IMA_OPENAPI_APIKEY
  • This skill does not depend on legacy Chrome relay settings, deprecated CLAWDBOT_* / MOLTBOT_* env names, or removed OpenClaw plugin SDK shims

Project Links

Output Template

✅ Stored in knowledge base

📁 Location: knowledge-base/xxx.md
🏷️ Tags: tag1, tag2, tag3
📋 Summary: one-sentence summary
⭐ Importance: core
🔗 Related notes: xxx, yyy

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

run.dev — Local Dev Environment Manager

Local dev environment manager. Process management, automatic HTTPS domains, SSL certificates, reverse proxy, and AI crash diagnosis — single binary, zero con...

Registry SourceRecently Updated
Coding

ifly-image-understanding

iFlytek Image Understanding (图片理解) — analyze and answer questions about images using Spark Vision model. WebSocket API, pure Python stdlib, no pip dependencies.

Registry SourceRecently Updated
Coding

Civic Google

Use gog (Google CLI) without manual OAuth setup — Civic handles token management automatically

Registry SourceRecently Updated
2000Profile unavailable
Coding

Agent Browser.Skip

A fast Rust-based headless browser automation CLI with Node.js fallback that enables AI agents to navigate, click, type, and snapshot pages via structured co...

Registry SourceRecently Updated
2000Profile unavailable