该技能用于为 z-schema(支持 draft-04 至 draft-2020-12 的 JSON Schema 校验库)创建、改进和测试技能,面向库使用者或贡献者。
用途:当用户希望从头创建新技能、改进已有技能或测试技能效果时使用。技能存放在 skills/<skill-name>/ 目录,用于让 Claude 稳定执行 z-schema 相关任务,如校验数据、编写 schema、处理错误、使用自定义格式等。
主要能力与流程:
- 捕获意图:明确技能要达成什么、受众是谁、何时触发、期望输出及是否需要测试用例。
- 调研:先查阅 docs/ 下现有文档(architecture、conventions、testing、contributing、usage、features、options),并参考既有 skills/validating-json-schema/SKILL.md 的风格与结构。
- 编写 SKILL.md:frontmatter 需含 name 与 description,description 是主要触发机制,应具体并略带“强触发”倾向;正文保持 500 行以内,详细材料(选项表、错误码清单、schema 示例)拆入 references/,用命令式指令并解释原因,包含可运行的代码示例。
- 组织参考文件:<skill-name>/references/ 下按主题拆分,超 150 行加目录。
- 测试:编写 2–3 个真实用户口吻的测试提示,自行执行并验证代码可编译、错误码与选项名准确、覆盖完整、指令无歧义,结果保存到 <skill-name>-workspace/iteration-1/ 下。
- 迭代:从反馈中泛化、精简、解释原因、复用重复模式、重新核对源码并重跑测试。
针对 z-schema 的约束:始终用 ZSchema.create(options?) 而非 new ZSchema();默认 draft 为 draft2020-12;导入方式为 import ZSchema from 'z-schema' 或命名导入,类型导入用 import type;ValidateError 通过 .details(非 .errors)提供 SchemaErrorDetail 数组;需说明同步抛错、safe、async、async safe 四种校验模式。涉及 draft 差异时须明确(如 prefixItems 仅 draft-2020-12)。面向贡献者的技能应遵循 TypeScript strict、ESM 与 .js 扩展名、测试位于 test/spec/、错误码在 src/errors.ts 用 UPPER_SNAKE_CASE 等约定。
限制:若技能输出可验证(代码生成、schema 转换、错误处理模式)适合加测试,主观类输出可不加。资料未提供官方发布日期、收费、价格、平台或效果数据。