Agent skill

json-schema

Use when working with JSON Schema for validation, OpenAPI schemas, type definitions, and data structure specification

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/json-schema

SKILL.md

JSON Schema

Quick Start

json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["id", "email"],
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0, "maximum": 150 },
    "role": { "enum": ["admin", "user", "guest"] },
    "tags": { "type": "array", "items": { "type": "string" } }
  }
}

Type Keywords

Type Validation Keywords
string minLength, maxLength, pattern, format
number/integer minimum, maximum, exclusiveMinimum, multipleOf
array items, minItems, maxItems, uniqueItems
object properties, required, additionalProperties

Composition

json
{
  "allOf": [{ "$ref": "#/$defs/Base" }, { "properties": { "extra": {} } }],
  "oneOf": [{ "type": "string" }, { "type": "number" }],
  "anyOf": [{ "minimum": 0 }, { "maximum": 100 }],
  "not": { "type": "null" }
}

References

json
{
  "$defs": {
    "Address": {
      "type": "object",
      "properties": { "street": { "type": "string" } }
    }
  },
  "properties": {
    "billing": { "$ref": "#/$defs/Address" },
    "shipping": { "$ref": "#/$defs/Address" }
  }
}

Common Formats

date-time, date, time, email, uri, uuid, ipv4, ipv6, hostname

OpenAPI 3.1 Notes

  • OpenAPI 3.1 uses JSON Schema 2020-12
  • Use nullable via type: ["string", "null"]
  • example for single example, examples for multiple
  • $ref can have siblings in 3.1 (not in 3.0)

Didn't find tool you were looking for?

Be as detailed as possible for better results