← 스킬 목록으로 돌아가기

csv-data-validator

v1.0.0 approved Data Processing 오늘 업데이트
✅ Verified
⬇ 다운로드 설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o csv-data-validator.skill   "https://aiskillstore.io/v1/agent/skills/06f1c9e5-5d73-46ed-a807-72ebcabc628a/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "06f1c9e5-5d73-46ed-a807-72ebcabc628a",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

CSV/TSV data validation toolkit — schema inference, type checking, null detection, duplicate detection, and quality reports (stdlib only)

# csv # data-validation # data-quality # tsv # etl # data-pipeline

기본 정보

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

설치 방법

호환 플랫폼: any

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

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)", '정보: spec: usk/1.0 미선언 — v2 패키지로 처리됩니다. 자동 변환 및 에이전트 검색 기능을 사용하려면 USK v3로 업그레이드하세요.']

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

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 CSV/TSV 데이터 유효성 검사 스킬로, 엄격한 보안 권한 선언과 정적 분석 결과에 따라 안전하다고 판단됩니다.
판단 근거

1. **선언된 permissions과 실제 코드 일치 여부**: 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명확하게 선언되어 있습니다. 이는 스킬이 외부 네트워크 통신, 파일 시스템 접근, 외부 프로세스 실행을 하지 않음을 의미합니다. `extended_description`에서 'Python stdlib csv module only — no pandas, no external dependencies'라고 명시하여 이러한 제한을 더욱 강조합니다. 정적 분석 결과(`status: approved`, `red_flags_found: []`) 또한 이러한 선언과 일치함을 시사합니다. 2. **악의적 목적의 코드 여부**: 정적 분석 결과 `red_flags_found: []` 및 `obfuscation_warnings: []`로 악의적인 코드나 난독화가 발견되지 않았습니다. 선언된 권한 제한(`network: false`, `filesystem: false`, `subprocess: false`)으로 인해 데이터 탈취나 시스템 파괴와 같은 악의적인 행위는 사실상 불가능합니다. 3. **선언되지 않은 외부 통신 여부**: `network: false` 선언과 정적 분석 결과에 따라 선언되지 않은 외부 통신은 없을 것으로 판단됩니다. 4. **사용자 데이터 무단 수집/전송 여부**: `csv_content`를 `stdin`으로 받아 처리하고 `stdout`으로 결과를 반환하는 `stdin_stdout` 호출 패턴을 사용하며, 네트워크 및 파일 시스템 접근이 차단되어 사용자 데이터를 무단으로 수집하거나 전송할 수 없습니다. 5. **코드 품질 및 목적 일치 여부**: 스킬의 목적(CSV/TSV 데이터 유효성 검사)이 명확하며, 입력/출력 스키마, 기능, 예시가 상세하게 정의되어 있습니다. 'stdlib only' 사용은 코드의 견고성과 최소한의 의존성을 시사하며, 이는 스킬의 목적에 부합하는 좋은 품질의 구현을 기대하게 합니다. 제공된 정보(메타데이터 및 정적 분석 결과)만으로는 실제 코드를 직접 검토할 수 없지만, 메타데이터의 명확한 보안 선언과 자동화된 정적 분석 결과가 모두 긍정적이므로 이 스킬은 안전하다고 판단됩니다.

버전 히스토리

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

사용 예시 (Examples) 7 개

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

infer_schema — type detection
# schema# inference# types

Auto-detect column types from CSV header + data rows

📥 입력
{
  "action": "infer_schema",
  "csv_content": "id,name,age,salary,joined,active\n1,Alice,30,75000.50,2020-01-15,true\n2,Bob,25,55000.00,2021-06-01,false\n3,Carol,35,95000.75,2019-03-20,true"
}
📤 출력
{
  "action": "infer_schema",
  "ok": true,
  "result": {
    "column_count": 6,
    "delimiter_detected": ",",
    "row_count": 3,
    "schema": {
      "active": "bool",
      "age": "int",
      "id": "int",
      "joined": "date",
      "name": "string",
      "salary": "float"
    }
  }
}
validate_types — check against schema
# validation# types# violations

Validate CSV against a user-provided schema, report violations

