← Back to Skills

json-schema-validator

v1.0.0 approved Development ⬇ 117 ↑ 8/7d 1mo ago
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o json-schema-validator.skill   "https://aiskillstore.io/v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "a79fcf00-2779-4483-8833-a5cdc66bd053",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

JSON 데이터를 JSON Schema Draft-07 기준으로 유효성 검사합니다. 에이전트 API 응답 검증에 필수적입니다.

# json # schema # validation # openapi # developer-tools # korean

Basic Info

Owner 👤 ironman Category Development Registered 2026-04-12 Last Updated 2026-04-26 Latest Version 1.0.0 Packaged At 2026-04-26 Vetting Status approved Downloads 117 Checksum (SHA256) c4539f89f8bccf82c667ecfa8f9934d2f76752e2b07b9632b80f9b64338ad4fa

⚡ AGENT INFO USK v3

Capabilities
json_schema_validation schema_inference schema_diff_breaking_change schema_audit_antipattern json_example_generation
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=OpenClaw GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=ClaudeCode GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=Cursor GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=GeminiCLI GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=CodexCLI GET /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install json-schema-validator
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install json-schema-validator --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download
2
Place it in the Claude Code commands directory.
unzip json-schema-validator.skill -d ~/.claude/commands/json-schema-validator/
3
Use it as a slash command in Claude Code.
/json-schema-validator
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip json-schema-validator-agent-skill-*.skill -d ~/.claude/skills/json-schema-validator/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip json-schema-validator-cursor-*.skill -d ~/.cursor/skills/json-schema-validator/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/json-schema-validator/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip json-schema-validator-geminicli-*.skill -d ~/.gemini/skills/json-schema-validator/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/json-schema-validator/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip json-schema-validator-codexcli-*.skill -d ~/.codex/skills/json-schema-validator/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/json-schema-validator/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/download
2
Place it in your agent platform's skills directory.
cp json-schema-validator.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary JSON Schema 관련 기능을 제공하는 안전하고 자체 포함된 스킬입니다.
Reasoning

스킬 메타데이터에서 네트워크, 파일 시스템, 서브프로세스 접근 권한을 모두 'false'로 명시적으로 선언했습니다. 제공된 코드 파일들을 분석한 결과, 이 선언과 일치하게 외부 네트워크 통신, 파일 시스템 조작(내부 모듈 로딩을 위한 `sys.path` 수정 제외), 또는 서브프로세스 실행 코드가 발견되지 않았습니다. 스킬은 표준 입력을 통해 데이터를 받아 처리하고, 표준 출력으로 결과를 반환하는 `stdin_stdout` 패턴을 따릅니다. 코드 품질은 양호하며, 난독화나 악의적인 목적의 코드는 발견되지 않았습니다. 특히 `lib/auditor.py`에서 ReDoS 취약점 패턴을 검사하는 기능이 포함되어 있어 보안에 대한 개발자의 인식을 엿볼 수 있습니다. 'zero external dependencies'라는 설명과 같이 모든 핵심 로직이 자체 구현되어 있어 외부 라이브러리 의존성으로 인한 잠재적 위험도 없습니다. 정적 분석 결과 또한 'approved' 상태로, 어떠한 위험 요소도 발견되지 않았음을 확인했습니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-04-26 ⬇ 117
v1.0.0 approved 2026-04-12 ⬇ 99 초기 릴리스

Examples 7

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

validate_success
# validate# success# korean

유효한 JSON 인스턴스 검증 성공 예시 / Successful validation of a valid JSON instance

📥 Input
{
  "action": "validate",
  "draft": "draft-07",
  "instance": {
    "age": 30,
    "email": "hong@example.com",
    "name": "\ud64d\uae38\ub3d9"
  },
  "schema": {
    "additionalProperties": false,
    "properties": {
      "age": {
        "maximum": 150,
        "minimum": 0,
        "type": "integer"
      },
      "email": {
        "format": "email",
        "type": "string"
      },
      "name": {
        "minLength": 1,
        "type": "string"
      }
    },
    "required": [
      "name",
      "age"
    ],
    "type": "object"
  }
}
📤 Output
{
  "action": "validate",
  "errors": [],
  "meta": {
    "draft": "draft-07",
    "error_count": 0
  },
  "valid": true
}
validate_failure
# validate# failure# multiple-errors# korean

