Feishu → Obsidian PARA Sync
模式:Pipeline | 按需加载 Tool Wrapper(PARA 路由知识)
硬性规则
禁止跳过步骤。禁止在用户确认前进入下一步。
Step 1 — 获取 Wiki 节点列表
触发:用户要求同步飞书文档
执行:
- 1. 加载
references/routing-rules.md 了解 Wiki Space 配置 - 使用
feishu_wiki_space_node 工具获取两个知识库的节点:
CODEBLOCK0
Gate:获取到节点列表后,显示节点数量,问用户确认是否继续。
Step 2 — 匹配 PARA 路由规则
触发:Step 1 确认后
执行:
- 1. 加载
references/routing-rules.md 获取路由知识 - 对每个 docx 类型节点,按优先级匹配目标路径:
- 遍历规则,第一个命中终止
- 命中条件:标题包含关键词(不区分大小写)
- 3. 未命中任何规则 → 落入该 wiki 的兜底目录
路由知识(来自 routing-rules.md):
- - 个人成长 wiki → 兜底: INLINECODE3
- openclaw知识库 wiki → 兜底: INLINECODE4
Gate:显示每个文档的目标路径,确认是否继续。
Step 3 — 获取文档内容并写入 Obsidian
触发:Step 2 确认后
执行:
- 1. 对每个新文档(vault 中不存在的):
- 使用
feishu_fetch_doc 获取文档内容
- 按
assets/frontmatter-template.md 生成 frontmatter
- 调用 sync.py 写入 Obsidian
同步逻辑:
- - 按 feishudoctoken 去重(已存在则跳过)
- 目标路径不存在时自动创建目录
- 非 docx 类型(sheet/bitable)只写链接占位符
Gate:显示将写入的文件列表,确认后执行。
Step 4 — 质量检查
触发:Step 3 执行完成后
执行:
- 1. 加载 INLINECODE7
- 对照检查清单验证同步结果:
- 每个文档都有 frontmatter
- feishu
doctoken / feishu
nodetoken 正确
- 路径符合 PARA 映射
- 3. 报告检查结果,修复可修复的问题
输出格式:
【同步报告】
- 写入:X 个文档
- 跳过:X 个(已存在)
- 失败:X 个(错误信息)
参考文件
| 文件 | 模式 | 作用 |
|---|
| INLINECODE8 | Tool Wrapper | PARA 路由知识库 |
| INLINECODE9 |
Reviewer | 同步质量检查清单 |
|
assets/frontmatter-template.md | Generator | frontmatter 填空模板 |
|
scripts/sync.py | - | 执行脚本 |
已知限制
- - 电子表格(sheet)、多维表格(bitable)只写链接占位符,不拉内容
- 同步需要飞书 Access Token(由 OpenClaw 插件管理)
- sync.py 每次运行会缓存规则到内存(同一个进程内有效)
Feishu → Obsidian PARA 同步
模式:管道 | 按需加载工具包装器(PARA 路由知识)
硬性规则
禁止跳过步骤。禁止在用户确认前进入下一步。
步骤 1 — 获取 Wiki 节点列表
触发条件:用户要求同步飞书文档
执行:
- 1. 加载 references/routing-rules.md 了解 Wiki 空间配置
- 使用 feishuwikispace_node 工具获取两个知识库的节点:
Wiki 空间列表:
- - 个人成长:spaceid = 7619963059842419643
- openclaw知识库:spaceid = 7617330356886178745
工具调用:
feishuwikispacenode(action=list, spaceid=7619963059842419643)
feishuwikispacenode(action=list, spaceid=7617330356886178745)
关卡:获取到节点列表后,显示节点数量,询问用户确认是否继续。
步骤 2 — 匹配 PARA 路由规则
触发条件:步骤 1 确认后
执行:
- 1. 加载 references/routing-rules.md 获取路由知识
- 对每个 docx 类型节点,按优先级匹配目标路径:
- 遍历规则,第一个命中终止
- 命中条件:标题包含关键词(不区分大小写)
- 3. 未命中任何规则 → 落入该 wiki 的兜底目录
路由知识(来自 routing-rules.md):
- - 个人成长 wiki → 兜底:05进思斋
- openclaw知识库 wiki → 兜底:03藏珍之库/工具
关卡:显示每个文档的目标路径,确认是否继续。
步骤 3 — 获取文档内容并写入 Obsidian
触发条件:步骤 2 确认后
执行:
- 1. 对每个新文档(vault 中不存在的):
- 使用 feishu
fetchdoc 获取文档内容
- 按 assets/frontmatter-template.md 生成 frontmatter
- 调用 sync.py 写入 Obsidian
同步逻辑:
- - 按 feishudoctoken 去重(已存在则跳过)
- 目标路径不存在时自动创建目录
- 非 docx 类型(sheet/bitable)只写链接占位符
关卡:显示将写入的文件列表,确认后执行。
步骤 4 — 质量检查
触发条件:步骤 3 执行完成后
执行:
- 1. 加载 references/review-checklist.md
- 对照检查清单验证同步结果:
- 每个文档都有 frontmatter
- feishu
doctoken / feishu
nodetoken 正确
- 路径符合 PARA 映射
- 3. 报告检查结果,修复可修复的问题
输出格式:
【同步报告】
- - 写入:X 个文档
- 跳过:X 个(已存在)
- 失败:X 个(错误信息)
参考文件
| 文件 | 模式 | 作用 |
|---|
| references/routing-rules.md | 工具包装器 | PARA 路由知识库 |
| references/review-checklist.md |
审查器 | 同步质量检查清单 |
| assets/frontmatter-template.md | 生成器 | frontmatter 填空模板 |
| scripts/sync.py | - | 执行脚本 |
已知限制
- - 电子表格(sheet)、多维表格(bitable)只写链接占位符,不拉取内容
- 同步需要飞书 Access Token(由 OpenClaw 插件管理)
- sync.py 每次运行会缓存规则到内存(同一个进程内有效)