Schema 仓库发布前校验
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/validate-lint-bundle-and-unit-test-json-schema-repositories-before-release-with-json-schema-cli。
技能介绍
为什么需要这件事
Schema 仓库一旦发布,下游团队、CI 流水线和 lint bundle 都会依赖它。问题在于,$ref 指向的文件被移动、enum 与常量约定不一致、additionalProperties 的处理方式各处不同,这些问题在编辑器里几乎看不出来,等到下游解析时才会以奇怪的报错形式暴露出来。
这个技能做了什么
它把发布前的最后一步固定为一次可重复的校验,而不是“我感觉 schema 没写错”。核心能力包括:
- 断链与错误引用检测:找出指向不存在文件或无法解析的
$ref,在 bundle 被压缩、复制之前暴露路径问题。 - 反模式与格式一致性:检查仓库内部重复的定义、不一致的字段命名与排版风格,统一 bundle 的输出形态。
- 单元测试 schema 覆盖:验证用来描述测试用例的 schema 本身是否合法,避免“测试 schema 写错了但没人发现”的尴尬场景。
大致流程是:准备本地 schema 仓库与 JSON Schema CLI,让校验覆盖 lint bundle 与单元测试 schema,再把这次校验接入 CI 或发布脚本,作为合入和打 tag 之前的前置关卡。
适用边界与注意点
这个技能适合在本地已有 schema 仓库、并且已经使用 JSON Schema CLI 的工作流中。它不会替代 schema 设计阶段的评审,也不会修复设计本身的问题——它只是把机械性的一致性检查变成发布前的强制步骤。
需要注意,目前的资料中没有自动提取到安装命令或用法细节,在把它接入敏感流程之前,建议先阅读上游仓库,确认 CLI 版本与仓库结构是否匹配。它提供的是校验动作本身,而不是包管理或部署方案。
使用场景
- 在将 lint bundle 发布前,使用 JSON Schema CLI 校验全量 schema,确保引用有效且格式统一。
- 编写完单元测试的 fixture schema 后,运行验证脚本检查反模式与错误定义,防止脏数据进入 CI。
- 准备合并 schema 仓库大版本分支时,在 CI 中加入校验步骤,拦截字段重命名导致的无效引用和断链。
适合人员
- 平台架构师,需要保证下游使用的 lint bundle 和契约 schema 在发布前没有断链和错误引用。
- DevOps 工程师,负责将 schema 自动化校验接入 CI 流水线,确保合入主干的 schema 无反模式。
- 后端开发负责人,在重构接口契约时,需要验证单元测试 schema 和 bundle 的格式一致性。