유효하지 않은 인스턴스 — 복합 에러 수집 / Invalid instance with multiple errors collected

📥 Input
{
  "action": "validate",
  "instance": {
    "age": -5,
    "extra_field": "\ubd88\ud544\uc694\ud55c \ud544\ub4dc",
    "name": "X",
    "status": "unknown"
  },
  "language": "ko",
  "schema": {
    "additionalProperties": false,
    "properties": {
      "age": {
        "minimum": 0,
        "type": "integer"
      },
      "name": {
        "minLength": 2,
        "type": "string"
      },
      "status": {
        "enum": [
          "active",
          "inactive",
          "pending"
        ],
        "type": "string"
      }
    },
    "required": [
      "name",
      "age",
      "status"
    ],
    "type": "object"
  }
}
📤 Output
{
  "action": "validate",
  "errors": [
    {
      "actual": 1,
      "expected": 2,
      "fix_hint": {
        "action": "minLength \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub3c4\ub85d \uac12\uc744 \ub298\ub9ac\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/string.html#length",
        "example": "\"\ud64d\uae38\ub3d9\"",
        "summary": "\ubb38\uc790\uc5f4 \uae38\uc774 \ubd80\uc871"
      },
      "message": "\u0027name\u0027 \uac12\uc758 \uae38\uc774\uac00 \ucd5c\uc18c 2\uc790 \uc774\uc0c1\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. (\ud604\uc7ac: 1\uc790)",
      "path": "/name",
      "schema_path": "/properties/name/minLength"
    },
    {
      "actual": -5,
      "expected": 0,
      "fix_hint": {
        "action": "minimum \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub3c4\ub85d \uac12\uc744 \uc218\uc815\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/numeric.html",
        "example": "30",
        "summary": "\uc22b\uc790 \ubc94\uc704 \ucd08\uacfc"
      },
      "message": "\u0027age\u0027 \uac12\uc774 \ucd5c\uc19f\uac12 0\ubcf4\ub2e4 \uc791\uc2b5\ub2c8\ub2e4. (\ud604\uc7ac: -5)",
      "path": "/age",
      "schema_path": "/properties/age/minimum"
    },
    {
      "actual": "unknown",
      "expected": [
        "active",
        "inactive",
        "pending"
      ],
      "fix_hint": {
        "action": "\ud5c8\uc6a9\ub41c \uac12 \uc911 \ud558\ub098\ub97c \uc120\ud0dd\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/generic.html#enumerated-values",
        "example": "\"active\"",
        "summary": "\uc5f4\uac70\ud615 \uac12 \uc624\ub958"
      },
      "message": "\u0027status\u0027 \uac12 \u0027unknown\u0027\uc740 \ud5c8\uc6a9\ub41c \uc5f4\uac70\ud615 \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4.",
      "path": "/status",
      "schema_path": "/properties/status/enum"
    },
    {
      "actual": "\ubd88\ud544\uc694\ud55c \ud544\ub4dc",
      "expected": "\uc5c6\uc74c",
      "fix_hint": {
        "action": "\uc2a4\ud0a4\ub9c8\uc5d0 \uc5c6\ub294 \ud544\ub4dc\ub97c \uc81c\uac70\ud558\uac70\ub098 \uc2a4\ud0a4\ub9c8\uc5d0 \ucd94\uac00\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/object.html#additional-properties",
        "example": "\ud544\ub4dc \uc81c\uac70 \ub610\ub294 schema\uc5d0 extra_field \ucd94\uac00",
        "summary": "\ucd94\uac00 \uc18d\uc131 \uae08\uc9c0 \uc704\ubc18"
      },
      "message": "\ud5c8\uc6a9\ub418\uc9c0 \uc54a\ub294 \ucd94\uac00 \uc18d\uc131 \u0027extra_field\u0027\uac00 \uc788\uc2b5\ub2c8\ub2e4.",
      "path": "/extra_field",
      "schema_path": "/additionalProperties"
    }
  ],
  "meta": {
    "draft": "draft-07",
    "error_count": 4
  },
  "valid": false
}
infer_from_samples
# infer# schema-generation# format-detection

