curl -L -o kr-phone-validator.skill "https://aiskillstore.io/v1/agent/skills/9929b22b-aa04-45b8-bb8f-ffdcb7ca431c/download?platform=ClaudeCode"
{
"tool": "download_skill",
"arguments": {
"skill_id": "9929b22b-aa04-45b8-bb8f-ffdcb7ca431c",
"platform": "ClaudeCode"
}
}
{
"mcpServers": {
"skill-store": {
"url": "https://aiskillstore.io/mcp/"
}
}
}
한국 전화번호 검증 및 분류: 통신사 추론(SKT/KT/LGU+/알뜰폰), 번호 종류 분류(휴대폰/지역/인터넷/대표/안심), 지역번호-시도 매핑, 가운데 자리 마스킹 기본 적용. Zero external dependencies. Korean phone number validator with carrier inference, type classification, regional code lookup, and masking.
호환 플랫폼: any
검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]
✅ 보안 위험 항목이 발견되지 않았습니다.
AI 검수 단계
제공된 스킬 메타데이터와 코드 파일(main.py), 정적 분석 결과를 종합적으로 검토했습니다. 1. **선언된 permissions과 실제 코드 일치 여부**: 스킬 메타데이터에서 `network`, `filesystem`, `subprocess` 권한이 모두 `false`로 선언되어 있습니다. 제공된 `main.py` 코드 스니펫에는 외부 네트워크 통신, 파일 시스템 접근, 서브프로세스 실행을 시도하는 코드가 전혀 발견되지 않았습니다. `sys.stdout.reconfigure`는 표준 출력 인코딩 설정으로, 파일 시스템 접근이나 서브프로세스 실행과는 무관합니다. 스킬 설명에도 'Zero external dependencies', 'No external network calls; stateless processing'이 명시되어 있어 선언된 권한과 실제 코드가 완벽하게 일치합니다. 2. **악의적 목적의 코드 여부**: 코드 스니펫은 전화번호 검증, 분류, 마스킹을 위한 순수한 로직으로 구성되어 있습니다. 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적의 코드는 발견되지 않았습니다. 정적 분석 결과에서도 `red_flags_found` 및 `obfuscation_warnings`가 비어 있어 이를 뒷받침합니다. 3. **선언되지 않은 외부 통신 여부**: `permissions.network`가 `false`로 명시되어 있으며, 코드 내에서 `requests`, `urllib` 등 외부 통신 라이브러리 사용이나 소켓 통신 시도는 발견되지 않았습니다. 스킬 설명 또한 외부 네트워크 호출이 없음을 강조합니다. 4. **사용자 데이터 무단 수집/전송 여부**: 스킬은 입력으로 받은 전화번호를 처리하고 결과를 표준 출력으로 반환하는 방식으로 동작합니다. 외부 통신이 없으므로 사용자 데이터를 무단으로 수집하거나 전송할 수 있는 경로가 없습니다. 또한, 개인정보 보호를 위해 마스킹 기능을 기본으로 제공하는 등 프라이버시를 고려한 설계가 돋보입니다. 5. **코드 품질 및 목적 일치 여부**: 스킬 메타데이터는 `input_schema`, `output_schema`, `examples` 등 매우 상세하고 명확하게 정의되어 있어 스킬의 기능과 사용법을 쉽게 이해할 수 있습니다. 코드 스니펫 또한 가독성이 좋고, 상수 정의 및 주석이 잘 되어 있어 코드 품질이 우수합니다. 스킬의 목적(한국 전화번호 검증 및 분류)에 충실하며, 안정적으로 동작할 것으로 예상됩니다. 결론적으로, 이 스킬은 보안상 위험 요소가 없으며, 선언된 정책과 코드 내용이 일관되어 안전하게 서비스에 공개될 수 있다고 판단합니다.
이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.
010 번호 유효성 검증 및 통신사 추론
{
"action": "validate",
"phone": "010-1234-5678"
}
{
"action": "validate",
"carrier": "SKT",
"is_fake": false,
"issues": [],
"masked": "010-****-5678",
"normalized": "010-1234-5678",
"phone_type": "mobile",
"valid": true
}
02 서울 지역번호 번호 검증 및 지역 조회
{
"action": "validate",
"phone": "02-123-4567"
}
{
"action": "validate",
"area_code": "02",
"is_fake": false,
"issues": [],
"masked": "02-***-4567",
"normalized": "02-123-4567",
"phone_type": "landline",
"region": "\uc11c\uc6b8\ud2b9\ubcc4\uc2dc",
"valid": true
}
대표번호(15XX) 분류
{
"action": "classify",
"phone": "1588-1234"
}
{
"action": "classify",
"is_fake": false,
"masked": "1588-****",
"normalized": "1588-1234",
"phone_type": "representative",
"valid": true
}
070 인터넷전화 번호 처리
{
"action": "lookup_region",
"phone": "070-7777-1234"
}
{
"action": "lookup_region",
"area_code": "070",
"normalized": "070-7777-1234",
"phone_type": "internet_phone",
"region": "\uc778\ud130\ub137\uc804\ud654 (\uc804\uad6d)",
"valid": true
}
번호 앞자리로 SKT/KT/LGU+/알뜰폰 추론
{
"action": "infer_carrier",
"phone": "010-5001-1234"
}
{
"action": "infer_carrier",
"carrier": "KT",
"normalized": "010-5001-1234",
"phone_type": "mobile",
"valid": true
}
전화번호 가운데 4자리 마스킹 (기본)
{
"action": "mask",
"phone": "031-987-6543"
}
{
"action": "mask",
"masked": "031-***-6543",
"normalized": "031-987-6543",
"phone_type": "landline",
"region": "\uacbd\uae30\ub3c4",
"valid": true
}
010-0000-0000 등 명백히 가짜인 패턴 감지
{
"action": "validate",
"phone": "010-0000-0000"
}
{
"action": "validate",
"is_fake": true,
"issues": [
{
"fix_hint": {
"action": "correct_input",
"field": "phone",
"reference": "https://aiskillstore.io/skills/kr-phone-validator",
"suggested_replacement": "\uc2e4\uc81c \uc0ac\uc6a9 \uc911\uc778 \ubc88\ud638\ub97c \uc785\ub825\ud558\uc138\uc694"
},
"message": "\uac00\uc9dc/\ud14c\uc2a4\ud2b8 \ubc88\ud638 \ud328\ud134\uc73c\ub85c \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4 / Detected as fake/test number pattern.",
"severity": "error"
}
],
"phone_type": "mobile",
"valid": false
}
여러 번호 동시 검증
{
"action": "validate",
"phones": [
"010-1234-5678",
"02-9999-9999",
"invalid-num"
]
}
{
"action": "validate",
"results": [
{
"masked": "010-****-5678",
"phone": "010-1234-5678",
"phone_type": "mobile",
"valid": true
},
{
"masked": "02-****-9999",
"phone": "02-9999-9999",
"phone_type": "landline",
"valid": true
},
{
"issues": [
{
"message": "\uc778\uc2dd\ud560 \uc218 \uc5c6\ub294 \uc804\ud654\ubc88\ud638 \ud615\uc2dd\uc785\ub2c8\ub2e4 / Unrecognized phone number format.",
"severity": "error"
}
],
"phone": "invalid-num",
"valid": false
}
]
}
허용되지 않은 액션 요청 시 에러 반환
{
"action": "unknown_action",
"phone": "010-1234-5678"
}
{
"error": {
"code": "UNKNOWN_ACTION",
"fix_hint": {
"action": "correct_input",
"field": "action",
"reference": "https://aiskillstore.io/skills/kr-phone-validator",
"suggested_replacement": "validate"
},
"message": "\uc54c \uc218 \uc5c6\ub294 \uc561\uc158: \u0027unknown_action\u0027. \ud5c8\uc6a9: [\u0027validate\u0027, \u0027classify\u0027, \u0027lookup_region\u0027, \u0027infer_carrier\u0027, \u0027mask\u0027] / Unknown action."
}
}
모든 예시는 에이전트 API로도 조회 가능:
/v1/agent/skills/9929b22b-aa04-45b8-bb8f-ffdcb7ca431c/schema
아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!