SuperAPI AI 工具集

check-metadata-typos

写作与研究

查看项目

更新于 10-16 07:46

技能介绍

用途

该技能用于检查 OWID ETL 项目中的元数据文件是否存在拼写错误。它使用 codespell 对 .meta.yml 和快照 .dvc 文件进行拼写检查,帮助维护元数据质量。当用户提到拼写错误、拼写检查、元数据质量或希望检查元数据时可以使用。

主要能力

  • 支持四种检查范围:
    1. 仅当前步骤:需用户指定步骤路径(例如 etl/steps/data/garden/energy/2025-06-27/electricity_mix)。
    2. 全部 ETL 元数据:检查 etl/steps/data/{garden,meadow,grapher}/ 下所有活跃的 .meta.yml 文件,自动排除约 3,570 个已归档步骤。
    3. 快照元数据:检查 snapshots/ 下所有 .dvc 文件(约 7,915 个文件)。
    4. 全部元数据:同时检查 ETL 步骤和快照元数据文件。
  • 自动排除已归档的步骤和快照(定义在 dag/archive/*.yml 中),因为它们不再维护。
  • 使用 .codespell-ignore.txt 文件过滤领域专有词汇。
  • 解析并结构化展示结果:按拼写错误类型分组、显示文件路径(尽可能可点击)、行号和修正建议。
  • 提供修复选项:自动修复全部、逐条审查修复或取消。
  • 修复后重新运行 codespell 验证。
  • 清理临时文件,不创建新的持久化文件(如报告或脚本)。

使用方式

  1. 检查 codespell 是否已安装。项目已将其作为开发依赖,通常已安装;若未安装,使用 uv add --dev codespell 安装。
  2. 根据用户选择的范围,提取已归档步骤和快照路径,生成活跃文件列表。
  3. 运行 codespell,使用 .codespell-ignore.txt 忽略列表。
  4. 解析输出,按拼写错误类型分组展示,包含文件路径、行号和修正建议。
  5. 询问用户是否修复:自动修复全部、逐条审查或取消。
  6. 应用修复(如用户确认),可使用 sed 或 Python 脚本替换。
  7. 重新运行 codespell 验证修复结果。
  8. 删除临时文件,仅保留 .codespell-ignore.txt 白名单(如不存在则创建)和修改后的 .meta.yml 文件。

适用场景

  • 元数据质量维护:定期检查 .meta.yml 和 .dvc 文件中的拼写错误。
  • 拼写错误排查:当用户怀疑元数据中存在拼写错误时。
  • 代码审查或提交前检查:确保元数据拼写正确。

限制

  • 需要项目环境中已安装 codespell,或能够通过 uv 安装。
  • 仅检查 .meta.yml 和 .dvc 文件,不检查其他文件类型。
  • 已归档的步骤和快照不会被检查。
  • 技术字段名(如下划线变量名)通常忽略。
  • 全大写缩写应忽略(如 TE、INE、DIEA)。
  • URL 和域名应忽略(codespell 可能误报,如 ine.es、corona.fo)。
  • 对标记的单词有疑问时,应先询问用户再修复。
  • 始终使用美式英语拼写(如 combating 而非 combatting)。
  • 不创建新的持久化文件,如 TYPO_CHECK_REPORT.md 或分析脚本。
  • 若未找到 .meta.yml 或 .dvc 文件,会通知用户;若未发现拼写错误,会祝贺用户。
  • 若文件修改失败,会报告无法更新的文件。