ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

obsidian-skills 测试指南:5 个必踩的坑与一套完整校验清单

obsidian-skills 测试指南:5 个必踩的坑与一套完整校验清单 obsidian-skills 测试指南5 个必踩的坑与一套完整校验清单【免费下载链接】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-skillsAgent 信心满满地产出一个 .canvas 文件Obsidian 一打开就报解析错误用 .base 写的任务看板渲染出来是空的视图里连个报错都没有。这是 AI 代理技能测试中最常见的两种翻车方式。obsidian-skills 是一套教 AI 代理写 Obsidian Flavored Markdown、Bases、JSON Canvas 并通过 CLI 操作库的技能包仓库里没有任何一行现成测试代码——但它给每个技能的流程都写好了 Validate 步骤。写测试用例就是把这些步骤翻译成输入 → 预期 → 判定。下面按坑的杀伤力排序。格式看着对解析器不认 三种格式各有各的坑且看起来像合法语法完全不能保证能过。JSON Canvas 换行符文本节点里换行必须用 JSON 转义的\n写成字面的\\nObsidian 会把反斜杠和 n 两个字符原样渲染出来。输入两行内容的文本节点预期节点里显示两行判定打开画布看文本或对原始串做一次转义检查。Bases 的 YAML 引号含:、{、#等字符的字符串必须加引号公式里有双引号时外层要用单引号包住。输入displayName: Status: Active预期YAML 正常解析判定跑一次 YAML 解析器未加引号的第二个冒号会直接报错。正确写法是displayName: Status: Active。Markdown 特殊语法[[Note#Heading]]、![[image.png|300]]、 [!warning]单独出现都没问题坑在组合上——引用块挂 block ID 时^quote-id必须独占一行。这类用例最适合做成语法矩阵一行一个元素在 Obsidian 阅读视图里逐行核对渲染。各语法的完整写法见 skills/obsidian-markdown/SKILL.md。引用指向了不存在的东西 这类问题比语法错误更隐蔽文件解析正常、视图能打开只是某根连线或某一列悄悄消失了。Canvas 悬空边边的fromNode/toNode必须都能在 nodes 数组里找到。输入一条指向不存在 ID 的边预期校验报错判定把边引用和节点 ID 做一次集合比对。skills/json-canvas/SKILL.md 末尾附了 8 项校验清单——ID 在节点与边之间全局唯一、每种节点类型必填字段齐全text/file/url、fromSide/toSide只能取四个方向、颜色是1~6或十六进制、JSON 可解析——直接把这张清单抄成验收标准。Bases 未定义公式order里引用了formula.total但formulas段里没有total会静默失败——列直接不显示没有任何提示。输入引用了不存在公式的 base预期产出时告警判定order和properties里的formula.X逐个到formulas键里对。日期公式必崩的一条 Bases 公式层有个文档明确标注的坑两个日期相减返回的是 Duration不是数字而 Duration 不支持.round()必须先取.days这类数值字段。这一条值得写进每个公式用例的必测项# 错Duration 不能直接取整 (now() - file.ctime).round(0) # 对先取 .days 再取整 (now() - file.ctime).days.round(0) # 属性可能为空用 if() 兜底 if(due, (date(due) - today()).days, )测试设计很简单准备一条有due、一条没有的笔记跑同一个公式——前者应得数字后者应得空字符串两者都不该抛错。skills/obsidian-bases/SKILL.md 的 Troubleshooting 一节基本就是一份已知缺陷清单错例直接抄成用例输入对例就是预期输出。命令跑通了但什么都没发生 ⌨️CLI 技能比文件格式多一个前提Obsidian 必须在运行且命令默认作用于最近聚焦的库。搭测试环境第一件要确认的事是有没有活动实例多库场景下把vault名称作为第一个参数显式指定。另外两种定位方式别混用fileMy Note按维基链接方式解析只给名字就行pathfolder/note.md是精确路径。用例里写混了出错时分不清是命令错了还是目标找错了。测试脚本建议加silent标志避免笔记被弹出前台打断下一步。插件开发流程的测试就用项目推荐的四步循环obsidian plugin:reload idmy-plugin obsidian dev:errors obsidian dev:screenshot pathscreenshot.png obsidian dev:console levelerror每一步的判定都明确reload 正常退出 → errors 为空 → 截图里出现预期 UI → 控制台无 error 级日志。任何一步失败回到 reload 重来。完整命令清单见 skills/obsidian-cli/SKILL.md。提取结果干净了吗 Defuddle 的职责是把网页的导航、广告剥掉把干净正文交给代理。测试分两层格式层看defuddle parse url --md输出是否为合法 Markdown-p title、-p description、-p domain三项提取能否与页面本身对上内容层看正文是否完整、是否残留面包屑、相关文章侧栏、订阅按钮——判定标准就一条正文在、杂物无。还有一个边界用例以.md结尾的 URL 不该走 defuddle它本来就是 Markdown。用法细节见 skills/defuddle/SKILL.md。用例怎么落把 SKILL.md 的校验步骤当基线 ✅仓库没有现成测试框架但你也别急着搭一个——每个技能的工作流都以 Validate 步骤收尾那就是验收基线。三步落地能自动的先自动JSON 解析、YAML 解析、ID 唯一性、边引用完整性、formula.X对键——写几个小脚本每次文件产出后跑一遍。再打开看一眼文件级校验只能证明不崩。阅读视图的渲染、base 视图的列、画布是否重叠这些只能人眼确认技能文档也明确要求在 Obsidian 里打开确认这步省不掉。每条用例一行写完输入具体产物、预期具体渲染或输出、判定用什么工具看什么。写验证语法正确不算用例写那行 [!warning]在阅读视图里显示为黄色边框提示框才算。最小起步路径 今天建一个迷你库3~5 条笔记 1 个画布 1 个 base给 Markdown 语法、Canvas 结构、Bases 公式各写一条用例先把解析校验跑绿。本周把 CLI 和 Defuddle 加进来——read/append/property:set 跑一个完整循环再挑两个真实网页验证提取质量。之后把各 SKILL.md 的校验清单固化成脚本技能文件有更新就重跑把dev:errors无新增告警当作回归基线。【免费下载链接】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),仅供参考
返回列表