{
  "version": "zon-report@v1",
  "meta": {
    "id": "report-20260216-225506.zon",
    "title": "从社媒爆款到可复用 Agent Skills：提取与建库方案",
    "subtitle": "基于小红书/公众号线索的采集、OCR/转写、结构化与去重流程（含可执行落地路径）",
    "abstract": "提取社媒 Agent Skills 并建库：采集/OCR/结构化流程",
    "label": "Report",
    "layout": "memo",
    "theme": "light",
    "date": "2026-02-16 22:55",
    "audience": "Zon",
    "scope": "Issue → AI → Report",
    "tags": [
      "agent-skills",
      "OPC",
      "OpenClaw",
      "skillssh",
      "Remotion",
      "小红书"
    ],
    "generated_at": "2026-02-16 22:55",
    "links": {
      "issue": "https://github.com/EOMZON/myObsidian/issues/27",
      "comment": "https://github.com/EOMZON/myObsidian/issues/27#issuecomment-3908922556"
    }
  },
  "blocks": [
    {
      "id": "tldr",
      "nav": "TL;DR",
      "type": "html",
      "data": {
        "html": "<h2>TL;DR</h2>\n  <div class=\"card\">\n<ul>\n<li>本文将“Skill”定义为：可被 AI Agent 调用/安装的工具或工作流模块（含脚本、插件、prompt 模板）；若你指的是“职场/学习技能”，见 Options 的分支方案。</li>\n<li>仅从你在 issue 里写下的文字可直接抽取到的关键词线索（均需打开链接核验）：skills.sh（Top10 Agent Skills）、OPC/“Agent Skill for …”（安装量 5.3k 的说法）、Remotion（视频生成/渲染）、“一句话下载小红书视频”、82 个 research skills 开源、Vercel 24 小时 Skills 热度榜、前端设计 Skills、4 个方法提升 Vibe Coding UI 质量、简历改写 prompt、开源 Skill 增长复盘（3 个月做到 700 安装）。</li>\n<li>小红书/公众号内容往往藏在图片或视频里，建议采用“素材备份（文/图/视频）→ OCR/转写 → LLM 字段抽取 → 去重归档 → 运行验证/评分”的流水线，才能得到完整、可复用的 Skill 清单。</li>\n<li>若最终要“做成可安装 Skill”，应先选定统一接口（例如 MCP 或 LangChain Tool），并为每个 Skill 补齐 I/O、依赖、权限边界与最小可运行示例。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "key-insights",
      "nav": "Key Insights",
      "type": "html",
      "data": {
        "html": "<h2>Key Insights</h2>\n  <div class=\"card\">\n<ul>\n<li>数据获取比信息抽取更难：短链跳转、登录/反爬、以及视频/图片载体，会让纯爬虫方案不稳定；把“人工导出/备份”纳入流程更可靠。</li>\n<li>结构化字段要对齐“可复用”目标：除了名称/描述，还要记录 runner（Node/Python/Docker）、输入输出 schema、所需权限（网络/文件/账号）、以及复现步骤；否则技能只能“收藏”不能“复用”。</li>\n<li>“热度/安装量/节省时间”适合做排序，但必须记录来源与核验时间；社媒二次传播常会截断上下文或夸大指标。</li>\n<li>推荐双产物：面向人阅读的 Obsidian 卡片（搜索/回顾），以及面向机器的 skills.json（自动测试、排行榜、推荐与去重）。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "playbook",
      "nav": "Playbook",
      "type": "html",
      "data": {
        "html": "<h2>Playbook</h2>\n  <div class=\"card\">\n<ul>\n<li>建模：先定一个最小 Skill Schema（name、one_liner、category、source_url、evidence、assets、runner、deps、io_schema、license、risk、install_metric、last_verified_at），并用 JSON Schema 做校验与版本管理。</li>\n<li>采集：对每条链接做“可访问性分层”——可直接访问则用 Playwright 备份 HTML+截图；需要登录则走手机端复制文案、保存图片、下载视频入库；公众号优先保存原文 HTML/PDF 以便可追溯。</li>\n<li>解析：图片/截图用 PaddleOCR（中文）抽取文字；视频用 ffmpeg 抽帧做 OCR、并用 Whisper/whisper.cpp 转写口播；再用 LLM 把非结构化内容映射到 Skill Schema（尤其是 name、步骤、输入输出与依赖）。</li>\n<li>归档与去重：用 embedding 相似度（FAISS/Milvus）做重复检测与聚类；对“同名不同实现”保留多版本；最后生成 Obsidian 笔记（YAML frontmatter）+ skills.json，确保原始素材与抽取结果可重跑。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "diagrams",
      "nav": "Diagrams",
      "type": "html",
      "data": {
        "html": "<h2>Diagrams</h2>\n  <div class=\"grid cols-2\">\n  <figure class=\"figure\">\n    <svg viewBox=\"0 0 920 240\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Options compass\">\n  <rect x=\"64\" y=\"54\" width=\"792\" height=\"152\" rx=\"14\" fill=\"rgba(245,245,245,0.6)\" stroke=\"var(--gray-200)\" />\n  <path d=\"M 64 130 H 856\" stroke=\"var(--gray-200)\" stroke-width=\"1.2\" />\n  <path d=\"M 460 54 V 206\" stroke=\"var(--gray-200)\" stroke-width=\"1.2\" />\n  <text x=\"64\" y=\"34\" font-size=\"12\" fill=\"var(--gray-600)\">Decision Map</text>\n  <text x=\"64\" y=\"232\" font-size=\"12\" fill=\"var(--gray-600)\">↑ Control / Consistency</text>\n  <text x=\"854\" y=\"232\" text-anchor=\"end\" font-size=\"12\" fill=\"var(--gray-600)\">Speed / Convenience →</text>\n<g>\n  <circle cx=\"262.0\" cy=\"87.4\" r=\"6\" fill=\"var(--black)\" />\n  <text x=\"274.0\" y=\"77.4\" font-size=\"12\" fill=\"var(--black)\">1 方案 A（最快）：只提取“技能…</text>\n</g>\n<g>\n  <circle cx=\"262.0\" cy=\"81.4\" r=\"6\" fill=\"var(--black)\" />\n  <text x=\"274.0\" y=\"71.4\" font-size=\"12\" fill=\"var(--black)\">2 方案 B（复用价值最高）：把高…</text>\n</g>\n<g>\n  <circle cx=\"713.4\" cy=\"163.4\" r=\"6\" fill=\"var(--black)\" />\n  <text x=\"725.4\" y=\"153.4\" font-size=\"12\" fill=\"var(--black)\">3 方案 C（另一种“Skill”…</text>\n</g>\n<g>\n  <circle cx=\"697.6\" cy=\"163.4\" r=\"6\" fill=\"var(--black)\" />\n  <text x=\"709.6\" y=\"153.4\" font-size=\"12\" fill=\"var(--black)\">4 方案 D（术语澄清）：若“OP…</text>\n</g>\n</svg>\n    <figcaption>Options · 速度 vs 可控性 的决策图（基于 Options 文本自动定位）</figcaption>\n  </figure>\n  <figure class=\"figure\">\n    <svg viewBox=\"0 0 920 240\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Playbook timeline\">\n  <text x=\"44\" y=\"34\" font-size=\"12\" fill=\"var(--gray-600)\">Execution Steps</text>\n\n<g transform=\"translate(44 58)\">\n  <rect width=\"208\" height=\"46\" rx=\"14\" fill=\"rgba(250,250,250,0.75)\" stroke=\"var(--gray-200)\" />\n  <text x=\"14\" y=\"29\" font-size=\"12\" fill=\"var(--gray-600)\">1</text>\n  <text x=\"44\" y=\"29\" font-size=\"14\" fill=\"var(--black)\">建模</text>\n</g>\n<path d=\"M 148 81 L 372 81\" class=\"stroke-soft dash\" />\n<g transform=\"translate(268 58)\">\n  <rect width=\"208\" height=\"46\" rx=\"14\" fill=\"rgba(250,250,250,0.75)\" stroke=\"var(--gray-200)\" />\n  <text x=\"14\" y=\"29\" font-size=\"12\" fill=\"var(--gray-600)\">2</text>\n  <text x=\"44\" y=\"29\" font-size=\"14\" fill=\"var(--black)\">采集</text>\n</g>\n<path d=\"M 372 81 L 596 81\" class=\"stroke-soft dash\" />\n<g transform=\"translate(492 58)\">\n  <rect width=\"208\" height=\"46\" rx=\"14\" fill=\"rgba(250,250,250,0.75)\" stroke=\"var(--gray-200)\" />\n  <text x=\"14\" y=\"29\" font-size=\"12\" fill=\"var(--gray-600)\">3</text>\n  <text x=\"44\" y=\"29\" font-size=\"14\" fill=\"var(--black)\">解析</text>\n</g>\n<path d=\"M 596 81 L 820 81\" class=\"stroke-soft dash\" />\n<g transform=\"translate(716 58)\">\n  <rect width=\"208\" height=\"46\" rx=\"14\" fill=\"rgba(250,250,250,0.75)\" stroke=\"var(--gray-200)\" />\n  <text x=\"14\" y=\"29\" font-size=\"12\" fill=\"var(--gray-600)\">4</text>\n  <text x=\"44\" y=\"29\" font-size=\"14\" fill=\"var(--black)\">归档与去重</text>\n</g>\n</svg>\n    <figcaption>Playbook · 执行步骤时间线（基于 Playbook 文本自动提取）</figcaption>\n  </figure>\n</div>"
      }
    },
    {
      "id": "options",
      "nav": "Options",
      "type": "html",
      "data": {
        "html": "<h2>Options</h2>\n  <div class=\"card\">\n<ul>\n<li>方案 A（最快）：只提取“技能卡片清单”（名称/一句话/来源/关键词/风险），不保证可运行；适合先把这批社媒灵感变成可检索的知识库。</li>\n<li>方案 B（复用价值最高）：把高频 Skill 落到统一协议（MCP 或 LangChain Tool 等）并可本地/CI 跑通；每个 Skill 配 Dockerfile、测试用例、权限声明与失败回退策略。</li>\n<li>方案 C（另一种“Skill”定义）：若你要的是“个人成长/职场方法论”，则提取为模板与检查表（UI 评审清单、简历改写 prompt、PM 框架卡片），重点是可复用的表单化字段而非代码运行。</li>\n<li>方案 D（术语澄清）：若“OPC”并非某个 Skills 平台/生态，而是其他缩写或项目名，先人工打开该笔记确认全称、GitHub/官网与许可证，再决定是否作为主线生态接入。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "expert-views",
      "nav": "Expert Views",
      "type": "html",
      "data": {
        "html": "<h2>Expert Views</h2>\n  <div class=\"card\">\n<ul>\n<li>开源维护者（paraphrase）：更看重“可复现的最小示例 + 一键安装 + 清晰 README”，否则安装量难增长；建议每个 Skill 都配 demo、版本号与变更记录。</li>\n<li>数据工程师（paraphrase）：主张先把采集链路做稳（缓存、可追溯、可重跑），并把原始素材与抽取结果分层存储；否则后续修正规则或模型会很痛苦。</li>\n<li>产品经理（paraphrase）：建议围绕“用户任务”而不是“技术实现”来命名/分类 Skill，并用（频次×价值×成本）排序；热门榜单可以作为线索，但不应替代用户验证。</li>\n<li>数据隐私/合规律师（paraphrase）：提醒注意平台条款、账号/Cookie 使用、以及下载/分发内容的版权边界；对“视频下载/搬运类 Skill”应做风险标注与默认禁用分享。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "evidence",
      "nav": "Evidence",
      "type": "html",
      "data": {
        "html": "<h2>Evidence &amp; Confidence</h2>\n  <div class=\"card\">\n<ul>\n<li>输入中确实包含大量与“Agent Skills/Skills”相关的标题与链接（high）：来自同一 issue 的正文与多条评论记录。</li>\n<li>Remotion 适合作为“视频生成类 Skill”的实现栈（high）：Remotion 是公开的开源视频渲染方案；但你提到的具体用法与上下文（medium）需要打开原链接核验。</li>\n<li>“小红书内容需要 OCR/视频转写才能完整提取”的流程判断（medium）：基于平台常见内容形态与经验推断；未对你给的短链逐一打开验证（无法在线核验）。</li>\n<li>“OPC 项目安装量 5.3k”“三个月做到 700 安装”等数值（low）：目前仅见于社媒摘要文本，缺少可追溯的原始数据源（无法在线核验）。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "next-steps",
      "nav": "Next Steps",
      "type": "html",
      "data": {
        "html": "<h2>Next Steps</h2>\n  <div class=\"card\">\n<ul>\n<li>明确目标与边界：你想要的是“把这些 Skill 做成可运行模块”，还是“把社媒提到的 Skill 名称/方法提取成清单”；并确认目标运行框架/协议（OpenClaw/自研、MCP、LangChain、OpenAI tools 等）。</li>\n<li>整理素材与可访问性：将 issue 中所有 xhslink、mp.weixin 链接汇总成 sources.csv（url、日期、备注、是否可访问、是否含视频/图片），并对可访问页面做首次备份（HTML+截图）。</li>\n<li>端到端试跑 3 条样本：各选一条“视频生成（Remotion）/视频下载/Research skills”，按 Playbook 走完备份→OCR/转写→LLM 抽取→输出 skills.json + Obsidian 卡片，检验 schema 是否够用。</li>\n<li>建立复核机制：给每条 Skill 加“核验状态（未核验/已核验/已跑通）”与“风险标签（版权/登录/付费/敏感）”，每周固定复核与补齐最小可运行示例。</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "details",
      "nav": "Details",
      "type": "html",
      "data": {
        "html": "<h2>Details (Optional)</h2>\n  <details>\n  <summary>Details</summary>\n  <div class=\"details-body\">\n<h2>TL;DR</h2>\n<ul>\n<li>本文将“Skill”定义为：可被 AI Agent 调用/安装的工具或工作流模块（含脚本、插件、prompt 模板）；若你指的是“职场/学习技能”，见 Options 的分支方案。</li>\n<li>仅从你在 issue 里写下的文字可直接抽取到的关键词线索（均需打开链接核验）：skills.sh（Top10 Agent Skills）、OPC/“Agent Skill for …”（安装量 5.3k 的说法）、Remotion（视频生成/渲染）、“一句话下载小红书视频”、82 个 research skills 开源、Vercel 24 小时 Skills 热度榜、前端设计 Skills、4 个方法提升 Vibe Coding UI 质量、简历改写 prompt、开源 Skill 增长复盘（3 个月做到 700 安装）。</li>\n<li>小红书/公众号内容往往藏在图片或视频里，建议采用“素材备份（文/图/视频）→ OCR/转写 → LLM 字段抽取 → 去重归档 → 运行验证/评分”的流水线，才能得到完整、可复用的 Skill 清单。</li>\n<li>若最终要“做成可安装 Skill”，应先选定统一接口（例如 MCP 或 LangChain Tool），并为每个 Skill 补齐 I/O、依赖、权限边界与最小可运行示例。</li>\n</ul>\n<h2>Key Insights</h2>\n<ul>\n<li>数据获取比信息抽取更难：短链跳转、登录/反爬、以及视频/图片载体，会让纯爬虫方案不稳定；把“人工导出/备份”纳入流程更可靠。</li>\n<li>结构化字段要对齐“可复用”目标：除了名称/描述，还要记录 runner（Node/Python/Docker）、输入输出 schema、所需权限（网络/文件/账号）、以及复现步骤；否则技能只能“收藏”不能“复用”。</li>\n<li>“热度/安装量/节省时间”适合做排序，但必须记录来源与核验时间；社媒二次传播常会截断上下文或夸大指标。</li>\n<li>推荐双产物：面向人阅读的 Obsidian 卡片（搜索/回顾），以及面向机器的 skills.json（自动测试、排行榜、推荐与去重）。</li>\n</ul>\n<h2>Playbook</h2>\n<ul>\n<li>建模：先定一个最小 Skill Schema（name、one_liner、category、source_url、evidence、assets、runner、deps、io_schema、license、risk、install_metric、last_verified_at），并用 JSON Schema 做校验与版本管理。</li>\n<li>采集：对每条链接做“可访问性分层”——可直接访问则用 Playwright 备份 HTML+截图；需要登录则走手机端复制文案、保存图片、下载视频入库；公众号优先保存原文 HTML/PDF 以便可追溯。</li>\n<li>解析：图片/截图用 PaddleOCR（中文）抽取文字；视频用 ffmpeg 抽帧做 OCR、并用 Whisper/whisper.cpp 转写口播；再用 LLM 把非结构化内容映射到 Skill Schema（尤其是 name、步骤、输入输出与依赖）。</li>\n<li>归档与去重：用 embedding 相似度（FAISS/Milvus）做重复检测与聚类；对“同名不同实现”保留多版本；最后生成 Obsidian 笔记（YAML frontmatter）+ skills.json，确保原始素材与抽取结果可重跑。</li>\n</ul>\n<h2>Expert Views</h2>\n<ul>\n<li>开源维护者（paraphrase）：更看重“可复现的最小示例 + 一键安装 + 清晰 README”，否则安装量难增长；建议每个 Skill 都配 demo、版本号与变更记录。</li>\n<li>数据工程师（paraphrase）：主张先把采集链路做稳（缓存、可追溯、可重跑），并把原始素材与抽取结果分层存储；否则后续修正规则或模型会很痛苦。</li>\n<li>产品经理（paraphrase）：建议围绕“用户任务”而不是“技术实现”来命名/分类 Skill，并用（频次×价值×成本）排序；热门榜单可以作为线索，但不应替代用户验证。</li>\n<li>数据隐私/合规律师（paraphrase）：提醒注意平台条款、账号/Cookie 使用、以及下载/分发内容的版权边界；对“视频下载/搬运类 Skill”应做风险标注与默认禁用分享。</li>\n</ul>\n<h2>Options</h2>\n<ul>\n<li>方案 A（最快）：只提取“技能卡片清单”（名称/一句话/来源/关键词/风险），不保证可运行；适合先把这批社媒灵感变成可检索的知识库。</li>\n<li>方案 B（复用价值最高）：把高频 Skill 落到统一协议（MCP 或 LangChain Tool 等）并可本地/CI 跑通；每个 Skill 配 Dockerfile、测试用例、权限声明与失败回退策略。</li>\n<li>方案 C（另一种“Skill”定义）：若你要的是“个人成长/职场方法论”，则提取为模板与检查表（UI 评审清单、简历改写 prompt、PM 框架卡片），重点是可复用的表单化字段而非代码运行。</li>\n<li>方案 D（术语澄清）：若“OPC”并非某个 Skills 平台/生态，而是其他缩写或项目名，先人工打开该笔记确认全称、GitHub/官网与许可证，再决定是否作为主线生态接入。</li>\n</ul>\n<h2>Evidence &amp; Confidence</h2>\n<ul>\n<li>输入中确实包含大量与“Agent Skills/Skills”相关的标题与链接（high）：来自同一 issue 的正文与多条评论记录。</li>\n<li>Remotion 适合作为“视频生成类 Skill”的实现栈（high）：Remotion 是公开的开源视频渲染方案；但你提到的具体用法与上下文（medium）需要打开原链接核验。</li>\n<li>“小红书内容需要 OCR/视频转写才能完整提取”的流程判断（medium）：基于平台常见内容形态与经验推断；未对你给的短链逐一打开验证（无法在线核验）。</li>\n<li>“OPC 项目安装量 5.3k”“三个月做到 700 安装”等数值（low）：目前仅见于社媒摘要文本，缺少可追溯的原始数据源（无法在线核验）。</li>\n</ul>\n<h2>Next Steps</h2>\n<ul>\n<li>明确目标与边界：你想要的是“把这些 Skill 做成可运行模块”，还是“把社媒提到的 Skill 名称/方法提取成清单”；并确认目标运行框架/协议（OpenClaw/自研、MCP、LangChain、OpenAI tools 等）。</li>\n<li>整理素材与可访问性：将 issue 中所有 xhslink、mp.weixin 链接汇总成 sources.csv（url、日期、备注、是否可访问、是否含视频/图片），并对可访问页面做首次备份（HTML+截图）。</li>\n<li>端到端试跑 3 条样本：各选一条“视频生成（Remotion）/视频下载/Research skills”，按 Playbook 走完备份→OCR/转写→LLM 抽取→输出 skills.json + Obsidian 卡片，检验 schema 是否够用。</li>\n<li>建立复核机制：给每条 Skill 加“核验状态（未核验/已核验/已跑通）”与“风险标签（版权/登录/付费/敏感）”，每周固定复核与补齐最小可运行示例。</li>\n</ul>\n<h2>Sources</h2>\n<ul>\n<li>原始线索汇总（GitHub issue）：<a href=\"https://github.com/EOMZON/myObsidian/issues/27\">https://github.com/EOMZON/myObsidian/issues/27</a> （无法在线核验）</li>\n<li>Remotion（视频生成/渲染）：<a href=\"https://github.com/remotion-dev/remotion\">https://github.com/remotion-dev/remotion</a> （无法在线核验）</li>\n<li>OCR/转写工具链：PaddleOCR <a href=\"https://github.com/PaddlePaddle/PaddleOCR\">https://github.com/PaddlePaddle/PaddleOCR</a> ，whisper.cpp <a href=\"https://github.com/ggerganov/whisper.cpp\">https://github.com/ggerganov/whisper.cpp</a> ，FFmpeg <a href=\"https://ffmpeg.org/\">https://ffmpeg.org/</a> （均无法在线核验）</li>\n<li>采集/去重/技能接口参考：Playwright <a href=\"https://playwright.dev/\">https://playwright.dev/</a> ，FAISS <a href=\"https://github.com/facebookresearch/faiss\">https://github.com/facebookresearch/faiss</a> ，LangChain <a href=\"https://github.com/langchain-ai/langchain\">https://github.com/langchain-ai/langchain</a> ，MCP <a href=\"https://modelcontextprotocol.io/\">https://modelcontextprotocol.io/</a> （均无法在线核验）</li>\n</ul>\n  </div>\n</details>"
      }
    },
    {
      "id": "related",
      "nav": "Related",
      "type": "html",
      "data": {
        "html": "<h2>Related</h2>\n  <div class=\"card\">\n<p class=\"kicker\" style=\"margin-top:0\">Board</p><p style=\"margin:0\"><a href=\"../research/\">Open Research Board</a></p>\n<hr />\n<p class=\"kicker\">Related by Tags</p>\n<ul class=\"list-tight\">\n<li><a href=\"report-20260208-120929.html\">从链接合集提取 OpenClaw/Agent Skills：清单与落库方法</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-08 12:09 ·  · #OpenClaw #小红书 #Remotion</span></li>\n<li><a href=\"report-20260202-203712.html\">从 Vercel 24h Skills 热榜/小红书/公众号提取“Agent Skills”清单：可执行抽取与归档方案</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-02 20:37 ·  · #agent-skills #skillssh #小红书</span></li>\n<li><a href=\"report-20260213-171242.html\">提取微信文章中的 Agent Skills：可复用抽取流程与落库方案</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-13 17:12 ·  · #agent-skills #小红书</span></li>\n<li><a href=\"report-20260211-192207.html\">提取这些skills：从小红书/公众号线索整理为技能库</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-11 19:22 ·  · #skillssh #Remotion</span></li>\n<li><a href=\"report-20260211-181252.html\">提取这些skills：从短链内容沉淀 Agent Skills 清单与流程</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-11 18:12 ·  · #skillssh #小红书</span></li>\n<li><a href=\"report-20260208-160952.html\">从多平台链接线索提取并落地“Skills”清单（issue #27）</a><span style=\"color: var(--gray-600); font-size: 12px;\"> 2026-02-08 16:09 ·  · #Remotion #小红书</span></li>\n</ul>\n</div>"
      }
    },
    {
      "id": "sources",
      "nav": "Sources",
      "type": "html",
      "data": {
        "html": "<h2>Sources</h2>\n  <div class=\"card\">\n<ul>\n<li>原始线索汇总（GitHub issue）：<a href=\"https://github.com/EOMZON/myObsidian/issues/27\">https://github.com/EOMZON/myObsidian/issues/27</a> （无法在线核验）</li>\n<li>Remotion（视频生成/渲染）：<a href=\"https://github.com/remotion-dev/remotion\">https://github.com/remotion-dev/remotion</a> （无法在线核验）</li>\n<li>OCR/转写工具链：PaddleOCR <a href=\"https://github.com/PaddlePaddle/PaddleOCR\">https://github.com/PaddlePaddle/PaddleOCR</a> ，whisper.cpp <a href=\"https://github.com/ggerganov/whisper.cpp\">https://github.com/ggerganov/whisper.cpp</a> ，FFmpeg <a href=\"https://ffmpeg.org/\">https://ffmpeg.org/</a> （均无法在线核验）</li>\n<li>采集/去重/技能接口参考：Playwright <a href=\"https://playwright.dev/\">https://playwright.dev/</a> ，FAISS <a href=\"https://github.com/facebookresearch/faiss\">https://github.com/facebookresearch/faiss</a> ，LangChain <a href=\"https://github.com/langchain-ai/langchain\">https://github.com/langchain-ai/langchain</a> ，MCP <a href=\"https://modelcontextprotocol.io/\">https://modelcontextprotocol.io/</a> （均无法在线核验）</li>\n</ul>\n</div>"
      }
    },
    {
      "id": "closing",
      "nav": "Closing",
      "type": "html",
      "data": {
        "html": "<h2>Closing Summary</h2>\n  <div class=\"callout\">\n<ul>\n<li>结论：提取社媒 Agent Skills 并建库：采集/OCR/结构化流程</li>\n<li>下一步：先确认 Skill 定义与目标框架；随后汇总链接并对 3 条样本跑通“备份→OCR/转写→LLM 抽取”，产出 skills.json/Obsidian。</li>\n</ul>\n<hr />\n<p class=\"kicker\">One next action</p>\n<p style=\"margin: 0\"><strong>先确认 Skill 定义与目标框架；随后汇总链接并对 3 条样本跑通“备份→OCR/转写→LLM 抽取”，产出 skills.json/Obsidian。</strong></p>\n</div>"
      }
    }
  ]
}
