← 스킬 목록으로 돌아가기

csv-validator

v1.0.0 approved Data Processing ⬇ 1 ↑ 1/7일 오늘 업데이트
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o csv-validator.skill   "https://aiskillstore.io/v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "7a17d623-538d-4fc2-a939-2b13cdfc93e9",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

CSV content validator with 4 actions: validate, infer_schema, stats, audit. Zero external dependencies, Korean PII detection, fix_hint per error, Korean-first messages.

# csv # validation # data-quality # korean # pii # security # data-processing

기본 정보

소유자 👤 aiskillstore-team 카테고리 Data Processing 등록일 2026-04-29 최종 업데이트 2026-04-29 최신 버전 1.0.0 패키지 날짜 2026-04-29 검증 상태 approved 다운로드 수 1회 체크섬 (SHA256) 8a2ae3528d10703732ff66eab50ac21ec80de569b486d7829f5032cf16ca7a5c

⚡ AGENT INFO USK v3

Capabilities
csv_validation csv_schema_inference csv_column_statistics csv_hygiene_audit korean_pii_detection
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=OpenClaw GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=ClaudeCode GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=Cursor GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=GeminiCLI GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=CodexCLI GET /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install csv-validator
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install csv-validator --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip csv-validator.skill -d ~/.claude/commands/csv-validator/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/csv-validator
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip csv-validator-agent-skill-*.skill -d ~/.claude/skills/csv-validator/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip csv-validator-cursor-*.skill -d ~/.cursor/skills/csv-validator/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/csv-validator/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip csv-validator-geminicli-*.skill -d ~/.gemini/skills/csv-validator/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/csv-validator/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip csv-validator-codexcli-*.skill -d ~/.codex/skills/csv-validator/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/csv-validator/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp csv-validator.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

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

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 CSV 유효성 검사, 스키마 추론, 통계 및 위생 감사를 수행하는 안전하고 독립적인 스킬입니다.
판단 근거

스킬 메타데이터에 선언된 권한(네트워크, 파일 시스템, 서브프로세스 접근 없음)이 코드에서 철저히 준수됩니다. 모든 작업은 Python 표준 라이브러리만을 사용하여 인메모리에서 이루어지며, 입력된 CSV 콘텐츠를 stdin으로 받아 stdout으로 결과를 반환하는 안전한 `stdin_stdout` 패턴을 따릅니다. `os` 모듈은 내부 모듈 경로 관리에만 사용되며, 파일 시스템에 대한 임의 접근은 없습니다. 악의적인 코드, 데이터 탈취, 선언되지 않은 외부 통신 또는 무단 데이터 수집/전송의 징후는 발견되지 않았습니다. 특히 한국어 PII 감지 및 CSV 인젝션 방지 기능은 보안 측면에서 긍정적인 요소입니다. 코드 품질이 우수하며 스킬의 목적과 기능 설명에 완벽하게 부합합니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-04-29 ⬇ 1

사용 예시 (Examples) 5 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

validate_success
# validate# success# korean

유효한 CSV 검증 성공 예시 / Successful validation of a valid CSV

📥 입력
{
  "action": "validate",
  "csv_content": "\uc774\ub984,\uc774\uba54\uc77c,\ub098\uc774\n\ud64d\uae38\ub3d9,hong@example.com,30\n\uae40\ucca0\uc218,kim@example.com,25",
  "delimiter": ",",
  "has_header": true,
  "schema": {
    "columns": [
      {
        "max": 10,
        "min": 2,
        "name": "\uc774\ub984",
        "required": true,
        "type": "string"
      },
      {
        "name": "\uc774\uba54\uc77c",
        "required": true,
        "type": "email"
      },
      {
        "max": 150,
        "min": 0,
        "name": "\ub098\uc774",
        "required": true,
        "type": "integer"
      }
    ]
  }
}
📤 출력
{
  "action": "validate",
  "error_count": 0,
  "errors": [],
  "total_rows": 2,
  "valid": true
}
validate_failure_multi
# validate# failure# multi-error# korean

여러 오류가 있는 CSV 검증 실패 / Validation failure with multiple errors

📥 입력
{
  "action": "validate",
  "csv_content": "name,email,age\n\ud64d\uae38\ub3d9,not-an-email,200\n,,25",
  "delimiter": ",",
  "has_header": true,
  "schema": {
    "columns": [
      {
        "name": "name",
        "required": true,
        "type": "string"
      },
      {
        "name": "email",
        "required": true,
        "type": "email"
      },
      {
        "max": 150,
        "min": 0,
        "name": "age",
        "required": true,
        "type": "integer"
      }
    ]
  }
}
📤 출력
{
  "action": "validate",
  "error_count": 3,
  "errors": [
    {
      "code": "TYPE_EMAIL",
      "column": "email",
      "fix_hint": "user@domain.tld \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc138\uc694 / Use user@domain.tld format",
      "message": "[email] \uc774\uba54\uc77c \ud615\uc2dd\uc774 \uc544\ub2d9\ub2c8\ub2e4: \u0027not-an-email\u0027 / Invalid email format",
      "row": 1
    },
    {
      "code": "RANGE_ABOVE_MAX",
      "column": "age",
      "fix_hint": "\ucd5c\ub313\uac12 150 \uc774\ud558\uc758 \uac12\uc744 \uc785\ub825\ud558\uc138\uc694 / Enter a value \u003c= 150",
      "message": "[age] \uac12\uc774 \ucd5c\ub313\uac12\ubcf4\ub2e4 \ud07d\ub2c8\ub2e4: 200 \u003e 150 / Value above maximum",
      "row": 1
    },
    {
      "code": "REQUIRED",
      "column": "name",
      "fix_hint": "\ud574\ub2f9 \ud589\uc5d0 \uc720\ud6a8\ud55c \uac12\uc744 \uc785\ub825\ud558\uc138\uc694 / Provide a non-empty value for this field",
      "message": "[name] \ud544\uc218 \uceec\ub7fc\uc778\ub370 \uac12\uc774 \ube44\uc5b4 \uc788\uc2b5\ub2c8\ub2e4 / Required column is empty",
      "row": 2
    }
  ],
  "total_rows": 2,
  "valid": false
}
infer_schema_basic
# infer_schema# korean

