一键导入
flowus-to-feishu
将 FlowUs 文章迁移到飞书云文档/知识库。当用户提供 FlowUs 链接并要求迁移到飞书时使用。 也适用于用户提到 FlowUs 迁移、FlowUs 转飞书、文章搬运到飞书、FlowUs 文档导入飞书等场景。 即使用户只说“帮我把这篇 FlowUs 迁移过来”,也应触发此 skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
将 FlowUs 文章迁移到飞书云文档/知识库。当用户提供 FlowUs 链接并要求迁移到飞书时使用。 也适用于用户提到 FlowUs 迁移、FlowUs 转飞书、文章搬运到飞书、FlowUs 文档导入飞书等场景。 即使用户只说“帮我把这篇 FlowUs 迁移过来”,也应触发此 skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Ivan Skills 仓库级入口说明与维护规范
当用户要写出高质量 goal 提示词,把模糊、战略性、多步骤、证据不足或容易跑偏的请求整理成可执行、可验证、可暂停的 Goal Contract 时使用。适用于写 goal、优化任务提示词、明确 done/success criteria、deep research 后定战略、大改前 inventory、修复跑偏计划、为 Codex 或 Claude Code 准备执行任务;默认只生成 goal,不执行 goal。
AI 工具订阅报销材料一键生成。当用户提到报销、续费、订阅费用、采购申请、AI 工具费用报销、生成报销材料等关键词时触发。即使用户只说"帮我报销 ChatGPT"或"Claude 续费 200 刀"或"Cursor 要到期了帮我生成报销单",也应触发此 skill。覆盖 ChatGPT、Claude、Cursor、Lovart、Copilot 等 AI 工具订阅费用的报销材料自动生成,包括审批文案和暗黑玻璃态 HTML 可视化信息图。
通用版本升级对比助手。用于查询任意 CLI 或 App 的最新稳定版本,并与前 3 个稳定版本做更新对比,输出小白可读的大白话总结。适用于用户提到版本升级、release notes、changelog、更新亮点、对比前几个版本等场景;当数据源不明确时,要求用户补充官网或 GitHub 仓库 URL。
VPS 面板自动化安装与管理工具。通过 SSH 远程连接用户的 VPS,自动完成面板安装(3X-UI、S-UI)、SSL 证书配置、系统加固(BBR/UFW/Fail2ban)等全套流程。当用户提到 VPS 搭建、面板安装、3X-UI、S-UI、重装面板、VPS 初始化、节点搭建等关键词时触发。即使用户只是说"帮我装个面板"或"新买了台 VPS",也应该触发此 skill。
Generate n8n workflows by researching official templates. This skill: (1) Searches and downloads reference workflows from n8n.io using Playwright, (2) Designs a new custom workflow based on 'n8n AI Agent' guidelines, (3) Generates the final JSON file, and (4) Creates a detailed requirement documentation.
| name | flowus-to-feishu |
| description | 将 FlowUs 文章迁移到飞书云文档/知识库。当用户提供 FlowUs 链接并要求迁移到飞书时使用。 也适用于用户提到 FlowUs 迁移、FlowUs 转飞书、文章搬运到飞书、FlowUs 文档导入飞书等场景。 即使用户只说“帮我把这篇 FlowUs 迁移过来”,也应触发此 skill。 |
将 FlowUs 平台的文章(包括付费内容)迁移到飞书云文档或知识库,保留完整的文本结构、图片和代码示例。
npm install playwright,项目目录需已安装)lark-cli(飞书 CLI 工具,需已完成 config init 和 auth login)lark-doc skill(用于创建和更新飞书文档)lark-wiki skill(用于知识库节点操作)<grid cols="2"> 双栏<grid> 分栏content 经常为空字符串structured.json,如果发现 type: "code" 且 content: "",必须回到 article-raw.txt 手工提取代码内容Markdown\n复制\n 开头,后面是带行号的内容(1\n第一行\n2\n第二行\n...),需要去掉行号和 "Markdown\n复制" 前缀--markdown 参数中直接使用 HEREDOC($(cat <<'EOF'...EOF)),会导致 shell 语法泄漏到文档中产生乱码$(cat /path/to/file.md) 传给 --markdown.md 文件中用户提供:
如果用户只给了源链接没给目标,主动询问:
"请问要迁移到飞书的哪个位置?给我知识库或文件夹的链接"
对每个 FlowUs URL,运行提取脚本:
node /Users/ivan/.agents/skills/flowus-to-feishu/scripts/extract-flowus.mjs "<flowus-url>" "<output-dir>" --data-dir=/Users/ivan/Downloads/wenqing-work/.playwright-data
重要:
--data-dir 指向用户已有的 Playwright 持久化登录数据目录--launch-login 重新登录migration/article-1/)提取完成后,必须执行以下检查:
structured.json,统计 block 类型分布type: "code" 的 block,如果 content 为空:
article-raw.txtMarkdown\n复制\n 后跟带行号的代码)Markdown、复制、行号前缀)按以下规则将内容转换为飞书 Lark-flavored Markdown:
标题:## 标题内容(跳过 h1,飞书文档标题由 --title 设置)
段落:直接输出文本,保留 **粗体** 标记
Callout 高亮块(仅用于课程目标、总结、重要提示等明确需要强调的内容):
<callout emoji="dart" background-color="light-blue">
**课程目标**:内容文本
</callout>
图片(使用 CDN URL 内联):
<image url="CDN-URL" width="800" align="center"/>
代码块:
```bash
代码内容
```
列表:标准 Markdown - item 或 1. item
引用:> 引用内容
分割线:---
Grid 分栏(仅当原文确实是并列展示时才使用):
<grid cols="2">
<column>
第一列内容
</column>
<column>
第二列内容
</column>
</grid>
.md 文件docs +create 创建文档docs +update --mode append 逐段追加--markdown "$(cat /path/to/partN.md)",不要用 HEREDOC# 创建文档(第一段)
CONTENT=$(cat migration/article-1/feishu-part1.md)
lark-cli docs +create --title "文章标题" --wiki-node <wiki-token> --markdown "$CONTENT" --as user
# 追加后续段落
CONTENT=$(cat migration/article-1/feishu-part2.md)
lark-cli docs +update --doc <doc-id> --mode append --markdown "$CONTENT" --as user
分段切割原则:
<image> 标签跟随其所在的文本段落必须在每篇文章迁移后执行:
lark-cli docs +fetch --doc <doc-id> --as userarticle-raw.txt 对比,检查:
docs +update --mode insert_after/insert_before/append 补入输出汇总表:
| 序号 | 原文标题 | 飞书文档链接 | 章节 | 图片 | 代码块 | 状态 |
|---|---|---|---|---|---|---|
| 1 | xxx | https://... | 5 | 3 | 8 | ✅ |
脚本路径:/Users/ivan/.agents/skills/flowus-to-feishu/scripts/extract-flowus.mjs
用法:
node <script> <flowus-url> [output-dir] [options]
选项:
--data-dir=<path> — 指定 Playwright 用户数据目录(复用登录态)--launch-login — 打开浏览器供用户手动登录--headless — 无头模式运行--debug — 输出 DOM 结构到 debug-dom.txt 供调试输出文件:
article.md — 带注释标记的 Markdownstructured.json — 结构化 JSON(blocks 数组)article-raw.txt — 原始文本备份(代码块补全的关键数据源)images.json — 图片 URL 列表images/ — 下载的图片文件block 类型:
heading — 标题(level + content,content 保留 **粗体**)paragraph — 段落(content 保留 **粗体** 和 `行内代码`)list — 列表(ordered + items 数组,items 保留粗体)code — 代码块(language + content,content 可能为空,需从 raw text 补)image — 图片(src + alt,第一张可能是封面图 alt="cover")callout — 高亮块(color + emoji + content,仅在 alpha >= 0.25 时触发)table — 表格(rows 二维数组)divider — 分割线blockquote — 引用border-t border-grey6 样式的 div 渲染,脚本用 innerText 经常取到空值。必须从 article-raw.txt 手工补全docs +media-insert 上传本地图片rgba(x,x,x, 0.1) 装饰背景,脚本已过滤 alpha < 0.25,但真正的 callout 仍由 AI 在转换阶段根据内容语义判断 图片语法,必须用 <image url="..." /> 标签--as user 身份操作飞书,确保文档归属用户本人/Users/ivan/Downloads/wenqing-work/.playwright-data/,始终用 --data-dir 指向此路径如果提取结果不理想,运行 --debug 模式:
node <script> "<url>" "<output-dir>" --debug --data-dir=/Users/ivan/Downloads/wenqing-work/.playwright-data
FlowUs DOM 关键结构(2026-04 实测):
div.next-space-page-content(<article> 内部)<header> 标签在 .page-header 内(不是内容区的 h1).page-header .bg-cover img<section data-block-id="xxx"> 或 <div class="relative">block-has-icon-container classborder-t border-grey6 class<span class="text-bold"> + fontWeight 600rgba(2, 133, 255, 0.1)(alpha=0.1,不是 callout)