Communitygithub.com

rogerdigital/vault-inspector

一个用于 Obsidian 仓库健康检查的工具,可发现断链、孤立附件、重复文件、Frontmatter 漂移、过期标签和大文件。

vault-inspector 是什么?

Vault Inspector 是一个只读的 Obsidian 仓库维护工具,专为终端、CI 和智能体管理的仓库工作流设计。它能自动扫描并报告仓库中的各种问题,例如损坏的内部链接、未引用的附件文件、空笔记、重复文件、Frontmatter 字段类型错误、低使用率的标签以及体积过大的文件。该工具通过 `vinspect` 或 `npx` 以 CLI 方式运行,支持 JSON 和 Markdown 输出格式,并允许根据需求选择特定的扫描器(如断链、空笔记、大文件)。为了支持自动化流水线,Vault Inspector 提供了基线(baseline)功能,可以对比两次扫描结果,仅报告新出现的问题,避免重复告警。该工具严格遵守只读原则,不会修改仓库文件,所有问题仅以报告形式呈现,建议用户进行手动审查。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add rogerdigital/vault-inspector

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Vault Inspector

使用 Vault Inspector 作为 Obsidian 仓库维护的只读质量门禁。本技能适用于终端、CI 以及智能体管理的仓库工作流,可用于查找断链、孤立附件、空笔记、外部链接、重复文件、Frontmatter 类型漂移、标签使用问题和大文件。

安全规则

  • 将 CLI 视为只读工具。不要在执行本技能时修改、移动、删除或重写仓库文件。
  • 不要提及 --fix 参数可用。CLI 在执行修复操作时会报错退出。
  • 不要自动删除孤立附件、重复文件候选或大文件。应总结证据并建议手动审查。
  • 不要将 title、message、generatedAt 或 durationMs 视为稳定的自动化标识符。
  • 用于自动化的稳定字段包括:schemaVersion、toolVersion、summary、scannerId、severity、primaryPath、relatedPaths、evidence、fingerprint、fixAction、isNew 和 summary.newIssues。
  • 使用 --progress 将扫描进度输出到 stderr;保持 stdout 为机器可读格式。

何时运行

在以下情况下运行 Vault Inspector:

  • 在重组、发布、导出或归档仓库之前;
  • 在生成或由智能体管理的笔记发生更改之后;
  • 在批量编辑链接、标签、frontmatter 或附件之前和之后;
  • 在仓库或生成的文档仓库需要进行回归检查的 CI 环境中;
  • 当用户询问仓库健康度、断链、孤立文件、重复文件或大文件分析时。

基本命令

在仓库目录内:

vinspect . --format json

一次性使用(无需全局安装):

npx vault-inspector /path/to/vault --format json

生成人类可读的报告:

vinspect . --format markdown --output report.md

运行选定的扫描器:

vinspect . --scanner broken-links,empty-notes,large-files --format json

仅在网络检查可接受时运行可选的外部链接扫描器:

vinspect . --scanner external-links --format json

显示进度而不污染 stdout:

vinspect . --format json --progress

基线工作流

创建基线:

vinspect . --format json --output .vault-inspector-baseline.json --fail-on none

仅在新发现的问题上失败:

vinspect . --baseline .vault-inspector-baseline.json --fail-on new --format json

使用基线时,需检查 summary.newIssues 以及每个问题的 isNew 字段。在报告已知问题之前,先报告新问题。

退出码

  • 0:扫描完成,未达到配置的 --fail-on 阈值。
  • 1:扫描完成,达到了配置的 --fail-on 阈值。
  • 2:CLI 使用无效或扫描设置失败。

如果退出码为 2,请报告 CLI 错误,不要将 stdout 解释为成功的扫描结果。

结果解读

按以下顺序处理发现的问题:

  1. error 严重级别的断链和缺失附件链接。
  2. warning 级别的问题,包括缺失标题、大文件、已确认的重复文件和较旧的孤立附件。
  3. info 级别的问题,包括低使用率标签、跳过或超时的外部检查、近期孤立附件和重复文件候选。

对于每个摘要,应包含:

  • 问题总数;
  • 按严重级别统计的数量;
  • 已运行的扫描器;
  • 高置信度问题优先;
  • 手动审查所需的文件路径和证据;
  • 基线中的新问题数量(如有)。

避免过度确定性。当文件被 CSS、Canvas、Dataview、发布管道或外部工具引用时,孤立附件和重复文件候选可能出现误报。

建议的智能体响应

在报告扫描结果时,建议使用以下格式:

Vault Inspector 发现了 <N> 个问题:<E> 个错误,<W> 个警告,<I> 个信息。

最高优先级的问题:
- [<严重级别>] <scannerId>: <primaryPath> - <简短的基于证据的解释>

备注:
- <关于基线/新问题的相关说明>
- <关于孤立/重复文件候选需要手动审查的说明(如适用)>

如果扫描通过,说明运行的命令以及相关的零计数。不要声称仓库是完美的,应说 Vault Inspector 在所选扫描器和过滤条件下未发现任何问题。

相关技能