Install any skill in seconds. Free to start, no credit card required.
Get Started Free →个人内容收藏与知识管理系统。收藏、整理、检索、二创。 Use when: (1) 用户分享链接/文字/截图并要求保存或收藏, (2) 用户说"收藏这个"/"存一下"/"记录下来"/"save this"/"bookmark"/"clip this", (3) 用户要求按关键词/标签搜索之前收藏的内容, (4) 用户要求基于收藏内容生成小红书/社交媒体文案(二创/改写/洗稿), (5) 用户发送 URL 并要求提取/总结/摘要内容, (6) 用户提到"之前看过一个..."/"上次收藏的..."等回忆性检索, (7) 用户转发或粘贴了一段内容(文章片段/推文/视频链接)并暗示想留存。 即使用户没有明确说"收藏",只要涉及保存外部内容、整理知识、检索历史收藏、 或基于已收藏内容进行二次创作,都应使用此技能。 已支持来源:博客、X/Twitter、网页、B站视频。 内容类型:文字、长视频(B站可自动转录)、短视频。
.claude/skills/leoyeai-content-collector/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 187% | 0% |
收藏好内容 → 结构化整理 → 关键词检索 → 二次创作
<WORKSPACE>/collections/
collections/
├── articles/ # 文章、博客、长文
├── tweets/ # X/Twitter 推文、短内容
├── videos/ # 视频内容(转录+笔记)
├── wechat/ # 微信公众号文章
├── ideas/ # 零散想法、灵感
├── index.md # 全局索引(自动维护)
└── tags.md # 标签索引(自动维护)<YOUR_OBSIDIAN_VAULT>/收藏/
收藏/
├── 文章/ # ← collections/articles
├── 视频/ # ← collections/videos
├── 推文/ # ← collections/tweets
├── 公众号/ # ← collections/wechat
└── 想法/ # ← collections/ideas每次收藏时必须同时写入两个位置。 Obsidian 版本的差异:
YYYY-MM-DD-slug 格式tags 数组 + 正文第一行加 #tag1 #tag2 ... 格式(Obsidian 图谱和搜索用)aliases: [title],方便 Obsidian 双链搜索articles→文章、videos→视频、tweets→推文、wechat→公众号、ideas→想法Obsidian 写入模板(伪代码):
target_dir = <YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/
filename = sanitize(title).md # 去掉 <>:"/\|?* 等非法字符,截断80字符
content = 原始 frontmatter(加 aliases) + "\n\n" + "#tag1 #tag2 ..." + "\n\n" + body对于大部分 URL,优先使用 Supadata API 解析:
SUPADATA_API_KEY=<key> python3 scripts/supadata_fetch.py <command> <url>SUPADATA_API_KEY 存放在 TOOLS.md| 内容类型 | 命令 | 说明 | |---------|------|------| | 网页/博客 | web <url> | 返回 Markdown 正文,1 credit | | 视频转录 | transcript <url> --text [--lang zh] | YouTube/TikTok/X/Instagram/Facebook,1-2 credits | | 社交媒体元数据 | metadata <url> | 标题、作者、互动数据,1 credit |
Supadata 不可用时的降级方案:
web_fetchsupadata_fetch.py web <url> 抓取正文web_fetch 抓取正文collections/articles/YYYY-MM-DD-slug.md(含插图引用)collections/articles/YYYY-MM-DD-slug.html,防止源页面删除后内容丢失。普通收藏不保存快照(避免磁盘膨胀)<YOUR_OBSIDIAN_VAULT>/收藏/文章/{标题}.md(含插图复制)supadata_fetch.py metadata <url>supadata_fetch.py transcript <url> --text --lang zhcollections/videos/YYYY-MM-DD-slug.md<YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.mdimage 工具提取文字python3 scripts/bilibili_extract.py <bvid_or_url> → 标题、作者、时长、标签、数据指标references/bilibili-comments.mdbash scripts/bilibili_transcribe.sh <bvid_or_url> [model]/tmp/bilibili_audio/<BVID>_transcript.json + .txtwhisper CLI(pip3 install openai-whisper)collections/videos/YYYY-MM-DD-slug.md<YOUR_OBSIDIAN_VAULT>/收藏/视频/{标题}.md收藏文章时默认提取有价值的插图,作为后续写作素材。
evaluate 提取页面 <img> 列表(src + alt + caption)curl -sL 保存到:collections/{category}/images/{slug}/01-描述.png## 插图 章节,每张图包含:<YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/images/{slug}/{序号}-{简短英文描述}.png(如 01-architecture-overview.png)evals-for-agents)每次收藏内容后,自动将内容与当前活跃项目关联:
<WORKSPACE>/memory/topics/projects.md 获取活跃项目列表yaml related_projects: ["wemp-ops", "xiaohongshu-ops"] project_notes: "这个案例可以用于公众号选题:AI调度人力的真实案例"
index.md 中标注关联项目,方便按项目筛选素材搜索关联 wemp-ops 的收藏 → 快速找到素材搜索关联 xiaohongshu-ops 的收藏 → 找到适合拆解的内容文件命名:YYYY-MM-DD-slug.md
yaml--- title: "标题" source: "来源平台" url: "原始链接" author: "作者" date_published: "发布日期" date_collected: "收藏日期" tags: [tag1, tag2, tag3] category: "articles|tweets|videos|wechat|ideas" language: "zh|en" summary: "一句话摘要" # 视频专属(可选) duration: "时长" platform: "bilibili|youtube" bvid: "BV号" stats: { views: 0, likes: 0, comments: 0 } ---
当 language: en 时,收藏过程中的翻译遵循以下规则:
翻译风格(默认 storytelling,不需要每次询问):
| 风格 | 效果 | 适用 | |------|------|------| | storytelling | 叙事流畅,过渡自然(默认) | 博客、观点文、技术分享 | | technical | 精准简洁,术语密集 | API 文档、技术规范 | | conversational | 口语化,像朋友聊天 | Twitter thread、播客转录、访谈 | | formal | 正式结构化 | 学术论文、白皮书 |
触发条件:老板说"精翻"→ 用更仔细的翻译;说"学术风格"→ formal;默认不问直接用 storytelling。
术语表:翻译时参照 <WORKSPACE>/references/glossary-ai-zh.md 统一术语。首次出现的术语用 中文(English) 格式。
欧化检查:翻译后扫一遍欧化中文问题(多余连接词/被动语态/名词堆砌),参照 wemp-ops/references/style-guide.md 的"欧化中文自检"。
触发条件:正文 > 1000 字的 articles / wechat / videos(短推文、零散想法不画)。
输出格式:Mermaid 代码块,直接嵌入收藏文件的 ## 内容概览 章节。Obsidian 原生渲染,不需要额外插件。
图表类型自动选择(按文章内容匹配):
| 文章特征 | 图表类型 | Mermaid 语法 | 示例 | |---------|---------|-------------|------| | 方法论/框架/模型(分层、组件) | 思维导图 | mindmap | "AI PM 的 3 个核心能力" | | 流程/步骤/演进(先后顺序) | 流程图 | graph TB | "AI 编程三次进化" | | 对比/选择(A vs B) | 对比图 | graph TB + 并行 subgraph | "传统 PM vs AI PM" | | 多实体互动/依赖关系 | 关系图 | graph LR | "Agent 各模块数据流" | | 时间线/里程碑 | 时间线 | graph LR 线性 | "2024 AI 大事记" | | 混合/不确定 | 思维导图 | mindmap(万能兜底) | — |
生成要求:
references/mermaid-syntax-rules.md,特别注意:1. 触发列表解析错误 → 用 ① 或 (1) 或去掉空格subgraph id["显示名"] 格式fill:#d3f9d8,stroke:#2f9e44(绿)fill:#ffe3e3,stroke:#c92a2a(红)fill:#e5dbff,stroke:#5f3dc4(紫)fill:#c5f6fa,stroke:#0c8599(青)嵌入格式示例:
markdown## 内容概览 \`\`\`mermaid mindmap root((AI PM 核心能力)) 问题定义 从模糊需求到精确问题 判断什么值得做 上下文质量 Context Engineering 给 Agent 正确的信息 判断力 评估 Agent 产出 知道何时人工介入 \`\`\`
不做什么:
每次写入 collections/ 后,必须同时写入 Obsidian 版本。步骤:
title, source, url, author, date_published, date_collected, category, language, summary, duration, platform, bvid, tagsaliases: [title]#tag1 #tag2 ...(标签中的空格替换为 _)sanitize(title).md(去掉 <>:"/\|?*,截断 80 字符)<YOUR_OBSIDIAN_VAULT>/收藏/{中文目录}/目录映射: | collections 目录 | Obsidian 目录 | |---|---| | articles/ | 文章/ | | videos/ | 视频/ | | tweets/ | 推文/ | | wechat/ | 公众号/ | | ideas/ | 想法/ |
注意:Obsidian 版本是 collections 的只读镜像。编辑应在 collections 原文件上进行,然后重新同步。
每次收藏后更新:
tags.md 中查找grep -ril "keyword" collections/references/xiaohongshu-style.md 写作风格xiaohongshu-ops 技能收藏库是 wemp-ops 公众号写作的素材来源之一。wemp-ops 选题时会自动检索收藏库:
tags.md 按关键词查找相关收藏grep -ril 搜索 collections/ 目录收藏时的写作友好建议:
summary 写清楚,便于快速判断是否相关tags 覆盖主题关键词,提高检索命中率| 来源 | 目录 | 备注 | |------|------|------| | 博客/网页 | articles/ | 默认归类 | | X/Twitter | tweets/ | 短内容/thread | | 微信公众号 | wechat/ | 中文长文 | | B站/YouTube/抖音 | videos/ | B站可自动转录 | | 零散想法 | ideas/ | 非外部来源 |
AI、产品设计、电商、运营、技术、商业、创业、效率工具、思维模型、管理收藏完成后,检查内容是否与选题池中的选题相关:
<WORKSPACE>/collections/topics/topic-pool.md(公众号)和 <WORKSPACE>/collections/topics/xhs-topic-pool.md(小红书)<WORKSPACE>/temp/handoffs/collector-to-writing.md:markdown ### <收藏标题>
注意:此步骤是补充性的,不替代已有的"关联项目"功能。交接文件面向下游写作 skill,关联项目面向收藏库内部检索。
| 用户说 | 动作 | |--------|------| | "收藏这个 URL/文字]" | 抓取→整理→存储→更新索引 | | "搜索 关键词]" | 搜索收藏库 | | "最近收藏了什么" | 读 index.md | | "关于 标签] 的收藏" | 从 tags.md 筛选 | | "用 选题] 写篇小红书" | 二创生成 | | "给这篇加个笔记" | 更新"我的笔记"部分 | | "删除这条收藏" | 移除并更新索引 + 删除 Obsidian 对应文件 | | "重新同步到 Obsidian" | 全量重新同步:python3 scripts/sync_to_obsidian.py(skill 目录下) |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 21,007 | 7,704 | -63% | 1 | 1 | 0% | 2,859 | 5,221 | +83% | 0 | 0 | — |
case-02 | fail→fail | 13,216 | 7,908 | -40% | 1 | 1 | 0% | 2,260 | 5,090 | +125% | 0 | 0 | — |
case-03 | fail→fail | 15,607 | 5,377 | -66% | 1 | 1 | 0% | 2,377 | 5,016 | +111% | 0 | 0 | — |
case-19 | fail→pass | 14,671 | 4,533 | -69% | 1 | 1 | 0% | 2,021 | 5,339 | +164% | 0 | 0 | — |
case-20 | fail→fail | 10,991 | 2,857 | -74% | 1 | 1 | 0% | 1,562 | 5,131 | +228% | 0 | 0 | — |
case-04 | pass→pass | 14,927 | 4,989 | -67% | 1 | 1 | 0% | 2,628 | 5,652 | +115% | 0 | 0 | — |
case-05 | pass→pass | 10,077 | 4,998 | -50% | 1 | 1 | 0% | 1,910 | 5,547 | +190% | 0 | 0 | — |
case-06 | pass→pass | 9,809 | 3,323 | -66% | 1 | 1 | 0% | 1,728 | 5,353 | +210% | 0 | 0 | — |
case-07 | fail→pass | 17,219 | 4,905 | -72% | 1 | 1 | 0% | 2,922 | 5,482 | +88% | 0 | 0 | — |
case-08 | fail→pass | 17,122 | 9,554 | -44% | 1 | 1 | 0% | 2,931 | 6,423 | +119% | 0 | 0 | — |
case-09 | fail→pass | 15,001 | 5,221 | -65% | 1 | 1 | 0% | 2,618 | 5,742 | +119% | 0 | 0 | — |
case-10 | pass→pass | 17,454 | 12,605 | -28% | 1 | 1 | 0% | 2,703 | 6,797 | +151% | 0 | 0 | — |
case-11 | fail→pass | 11,524 | 4,352 | -62% | 1 | 1 | 0% | 1,882 | 5,406 | +187% | 0 | 0 | — |
case-12 | fail→pass | 9,995 | 2,592 | -74% | 1 | 1 | 0% | 1,671 | 5,094 | +205% | 0 | 0 | — |
case-13 | fail→pass | 10,754 | 3,074 | -71% | 1 | 1 | 0% | 1,634 | 5,108 | +213% | 0 | 0 | — |
case-14 | pass→pass | 10,138 | 3,533 | -65% | 1 | 1 | 0% | 1,545 | 5,140 | +233% | 0 | 0 | — |
case-15 | fail→pass | 11,734 | 4,548 | -61% | 1 | 1 | 0% | 1,957 | 5,293 | +170% | 0 | 0 | — |
case-16 | fail→fail | 10,457 | 5,067 | -52% | 1 | 1 | 0% | 1,596 | 5,112 | +220% | 0 | 0 | — |
case-17 | fail→pass | 12,426 | 8,918 | -28% | 1 | 1 | 0% | 2,030 | 6,126 | +202% | 0 | 0 | — |
case-18 | fail→pass | 11,125 | 2,420 | -78% | 1 | 1 | 0% | 1,675 | 5,091 | +204% | 0 | 0 | — |
case-21 | pass→fail | 10,276 | 12,984 | +26% | 1 | 1 | 0% | 1,846 | 6,406 | +247% | 0 | 0 | — |
case-22 | fail→fail | 16,908 | 19,554 | +16% | 1 | 1 | 0% | 3,004 | 8,434 | +181% | 0 | 0 | — |
case-23 | pass→pass | 12,172 | 7,810 | -36% | 1 | 1 | 0% | 2,210 | 6,107 | +176% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +39 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.