여러 샘플 JSON에서 스키마 자동 추론 / Infer schema automatically from multiple JSON samples

📥 Input
{
  "action": "infer",
  "samples": [
    {
      "created_at": "2024-01-15T09:30:00Z",
      "email": "hong@example.com",
      "id": 1,
      "name": "\ud64d\uae38\ub3d9",
      "phone": "010-1234-5678"
    },
    {
      "created_at": "2024-02-20T14:00:00Z",
      "email": "lee@test.org",
      "id": 2,
      "name": "\uc774\uc21c\uc2e0"
    },
    {
      "created_at": "2024-03-01T00:00:00Z",
      "email": "kang@mail.kr",
      "id": 3,
      "name": "\uac15\uac10\ucc2c",
      "phone": "010-9876-5432"
    }
  ]
}
📤 Output
{
  "action": "infer",
  "meta": {
    "detected_formats": {
      "created_at": "date-time",
      "email": "email"
    },
    "optional_fields": [
      "phone"
    ],
    "sample_count": 3
  },
  "schema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": true,
    "properties": {
      "created_at": {
        "description": "Inferred from samples",
        "format": "date-time",
        "type": "string"
      },
      "email": {
        "description": "Inferred from samples",
        "format": "email",
        "type": "string"
      },
      "id": {
        "description": "Inferred from samples",
        "type": "integer"
      },
      "name": {
        "description": "Inferred from samples",
        "type": "string"
      },
      "phone": {
        "description": "Inferred from samples (optional)",
        "type": "string"
      }
    },
    "required": [
      "id",
      "name",
      "email",
      "created_at"
    ],
    "type": "object"
  }
}
diff_breaking_change
# diff# breaking-change# api-versioning

두 스키마 비교 — breaking change 탐지 / Diff two schemas detecting breaking changes

📥 Input
{
  "action": "diff",
  "schema_a": {
    "additionalProperties": true,
    "properties": {
      "age": {
        "type": "integer"
      },
      "name": {
        "type": "string"
      },
      "role": {
        "type": "string"
      }
    },
    "required": [
      "name"
    ],
    "type": "object"
  },
  "schema_b": {
    "additionalProperties": false,
    "properties": {
      "age": {
        "type": "string"
      },
      "name": {
        "minLength": 2,
        "type": "string"
      },
      "status": {
        "enum": [
          "active",
          "inactive"
        ],
        "type": "string"
      }
    },
    "required": [
      "name",
      "status"
    ],
    "type": "object"
  }
}
📤 Output
{
  "action": "diff",
  "additive": [
    {
      "change": "property_added",
      "message": "\u0027status\u0027 \uc18d\uc131\uc774 \uc0c8\ub85c \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/status"
    }
  ],
  "breaking": [
    {
      "change": "type_changed",
      "from": "integer",
      "message": "\u0027age\u0027 \ud0c0\uc785\uc774 integer \u2192 string\uc73c\ub85c \ubcc0\uacbd\ub418\uc5b4 \uae30\uc874 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc2e4\ud328\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/age/type",
      "to": "string"
    },
    {
      "change": "required_added",
      "field": "status",
      "message": "\u0027status\u0027\uac00 required\uc5d0 \ucd94\uac00\ub418\uc5b4 \uc774 \ud544\ub4dc \uc5c6\ub294 \uae30\uc874 \ub370\uc774\ud130\uac00 \ubb34\ud6a8\ud654\ub429\ub2c8\ub2e4.",
      "path": "/required"
    },
    {
      "change": "additional_properties_restricted",
      "from": true,
      "message": "additionalProperties\uac00 true\u2192false\ub85c \uc81c\ud55c\ub418\uc5b4 \uae30\uc874 \ucd94\uac00 \ud544\ub4dc\uac00 \uac70\ubd80\ub429\ub2c8\ub2e4.",
      "path": "/additionalProperties",
      "to": false
    },
    {
      "change": "constraint_added",
      "message": "\u0027name\u0027\uc5d0 minLength:2 \uc81c\uc57d\uc774 \ucd94\uac00\ub418\uc5b4 \uc9e7\uc740 \uac12\uc774 \uac70\ubd80\ub429\ub2c8\ub2e4.",
      "path": "/properties/name/minLength"
    }
  ],
  "meta": {
    "additive_count": 1,
    "breaking_count": 4,
    "neutral_count": 1
  },
  "neutral": [
    {
      "change": "property_removed",
      "message": "\u0027role\u0027 \uc18d\uc131\uc774 \uc81c\uac70\ub418\uc5c8\uc2b5\ub2c8\ub2e4 (required \uc544\ub2d8, breaking \uc5c6\uc74c).",
      "path": "/properties/role"
    }
  ]
}
audit_clean
# audit# clean# quality

