Obsidian-skills 测试用例速查:覆盖 Markdown、Bases、JSON Canvas 五大技能,发布前快速避坑
【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skills
Obsidian-skills 让 AI 代理处理 Obsidian Markdown、Bases、JSON Canvas 三种开放格式并用 Obsidian CLI 操作 vault。本文讲清 5 个技能的测试用例怎么写、测试环境怎么搭、发布前逐项查什么。
🧩 先写一条用例:输入 → 预期 → 验证 三要素
别急着跑东西,先用三要素格式把一条用例写下来,写不出这三条的"用例"只是猜测。每个技能、每种场景都套这个模板,测试就能积累成清单。
- 输入:喂给技能的内容,比如让代理生成一段带特定语法的笔记
- 预期:输出应该长什么样,说清楚可判定的标准,而不是"看起来对"
- 验证方式:怎么确认,打开 Obsidian 看渲染、解析 JSON 检查字段、或看命令返回值
举个 obsidian-markdown 的例子:
- 输入:让代理新建一条笔记,内容里引用已存在的
[[会议纪要]] - 预期:链接被识别为内部链接,且目标笔记真实存在于 vault 里
- 验证:在 Obsidian 阅读视图点这条链接,能跳到目标笔记就通过;点出来是一个空白新笔记,说明目标不存在,判失败
📊 技能关注点对照表:五行看完五大技能的测试范围
先对照这张表圈出重点,拿不准细节再去对应技能文件里查完整说明,不用凭印象写用例。
| 技能 | 路径 | 核心测试点 | 高频翻车点 |
|---|---|---|---|
| obsidian-markdown | skills/obsidian-markdown/SKILL.md | 维基链接、callout、frontmatter、嵌入在预览里都渲染正确 | frontmatter 特殊字符弄坏 YAML;链接目标笔记不存在 |
| obsidian-bases | skills/obsidian-bases/SKILL.md | filter 结果对、formula 算得对、summary 数值对,四种视图都能显示 | 公式引号不匹配;Duration 直接调.round();引用了没定义的formula.X |
| json-canvas | skills/json-canvas/SKILL.md | 节点 ID 唯一、边引用真实节点、尺寸和间距合理 | fromNode指向不存在的 ID;换行写成字面\\n |
| obsidian-cli | skills/obsidian-cli/SKILL.md | read/create/append、search、property:set、tasks能正常执行 | Obsidian 没开着导致命令失败;含空格的参数值没加引号 |
| defuddle | skills/defuddle/SKILL.md | --md输出干净、-p元数据提取准、存文件正常 | 工具没安装;.md链接不该走 defuddle |
🛠 3 步搭好测试 vault 和测试数据
第 1 步,把技能拉到代理能找到的目录,clone 下来即可,代理会自动加载里面的技能文件。
git clone https://gitcode.com/GitHub_Trending/ob/obsidian-skills第 2 步,单独建一个测试 vault,别拿真实笔记库练手。里面备三类料:几张带齐维基链接、callout、标签、公式、脚注的 .md 笔记,一个带属性和公式的 .base,一个带多种节点和边的 .canvas。以后所有用例都往这个 vault 里跑,结果可复现、数据不脏。
第 3 步,装依赖并让 Obsidian 保持运行。defuddle 用 npm 全局安装;同时把测试 vault 在 Obsidian 里打开,CLI 类用例全靠这个前置条件。
npm install -g defuddle⏱ 执行节奏:开发中、提交前、发布前各跑什么
按下面三个节奏跑测试,平时快、关键节点全:
- 开发中:改一处只跑该技能的校验,比如解析一遍 YAML 或 JSON、预览渲染一次,别每次都跑全套
- 提交前:用最小用例集把五个技能各跑一遍,只确认"还能用"
- 发布前:补边界条件(空输入、特殊字符、长文本、节点多的画布),再跑一条端到端流程:网页用 defuddle 提取 → 写成笔记 → 用 Bases 汇总 → 用 Canvas 画关系图
⚠️ 避坑速查:5 个常见失败现象和处理办法
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| Canvas 文件打不开,JSON 解析报错 | text 节点里的换行或引号没转义 | 换行统一写\n,写回文件前先解析验证一遍 |
| Bases 文件报 YAML 错误 | 含:、#的字符串没加引号,或公式里引号不匹配 | 整条公式用单引号包住,特殊字符字符串用双引号 |
| Bases 公式报错或算出来是 0 | 两个日期相减得到 Duration 不是数字 | 先取.days字段再做数值运算 |
| CLI 命令没反应或操作了错误的库 | Obsidian 没开着,或同时开多个 vault | 先打开 Obsidian;用vault=参数明确指定 |
| defuddle 输出仍带导航、或提示找不到命令 | 没安装全局工具,或把 .md 链接传了进去 | 先全局安装;.md 链接直接读文件,不走 defuddle |
✅ 发布前自查:逐项打勾再交付
- 每条用例都写全了「输入 → 预期 → 验证」三要素
- Markdown 用例:frontmatter 能解析成合法 YAML,维基链接目标全部存在
- Bases 用例:文件是合法 YAML,
order引用的每个formula.X都在formulas里定义过 - Canvas 用例:节点和边 ID 无重复,
fromNode/toNode全部指向真实节点 - CLI 用例:全部在 Obsidian 运行时执行过,含空格的参数值都加了引号
- defuddle 用例:输出没有导航和广告残留,title、description 能正常提取
- 端到端流程完整跑通一次:网页提取 → 写入笔记 → Bases 汇总 → Canvas 出图
【免费下载链接】obsidian-skillsAgent skills for Obsidian. Teach your agent to use Obsidian CLI and open formats including Markdown, Bases, JSON Canvas.项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考