📥 입력
{
  "action": "validate_types",
  "csv_content": "id,name,age\n1,Alice,30\n2,Bob,twenty\n3,Carol,35",
  "schema": {
    "age": "int",
    "id": "int",
    "name": "string"
  }
}
📤 출력
{
  "action": "validate_types",
  "ok": true,
  "result": {
    "total_rows": 3,
    "valid": false,
    "valid_rows": 2,
    "violation_count": 1,
    "violations": [
      {
        "column": "age",
        "expected_type": "int",
        "message": "Cannot parse \u0027twenty\u0027 as int",
        "row": 3,
        "value": "twenty"
      }
    ]
  }
}
detect_nulls — find empty and whitespace cells
# nulls# empty# quality

Detect null/empty/whitespace-only values per column

📥 입력
{
  "action": "detect_nulls",
  "csv_content": "id,name,email\n1,Alice,alice@example.com\n2,,bob@example.com\n3,Carol,\n4,Dave,  "
}
📤 출력
{
  "action": "detect_nulls",
  "ok": true,
  "result": {
    "columns_with_nulls": [
      "name",
      "email"
    ],
    "null_summary": {
      "email": {
        "null_count": 2,
        "null_ratio": 0.5,
        "null_rows": [
          3,
          4
        ]
      },
      "id": {
        "null_count": 0,
        "null_ratio": 0.0,
        "null_rows": []
      },
      "name": {
        "null_count": 1,
        "null_ratio": 0.25,
        "null_rows": [
          2
        ]
      }
    },
    "total_nulls": 3,
    "total_rows": 4
  }
}
detect_duplicates — find duplicate rows
# duplicates# deduplication# keys

Detect duplicate rows using all columns or key columns

📥 입력
{
  "action": "detect_duplicates",
  "csv_content": "id,name,email\n1,Alice,alice@example.com\n2,Bob,bob@example.com\n1,Alice,alice@example.com\n3,Carol,carol@example.com",
  "key_columns": [
    "id",
    "email"
  ]
}
📤 출력
{
  "action": "detect_duplicates",
  "ok": true,
  "result": {
    "duplicate_count": 1,
    "duplicates": [
      {
        "count": 2,
        "key_values": {
          "email": "alice@example.com",
          "id": "1"
        },
        "row_indices": [
          1,
          3
        ]
      }
    ],
    "total_duplicate_rows": 2,
    "total_rows": 4,
    "unique_rows": 3
  }
}
generate_report — full quality report
# report# quality# comprehensive

Generate a comprehensive data quality report

📥 입력
{
  "action": "generate_report",
  "csv_content": "id,name,age,email\n1,Alice,30,alice@example.com\n2,,25,bob@example.com\n3,Carol,thirty,carol@example.com\n1,Alice,30,alice@example.com"
}
📤 출력
{
  "action": "generate_report",
  "ok": true,
  "result": {
    "duplicate_issues": {
      "duplicate_groups": 1,
      "total_duplicate_rows": 2
    },
    "null_issues": {
      "columns_with_nulls": [
        "name"
      ],
      "total_nulls": 1
    },
    "quality_score": 62,
    "recommendations": [
      "Column \u0027name\u0027 has 25.0% null values",
      "1 duplicate row groups detected",
      "Column \u0027age\u0027 has mixed types"
    ],
    "schema_inferred": {
      "age": "string",
      "email": "string",
      "id": "int",
      "name": "string"
    },
    "summary": {
      "delimiter": ",",
      "encoding_hint": "utf-8",
      "total_columns": 4,
      "total_rows": 4
    },
    "type_consistency": {
      "age": {
        "consistent": false,
        "inconsistent_count": 1
      },
      "id": {
        "consistent": true
      }
    }
  }
}
TSV input support
# tsv# tab-delimited

Auto-detect tab delimiter

📥 입력
{
  "action": "infer_schema",
  "csv_content": "id\tname\tage\n1\tAlice\t30\n2\tBob\t25"
}
📤 출력
{
  "action": "infer_schema",
  "ok": true,
  "result": {
    "delimiter_detected": "\t",
    "schema": {
      "age": "int",
      "id": "int",
      "name": "string"
    }
  }
}
error — missing csv_content
# error

Returns error when csv_content is absent

📥 입력
{
  "action": "infer_schema"
}
📤 출력
{
  "error": {
    "code": "MISSING_FIELD",
    "message": "Field \u0027csv_content\u0027 is required"
  },
  "ok": false
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/06f1c9e5-5d73-46ed-a807-72ebcabc628a/schema

리뷰 & 평점

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

✍️ 리뷰 작성