尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
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-skillsObsidian-skills 收录了 obsidian-markdown、obsidian-bases、json-canvas、obsidian-cli、defuddle 五个面向 Obsidian 开放格式的代理技能。本文把验证拆成静态检查、命令闭环、渲染抽查三层每层给出可直接执行的最小测试集与判定口径。一个测试库准备最小验证环境先给结论不要造大数据集。五个技能的产出分三类——文本文件、结构化文件、命令输出一个小测试库即可全覆盖。测试对象是仓库的skills/目录产出物统一写入独立的test-vault/。固定夹具1 篇笔记含维基链接、标注框、frontmatter、1 个.canvas2 节点 1 边、1 个.base1 公式加 1 表格视图、2~3 个待提取的网页链接。每个技能的 SKILL.md 自带 validate 环节直接把它当验收清单不必另起炉灶。git clone https://gitcode.com/GitHub_Trending/ob/obsidian-skills mkdir -p test-vault/fixtures本文的 obsidian 技能测试用例都遵循最小集原则每种语法、每个关键字段一条不重复造变体。静态验证层打开 Obsidian 之前就能查canvas 与 bases 的产物是纯文本文件结构问题在打开 Obsidian 之前就能暴露。这一层成本最低任何改动都应当先跑它。如何判定 Canvas 节点ID是否合法skills/json-canvas/SKILL.md给了 8 项校验清单翻车率最高的是重复 ID 与悬空边引用。写成脚本一次性过import json, re c json.load(open(sample.canvas)) node_ids {n[id] for n in c[nodes]} ids list(node_ids) [e[id] for e in c[edges]] assert len(ids) len(set(ids)), duplicate id assert all(re.fullmatch(r[0-9a-f]{16}, i) for i in ids) for e in c[edges]: assert e[fromNode] in node_ids and e[toNode] in node_ids最小用例输入2 个文本节点加 1 条边的画布fromSide取right预期脚本无任何输出、无异常退出判定把任一 ID 改成 15 位、或将toNode指向不存在的节点脚本必须报错否则校验无效布局另有两条线节点间距 50–100px中等文本节点宽 300–450px超出即按布局缺陷记录。Markdown 技能的最小测试集obsidian-markdown 产出.md静态层只负责确认语法写得出来渲染交给动态层。最小集一条笔记打尽输入包含[[Note#Heading]]、 [!warning]、![[img.png|300]]、#nested/tag的笔记预期frontmatter 可被 YAML 解析四类语法各出现一次判定frontmatter 缺---或 wikilink 被写成标准 markdown 链接库内链接必须用[[...]]即判失败Bases YAML 的三个自检点skills/obsidian-bases/SKILL.md列了三类高频错误特殊字符未加引号、公式内外引号不配对、formula.X未定义就被引用。用这份夹具验证filters: and: - file.hasTag(task) - file.ext md formulas: days_until_due: if(due, (date(due) - today()).days, ) views: - type: table name: Active order: [file.name, formula.days_until_due]输入上述.base库内放 3 篇带task标签的笔记其中 1 篇故意缺due字段预期缺字段的笔记在公式列显示空值而不是报错判定Obsidian 弹 YAML 错误先查引号公式列整体为空先查过滤条件函数名拿不准时对照skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md命令执行层CLI 与提取工具的闭环验证obsidian-cli 依赖运行中的 Obsidian验收口径是输入与输出对得上defuddle 是纯提取工具口径是内容完整、无导航残留。obsidian-cli 命令测试怎么跑闭环obsidian create nameT1 content# T1\nstatus: draft silent obsidian read fileT1 obsidian property:set namestatus valuedone fileT1 obsidian search querystatus: done limit5输入依次执行上面 4 条预期read 的返回与写入内容一致set 之后搜索命中 1 条判定命中为 0 时先查file的名称解析再看索引是否更新silent能避免目标笔记弹窗干扰观察开发向命令用同一模式改代码 →plugin:reload→dev:errors应无新增报错 →dev:screenshot截图与上一版比对。defuddle 的内容提取核对defuddle parse url -p title defuddle parse url --md | head -20输入选 2~3 个真实页面覆盖文章页、文档页、导航重的页面预期title 非空且与页面主标题一致--md输出不含菜单和广告位文字判定输出 token 数相对原始 HTML 降幅不足 30% 时怀疑提取质量以.md结尾的链接不走该工具skills/defuddle/SKILL.md已注明这类输入应直接取原文动态渲染层三个目测检查点静态检查替代不了眼睛。用 Obsidian 打开测试库抽查三处笔记切到阅读视图标注框图标、高亮是否生效嵌入图片是否按指定宽度 300px 显示打开.base表格视图公式列是否出值再切卡片视图看布局是否塌陷多视图渲染是重灾区打开.canvas节点位置与坐标一致边标签正常显示锚点方向与fromSide/toSide字段一致每处抽查记一个通过/失败加一张截图编号后续回归时直接比对同一编号的截图。回归回路何时重跑完整验证有人问 obsidian-skills 如何验证答案是按层跑每层都有判据不用等发版才做全量。三个触发点改过某个SKILL.md或其references/例如skills/obsidian-markdown/references/CALLOUTS.md重跑对应技能的最小集新增语法或字段时夹具同步加一条输入 → 预期与旧用例一起跑修复失败项后把同层全部用例重跑一遍再下结论团队场景下把静态层的 canvas 脚本挂进流水线即可一条命令的事不需要专门的测试框架。最小验证清单canvas 脚本通过ID 唯一且为 16 位十六进制边引用全部解析成功markdown 夹具在阅读视图中wikilink、标注框、嵌入、frontmatter 四项全部正常渲染.base打开无 YAML 错误缺字段笔记的公式列显示空值而非报错cli 闭环四命令read 内容与写入一致search 恰好命中 1 条defuddletitle 非空--md输出无导航残留token 降幅不低于 30%【免费下载链接】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),仅供参考
返回列表