AgentSkillsCN

schema-check

根据其 $schema 属性中引用的模式,验证 JSON 文件的格式是否正确。当用户要求按照自身模式检查 JSON、验证自描述的 JSON、自动验证 JSON 文件,或使用嵌入式模式引用验证 JSON 时,可使用此功能。

SKILL.md
--- frontmatter
name: schema-check
description: Validate a JSON file against the schema referenced in its $schema property. Use when the user asks to check JSON against its own schema, validate self-describing JSON, auto-validate JSON files, or verify JSON with embedded schema reference.

Validate JSON Against Embedded $schema

Validate a JSON file against the schema referenced in its $schema property. This is useful for self-describing JSON documents that declare their own schema.

Usage

bash
npx tsx scripts/check.ts <json-file> [options]

Arguments

ArgumentRequiredDescription
json-fileYesPath to the JSON file with $schema property

Options

OptionDescription
--all-errorsReport all errors, not just the first
--no-cacheBypass cache when fetching remote schemas
--strictEnable strict mode validation
--verboseShow detailed validation output
--formatOutput format: text (default), json

Output

Valid JSON:

code
Valid
  Schema: https://json-schema.org/draft/2020-12/schema
  File: my-schema.json

Invalid JSON:

code
Invalid (2 errors)
  Schema: ./schemas/config.schema.json
  1. /settings/timeout: must be number
  2. /settings/retries: must be >= 0

No schema reference:

code
Error: No $schema property found in config.json
  Hint: Use schema-validate to validate against a specific schema

Script Execution

bash
npx tsx scripts/check.ts config.json
npx tsx scripts/check.ts config.json --all-errors
npx tsx scripts/check.ts config.json --no-cache --verbose

Run from the json-schema plugin directory: ~/.claude/plugins/cache/json-schema/

Schema Resolution

The $schema property can reference:

  1. Remote URLs - Fetched and cached (24h TTL)

    json
    { "$schema": "https://json-schema.org/draft/2020-12/schema" }
    
  2. Local file paths - Resolved relative to the JSON file

    json
    { "$schema": "./schemas/config.schema.json" }
    
  3. Absolute paths

    json
    { "$schema": "/Users/joe/schemas/config.schema.json" }
    

Common $schema Values

Schema URIDescription
https://json-schema.org/draft/2020-12/schemaJSON Schema Draft 2020-12
https://json-schema.org/draft/2019-09/schemaJSON Schema Draft 2019-09
http://json-schema.org/draft-07/schema#JSON Schema Draft 7
http://json-schema.org/draft-06/schema#JSON Schema Draft 6
http://json-schema.org/draft-04/schema#JSON Schema Draft 4

Caching

Remote schemas are cached for 24 hours using the OS temporary directory. Use --no-cache to bypass caching and fetch fresh schemas.

Related Skills

  • Use schema-meta to validate that a schema is well-formed
  • Use schema-validate to validate JSON against an arbitrary schema file