잘 작성된 스키마 감사 — 이슈 없음 / Audit of a well-written schema with no issues

📥 Input
{
  "action": "audit",
  "schema": {
    "$id": "https://example.com/user.schema.json",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "description": "\uc11c\ube44\uc2a4 \uc0ac\uc6a9\uc790 \uc815\ubcf4\ub97c \ub098\ud0c0\ub0b4\ub294 \uc2a4\ud0a4\ub9c8",
    "properties": {
      "email": {
        "description": "\uc774\uba54\uc77c \uc8fc\uc18c",
        "format": "email",
        "maxLength": 254,
        "title": "\uc774\uba54\uc77c",
        "type": "string"
      },
      "id": {
        "description": "\uace0\uc720 \uc2dd\ubcc4\uc790",
        "minimum": 1,
        "title": "\uc0ac\uc6a9\uc790 ID",
        "type": "integer"
      },
      "name": {
        "description": "\uc0ac\uc6a9\uc790 \uc774\ub984",
        "maxLength": 100,
        "minLength": 1,
        "title": "\uc774\ub984",
        "type": "string"
      },
      "tags": {
        "description": "\uc0ac\uc6a9\uc790 \ud0dc\uadf8 \ubaa9\ub85d",
        "items": {
          "type": "string"
        },
        "maxItems": 20,
        "title": "\ud0dc\uadf8",
        "type": "array"
      }
    },
    "required": [
      "id",
      "name",
      "email"
    ],
    "title": "\uc0ac\uc6a9\uc790 \uc2a4\ud0a4\ub9c8",
    "type": "object"
  }
}
📤 Output
{
  "action": "audit",
  "issues": [],
  "meta": {
    "issues_by_category": {
      "INTEROP": 0,
      "QUAL": 0,
      "SEC": 0
    },
    "rules_checked": 15
  },
  "score": 100
}
audit_with_issues
# audit# issues# anti-pattern# redos

안티패턴이 있는 스키마 감사 / Audit of a schema with multiple anti-patterns

