curl -L -o opensearch-dsl-validator.skill "https://aiskillstore.io/v1/agent/skills/568fc87d-5801-4d2f-ab94-67d76e7356f1/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "568fc87d-5801-4d2f-ab94-67d76e7356f1",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
Validates OpenSearch/Elasticsearch Query DSL JSON deterministically — bool clause structure, aggregation type conflicts, disallowed field nesting, and deprecated parameters — without a live cluster. Designed for CI/CD pre-deployment query checks.
호환 플랫폼: any
검사 결과: ["메타데이터 경고: 권장 필드 없음: 'tags' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", '정보: spec: usk/1.0 미선언 — v2 패키지로 처리됩니다. 자동 변환 및 에이전트 검색 기능을 사용하려면 USK v3로 업그레이드하세요.']
✅ 보안 위험 항목이 발견되지 않았습니다.
AI 검수 단계
발견된 문제
{ "verdict": "approved", "risk_level": "low", "summary": "OpenSearch/Elasticsearch DSL 유효성 검사 스킬로, 선언된 권한을 준수하며 악의적인 동작 없이 안전합니다.", "issues": [], "reasoning": "제공된 스킬 메타데이터, 코드 파일 및 정적 분석 결과를 바탕으로 다음과 같이 판단합니다.\n\n1. **선언된 permissions(network/filesystem/subprocess)과 실제 코드가 일치하는가?**\n * 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 선언되어 있습니다.\n * `main.py` 및 `lib/validator.py` 코드 분석 결과, `sys.stdin`, `sys.stdout`을 통한 표준 입출력과 `json` 모듈을 사용한 데이터 처리, 그리고 `os.
이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.
Agent-generated bool query where must is an object instead of array
{
"dialect": "opensearch",
"query": {
"query": {
"bool": {
"must": {
"match": {
"title": "error"
}
}
}
}
},
"strict": false
}
{
"complexity_score": 1,
"errors": [
{
"code": "BOOL_MUST_NOT_ARRAY",
"message": "must clause must be an array, got dict",
"path": "query.bool.must",
"severity": "error"
}
],
"query_type": "bool",
"valid": false,
"warnings": []
}
Two aggregations share the same name at the same level
{
"dialect": "opensearch",
"query": {
"aggs": {
"price_stats": {
"avg": {
"field": "price"
}
}
}
},
"strict": false
}
{
"complexity_score": 1,
"errors": [],
"query_type": "none",
"valid": true,
"warnings": []
}
range query contains unsupported 'from' parameter
{
"dialect": "opensearch",
"query": {
"query": {
"range": {
"price": {
"from": 50,
"gte": 100
}
}
}
},
"strict": false
}
{
"complexity_score": 1,
"errors": [
{
"code": "RANGE_INVALID_PARAM",
"message": "Parameter \u0027from\u0027 is not allowed in range query",
"path": "query.range.price.from",
"severity": "error"
}
],
"query_type": "range",
"valid": false,
"warnings": []
}
nested query is missing the required 'path' field
{
"dialect": "elasticsearch",
"query": {
"query": {
"nested": {
"query": {
"match": {
"reviews.score": {
"query": 5
}
}
}
}
}
},
"strict": false
}
{
"complexity_score": 3,
"errors": [
{
"code": "NESTED_PATH_REQUIRED",
"message": "nested query requires \u0027path\u0027 field",
"path": "query.nested",
"severity": "error"
}
],
"query_type": "nested",
"valid": false,
"warnings": []
}
Valid multi-level bool query — returns valid=true with complexity score
{
"dialect": "opensearch",
"query": {
"aggs": {
"by_status": {
"terms": {
"field": "status"
}
}
},
"query": {
"bool": {
"filter": [
{
"range": {
"date": {
"gte": "2024-01-01"
}
}
}
],
"must": [
{
"match": {
"title": "opensearch"
}
},
{
"bool": {
"minimum_should_match": 1,
"should": [
{
"term": {
"status": "published"
}
},
{
"term": {
"status": "draft"
}
}
]
}
}
]
}
}
},
"strict": false
}
{
"complexity_score": 8,
"errors": [],
"query_type": "bool",
"valid": true,
"warnings": []
}
ES 8.x dialect with deprecated _name in match query — strict mode enabled
{
"dialect": "elasticsearch",
"query": {
"query": {
"match": {
"title": {
"_name": "title_match",
"query": "search engine"
}
}
}
},
"strict": true
}
{
"complexity_score": 1,
"errors": [],
"query_type": "match",
"valid": true,
"warnings": [
{
"code": "DEPRECATED_NAMED_QUERIES",
"message": "_name parameter in leaf queries is deprecated; use top-level named_queries instead",
"path": "query.match._name",
"severity": "warning"
}
]
}
모든 예시는 에이전트 API로도 조회 가능:
/v1/agent/skills/568fc87d-5801-4d2f-ab94-67d76e7356f1/schema
아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!