CSV에서 자동 스키마 추론 / Auto-infer schema from CSV

📥 입력
{
  "action": "infer_schema",
  "csv_content": "\uc0c1\ud488\ucf54\ub4dc,\uac00\uaca9,\ub4f1\ub85d\uc77c,\ub2f4\ub2f9\uc790\uc774\uba54\uc77c\nA001,15000,2024-01-15,manager@corp.com\nB002,32000,2024-03-22,sales@corp.com",
  "delimiter": ",",
  "has_header": true
}
📤 출력
{
  "action": "infer_schema",
  "confidence": "low",
  "sample_count": 2,
  "schema": {
    "columns": [
      {
        "name": "\uc0c1\ud488\ucf54\ub4dc",
        "required": true,
        "type": "string"
      },
      {
        "max": 32000,
        "min": 15000,
        "name": "\uac00\uaca9",
        "required": true,
        "type": "integer"
      },
      {
        "name": "\ub4f1\ub85d\uc77c",
        "required": true,
        "type": "date"
      },
      {
        "name": "\ub2f4\ub2f9\uc790\uc774\uba54\uc77c",
        "required": true,
        "type": "email"
      }
    ]
  }
}
audit_clean
# audit# clean# korean

위생 이슈 없는 깨끗한 CSV 감사 결과 / Audit result for a clean CSV

📥 입력
{
  "action": "audit",
  "csv_content": "id,name,phone\n1,\ud64d\uae38\ub3d9,010-1234-5678\n2,\uae40\uc601\ud76c,010-9876-5432",
  "delimiter": ",",
  "has_header": true
}
📤 출력
{
  "action": "audit",
  "issues": [],
  "score": 100,
  "total_columns": 3,
  "total_rows": 2
}
audit_security_issues
# audit# security# csv-injection# korean-pii# rrn

CSV 인젝션 + 주민번호 평문 감지 / Detect CSV injection and plain Korean RRN

📥 입력
{
  "action": "audit",
  "csv_content": "\uc774\ub984,\uc8fc\ubbfc\ubc88\ud638,\uba54\ubaa8\n\ud64d\uae38\ub3d9,901225-1234567,=CMD|\u0027/C calc\u0027!A0\n\uae40\ucca0\uc218,800101-2345678,\uc815\uc0c1",
  "delimiter": ",",
  "has_header": true
}
📤 출력
{
  "action": "audit",
  "issues": [
    {
      "category": "SEC",
      "fix_hint": "\uc140 \uac12\uc744 \uc30d\ub530\uc634\ud45c\ub85c \uac10\uc2f8\uace0 \uc55e\uc5d0 \uc791\uc740\ub530\uc634\ud45c(\u0027)\ub97c \ucd94\uac00\ud558\uc138\uc694 / Prefix with apostrophe",
      "location": "row:1,col:\uba54\ubaa8",
      "message": "\ud589 1 [\uba54\ubaa8] CSV \uc778\uc81d\uc158 \uc704\ud5d8 \ud328\ud134 \uac10\uc9c0: \u0027=CMD|\u0027/C calc\u0027!A0\u0027 / CSV injection risk",
      "rule": "SEC-001",
      "severity": "error"
    },
    {
      "category": "SEC",
      "fix_hint": "\ub4b7 7\uc790\ub9ac\ub97c \ub9c8\uc2a4\ud0b9\ud558\uc138\uc694 (\uc608: 901225-1******) / Mask last 7 digits",
      "location": "row:1,col:\uc8fc\ubbfc\ubc88\ud638",
      "message": "\ud589 1 [\uc8fc\ubbfc\ubc88\ud638] \uc8fc\ubbfc\ubc88\ud638 \ud3c9\ubb38 \uac10\uc9c0 \u2014 \uac1c\uc778\uc815\ubcf4\ubcf4\ud638\ubc95 \uc704\ubc18 \uac00\ub2a5 / Plain Korean RRN detected",
      "rule": "SEC-002",
      "severity": "error"
    },
    {
      "category": "SEC",
      "fix_hint": "\ub4b7 7\uc790\ub9ac\ub97c \ub9c8\uc2a4\ud0b9\ud558\uc138\uc694 (\uc608: 800101-2******) / Mask last 7 digits",
      "location": "row:2,col:\uc8fc\ubbfc\ubc88\ud638",
      "message": "\ud589 2 [\uc8fc\ubbfc\ubc88\ud638] \uc8fc\ubbfc\ubc88\ud638 \ud3c9\ubb38 \uac10\uc9c0 \u2014 \uac1c\uc778\uc815\ubcf4\ubcf4\ud638\ubc95 \uc704\ubc18 \uac00\ub2a5 / Plain Korean RRN detected",
      "rule": "SEC-002",
      "severity": "error"
    }
  ],
  "score": 70,
  "total_columns": 3,
  "total_rows": 2
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/7a17d623-538d-4fc2-a939-2b13cdfc93e9/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성