📥 Input
{
  "action": "audit",
  "schema": {
    "properties": {
      "content": {
        "type": "string"
      },
      "metadata": {},
      "pattern_field": {
        "pattern": "(a+)+",
        "type": "string"
      },
      "tags": {
        "type": "array"
      }
    },
    "required": [
      "content"
    ],
    "type": "object"
  }
}
📤 Output
{
  "action": "audit",
  "issues": [
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "\ub8e8\ud2b8 \uc2a4\ud0a4\ub9c8\uc5d0 title \uc18d\uc131\uc744 \ucd94\uac00\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/schema.html",
        "example": {
          "title": "\ub0b4 \uc2a4\ud0a4\ub9c8"
        },
        "summary": "title \ub204\ub77d"
      },
      "message": "\uc2a4\ud0a4\ub9c8\uc5d0 \u0027title\u0027\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uc2a4\ud0a4\ub9c8\uc758 \ubaa9\uc801\uc744 \uba85\ud655\ud788 \uae30\uc220\ud558\uc138\uc694.",
      "path": "/",
      "rule": "QUAL-001",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "\ub8e8\ud2b8 \uc2a4\ud0a4\ub9c8\uc5d0 description \uc18d\uc131\uc744 \ucd94\uac00\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/schema.html",
        "example": {
          "description": "\uc774 \uc2a4\ud0a4\ub9c8\ub294 ..."
        },
        "summary": "description \ub204\ub77d"
      },
      "message": "\uc2a4\ud0a4\ub9c8\uc5d0 \u0027description\u0027\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. \uc6a9\ub3c4\ub97c \uc124\uba85\ud558\ub294 description\uc744 \ucd94\uac00\ud558\uc138\uc694.",
      "path": "/",
      "rule": "QUAL-002",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "\uc2a4\ud0a4\ub9c8\uc5d0 $id URI\ub97c \ucd94\uac00\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/structuring.html",
        "example": {
          "$id": "https://example.com/my-schema.json"
        },
        "summary": "$id \ub204\ub77d"
      },
      "message": "\u0027$id\u0027\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uc2a4\ud0a4\ub9c8 URI\ub97c \uba85\uc2dc\ud558\uba74 \ucc38\uc870 \ud574\uc11d\uc774 \uba85\ud655\ud574\uc9d1\ub2c8\ub2e4.",
      "path": "/",
      "rule": "QUAL-005",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "string \ud0c0\uc785 \uc18d\uc131\uc5d0 \ud569\ub9ac\uc801\uc778 maxLength\ub97c \uc124\uc815\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/string.html",
        "example": {
          "maxLength": 10000
        },
        "summary": "\ubb34\ud55c \ubb38\uc790\uc5f4 \uae38\uc774"
      },
      "message": "\u0027content\u0027 \uc18d\uc131\uc5d0 maxLength \uc81c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/content",
      "rule": "QUAL-003",
      "severity": "info"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "array \ud0c0\uc785 \uc18d\uc131\uc5d0 \ud569\ub9ac\uc801\uc778 maxItems\ub97c \uc124\uc815\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/array.html",
        "example": {
          "maxItems": 100
        },
        "summary": "\ubb34\ud55c \ubc30\uc5f4 \ud06c\uae30"
      },
      "message": "\u0027tags\u0027 \ubc30\uc5f4\uc5d0 maxItems \uc81c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/tags",
      "rule": "QUAL-004",
      "severity": "info"
    },
    {
      "category": "SEC",
      "fix_hint": {
        "action": "\uc911\ucca9 \uc218\ub7c9\uc790\ub97c \uc81c\uac70\ud558\uace0 \uc6d0\uc790\uc801 \uadf8\ub8f9 \ub610\ub294 possessive \uc218\ub7c9\uc790\ub97c \uc0ac\uc6a9\ud558\uc138\uc694.",
        "doc_ref": "https://owasp.org/www-community/attacks/ReDoS",
        "example": {
          "pattern": "a+"
        },
        "summary": "ReDoS \ucde8\uc57d \ud328\ud134"
      },
      "message": "\ud328\ud134 \u0027(a+)+\u0027 \uc774 ReDoS \uc704\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc911\ucca9 \uc218\ub7c9\uc790\uac00 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/pattern_field",
      "rule": "SEC-001",
      "severity": "error"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "\ud5c8\uc6a9\ud558\uc9c0 \uc54a\uc73c\ub824\uba74 false, \ud5c8\uc6a9\ud558\ub824\uba74 true\ub97c \uba85\uc2dc\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/object.html#additional-properties",
        "example": {
          "additionalProperties": false
        },
        "summary": "additionalProperties \ubbf8\uc9c0\uc815"
      },
      "message": "additionalProperties\uac00 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uc758\ub3c4\ud558\uc9c0 \uc54a\uc740 \ud544\ub4dc \ud5c8\uc6a9 \uc5ec\ubd80\ub97c \uba85\uc2dc\ud558\uc138\uc694.",
      "path": "/",
      "rule": "QUAL-006",
      "severity": "warning"
    },
    {
      "category": "INTEROP",
      "fix_hint": {
        "action": "$schema\ub97c \ucd94\uac00\ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 draft\ub97c \uba85\uc2dc\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/schema.html",
        "example": {
          "$schema": "http://json-schema.org/draft-07/schema#"
        },
        "summary": "draft \ubc84\uc804 \ubbf8\uc9c0\uc815"
      },
      "message": "$schema \ud0a4\uc6cc\ub4dc\uac00 \uc5c6\uc5b4 draft \ubc84\uc804\uc744 \uc54c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.",
      "path": "/",
      "rule": "INTEROP-003",
      "severity": "info"
    },
    {
      "category": "SEC",
      "fix_hint": {
        "action": "\uc18d\uc131\uc5d0 \uba85\uc2dc\uc801\uc778 type\uc744 \uc9c0\uc815\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/type.html",
        "example": {
          "type": "object"
        },
        "summary": "type \uc5c6\ub294 \uad00\ub300\ud55c \uc18d\uc131"
      },
      "message": "\u0027metadata\u0027 \uc18d\uc131\uc5d0 type\uc774 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. \uc784\uc758 \uac12\uc774 \ud5c8\uc6a9\ub429\ub2c8\ub2e4.",
      "path": "/properties/metadata",
      "rule": "SEC-002",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": {
        "action": "\ubc30\uc5f4 \uc694\uc18c\uc758 \ud0c0\uc785\uc744 items\ub85c \uba85\uc2dc\ud558\uc138\uc694.",
        "doc_ref": "https://json-schema.org/understanding-json-schema/reference/array.html#items",
        "example": {
          "items": {
            "type": "string"
          }
        },
        "summary": "items \ubbf8\uc9c0\uc815"
      },
      "message": "\u0027tags\u0027 \ubc30\uc5f4\uc5d0 items\uac00 \uc9c0\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.",
      "path": "/properties/tags",
      "rule": "QUAL-007",
      "severity": "info"
    }
  ],
  "meta": {
    "issues_by_category": {
      "INTEROP": 1,
      "QUAL": 7,
      "SEC": 2
    },
    "rules_checked": 15
  },
  "score": 25
}
generate_example
# generate_example# korean-format# example-generation

스키마에서 예시 인스턴스 3개 생성 / Generate 3 example instances from a schema

📥 Input
{
  "action": "generate_example",
  "count": 3,
  "schema": {
    "additionalProperties": false,
    "properties": {
      "active": {
        "type": "boolean"
      },
      "birth_date": {
        "format": "date-time",
        "type": "string"
      },
      "email": {
        "format": "email",
        "type": "string"
      },
      "id": {
        "minimum": 1,
        "type": "integer"
      },
      "phone": {
        "format": "korean_phone",
        "type": "string"
      },
      "roles": {
        "items": {
          "enum": [
            "admin",
            "user",
            "viewer"
          ],
          "type": "string"
        },
        "maxItems": 3,
        "type": "array"
      },
      "score": {
        "maximum": 100.0,
        "minimum": 0.0,
        "type": "number"
      },
      "username": {
        "maxLength": 20,
        "minLength": 3,
        "type": "string"
      }
    },
    "required": [
      "id",
      "username",
      "email",
      "active"
    ],
    "type": "object"
  }
}
📤 Output
{
  "action": "generate_example",
  "examples": [
    {
      "active": true,
      "email": "user1@example.com",
      "id": 1,
      "roles": [
        "user"
      ],
      "username": "user_abc"
    },
    {
      "active": false,
      "birth_date": "1990-06-15T00:00:00Z",
      "email": "user2@example.com",
      "id": 42,
      "phone": "010-1234-5678",
      "roles": [
        "admin",
        "user"
      ],
      "score": 87.5,
      "username": "hong_gildong"
    },
    {
      "active": true,
      "email": "user3@example.com",
      "id": 100,
      "phone": "010-9876-5432",
      "roles": [
        "viewer"
      ],
      "score": 42.0,
      "username": "sample_user"
    }
  ],
  "meta": {
    "generated_count": 3,
    "required_fields": [
      "id",
      "username",
      "email",
      "active"
    ],
    "schema_type": "object"
  }
}

All examples are also available via the agent API: /v1/agent/skills/a79fcf00-2779-4483-8833-a5cdc66bd053/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review