← 스킬 목록으로 돌아가기

unicode-normalizer

v1.0.0 approved Encoding ⬇ 657 ↑ 8/7일 5개월 전
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o unicode-normalizer.skill   "https://aiskillstore.io/v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "f3d4aef9-2ef4-4b74-853f-7392d057cb82",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

Unicode text normalizer with 5 actions: normalize, detect, korean_jamo, width_convert, audit. Zero external dependencies, Korean jamo decompose/combine, fullwidth conversion, zalgo/homoglyph security audit.

# unicode # normalization # korean # encoding # security # jamo # fullwidth # zalgo # homoglyph # text-processing

기본 정보

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

⚡ AGENT INFO USK v3

Capabilities
unicode_normalization korean_jamo_processing fullwidth_halfwidth_conversion unicode_security_audit encoding_form_detection
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=OpenClaw GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=ClaudeCode GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=Cursor GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=GeminiCLI GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=CodexCLI GET /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

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

보안 검증 보고서

검증 결과 APPROVED

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

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

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 유니코드 텍스트 정규화 및 보안 감사를 수행하는 안전하고 독립적인 스킬입니다.
판단 근거

제공된 스킬 메타데이터와 코드 파일(main.py, lib/*.py)을 분석하고 정적 분석 결과를 검토했습니다. 다음은 각 검수 기준에 대한 판단입니다. 1. **선언된 permissions(network/filesystem/subprocess)과 실제 코드가 일치하는가?** * 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명시되어 있습니다. * 코드 검토 결과, `requests`, `urllib`, `socket` 등 네트워크 관련 모듈 사용이 없습니다. * `open()`, `shutil` 등 파일 시스템에 직접 접근하거나 수정하는 코드가 없습니다. `os.path` 및 `sys.path` 사용은 Python 모듈 로딩을 위한 표준적인 방식으로, 일반적인 파일 시스템 접근으로 간주하지 않습니다. * `subprocess.run()`, `os.system()` 등 외부 프로세스를 실행하는 코드가 없습니다. * `sys.stdin`과 `sys.stdout`을 통한 입출력은 `call_pattern: stdin_stdout`에 명시된 대로 동작하며, 이는 선언된 권한 범위 내입니다. * **결론: 선언된 권한과 실제 코드가 완벽하게 일치합니다.** 2. **악의적 목적의 코드가 있는가? (데이터 탈취, 시스템 파괴, 난독화 등)** * 코드는 유니코드 정규화, 자모 처리, 전각/반각 변환, 보안 감사 등 명확하게 정의된 텍스트 처리 기능을 수행합니다. * 데이터를 외부로 전송하거나 저장하는 기능이 없으므로 데이터 탈취 위험이 없습니다. * 시스템 파일을 수정하거나 삭제하는 등의 파괴적인 동작이 없습니다. * 정적 분석 결과에서도 난독화 경고가 없었으며, 코드 자체도 가독성이 높고 명확합니다. * **결론: 악의적인 목적의 코드는 발견되지 않았습니다.** 3. **선언되지 않은 외부 통신이 있는가?** * 코드 내에서 외부 네트워크 통신을 시도하는 어떠한 흔적도 발견되지 않았습니다. * **결론: 선언되지 않은 외부 통신은 없습니다.** 4. **사용자 데이터를 무단으로 수집하거나 전송하는가?** * 스킬은 `stdin`으로 받은 텍스트를 처리하여 `stdout`으로 결과를 반환하는 방식으로 동작합니다. 처리 과정에서 사용자 데이터를 영구적으로 저장하거나, 외부로 전송하는 기능은 없습니다. * **결론: 사용자 데이터를 무단으로 수집하거나 전송하지 않습니다.** 5. **코드 품질이 스킬의 목적과 일치하는가?** * 코드는 `lib` 디렉토리 아래 기능별로 잘 분리되어 있으며, 각 모듈과 함수는 명확한 목적을 가지고 있습니다. * `unicodedata` 모듈을 제외하고는 Python 표준 라이브러리만을 사용하여 'Zero external dependencies'라는 설명과 일치합니다. * 입력 유효성 검사(`_validate_input`)가 잘 구현되어 있어 안정적인 동작을 기대할 수 있습니다. * 각 기능은 스킬의 설명과 메타데이터에 명시된 `capabilities`를 충실히 구현하고 있습니다. * **결론: 코드 품질은 매우 높으며 스킬의 목적과 완벽하게 일치합니다.** **정적 분석 결과:** * `status: approved`, `red_flags_found: []`, `obfuscation_warnings: []`, `forbidden_exec_files_found: []`로, 자동화된 보안 검사에서도 어떠한 문제도 발견되지 않았습니다. 이는 수동 검토 결과와 일치합니다. 종합적으로 판단할 때, 이 스킬은 안전하며 명시된 기능을 충실히 수행하는 고품질의 유틸리티입니다. 어떠한 보안 위험 요소도 발견되지 않았으므로 즉시 공개 가능합니다.

버전 히스토리

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

사용 예시 (Examples) 7 개

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

normalize_nfc
# normalize# NFC# korean

텍스트를 NFC 형식으로 정규화 / Normalize text to NFC form

📥 입력
{
  "action": "normalize",
  "operations": [],
  "target_form": "NFC",
  "text": "\ud55c\uad6d\uc5b4 \ud14d\uc2a4\ud2b8 ABC"
}
📤 출력
{
  "action": "normalize",
  "changes_made": [
    {
      "count": 0,
      "operation": "form_normalization_NFC"
    }
  ],
  "normalized": "\ud55c\uad6d\uc5b4 \ud14d\uc2a4\ud2b8 ABC",
  "normalized_length": 10,
  "original_length": 10
}
normalize_nfkc_fullwidth
# normalize# NFKC# fullwidth# korean

전각 문자가 포함된 텍스트를 NFKC로 정규화 + 전각→반각 변환 / Normalize fullwidth text with NFKC and fullwidth_to_halfwidth

📥 입력
{
  "action": "normalize",
  "operations": [
    "fullwidth_to_halfwidth"
  ],
  "target_form": "NFKC",
  "text": "\uff21\uff22\uff23\uff11\uff12\uff13 \ud55c\uad6d\uc5b4"
}
📤 출력
{
  "action": "normalize",
  "changes_made": [
    {
      "count": 6,
      "operation": "form_normalization_NFKC"
    },
    {
      "count": 6,
      "operation": "fullwidth_to_halfwidth"
    }
  ],
  "normalized": "ABC123 \ud55c\uad6d\uc5b4",
  "normalized_length": 9,
  "original_length": 9
}
detect_mixed
# detect# NFC# korean

혼합 유니코드 형식 감지 / Detect mixed Unicode normalization forms

📥 입력
{
  "action": "detect",
  "text": "caf\u00e9 r\u00e9sum\u00e9 \ud55c\uad6d\uc5b4"
}
📤 출력
{
  "action": "detect",
  "confidence": "high",
  "detected_form": "NFC",
  "has_fullwidth": false,
  "has_korean": true,
  "has_zalgo": false
}
korean_jamo_decompose
# korean_jamo# decompose# korean

한국어 음절을 자모로 분리 / Decompose Korean syllables into jamo

📥 입력
{
  "action": "korean_jamo",
  "mode": "decompose",
  "text": "\ud55c\uad6d"
}
📤 출력
{
  "action": "korean_jamo",
  "jamo_breakdown": [
    {
      "jamo": "\u314e\u314f\u3134",
      "syllable": "\ud55c"
    },
    {
      "jamo": "\u3131\u315c\u3131",
      "syllable": "\uad6d"
    }
  ],
  "result": "\u314e\u314f\u3134\u3131\u315c\u3131",
  "syllables_processed": 2
}
korean_jamo_combine
# korean_jamo# combine# korean# roundtrip

자모를 한국어 음절로 결합 / Combine jamo into Korean syllables

📥 입력
{
  "action": "korean_jamo",
  "mode": "combine",
  "text": "\u314e\u314f\u3134\u3131\u315c\u3131"
}
📤 출력
{
  "action": "korean_jamo",
  "jamo_breakdown": [],
  "result": "\ud55c\uad6d",
  "syllables_processed": 2
}
width_convert_fullwidth
# width_convert# fullwidth# halfwidth

전각 알파벳/숫자를 반각으로 변환 / Convert fullwidth ASCII to halfwidth

📥 입력
{
  "action": "width_convert",
  "direction": "fullwidth_to_halfwidth",
  "text": "\uff21\uff22\uff23\uff11\uff12\uff13\uff01\uff20\uff03"
}
📤 출력
{
  "action": "width_convert",
  "result": "ABC123!@#"
}
audit_zalgo_security
# audit# zalgo# security# SEC

Zalgo 공격 및 보안 이슈 위생 감사 / Audit text for zalgo attack and security issues

📥 입력
{
  "action": "audit",
  "text": "H\u0338\u0321\u0353\u0359\u0324\u0326\u0325\u0331\u034e\u032b\u0314\u033e\u0306\u0308\u035c\u035d\u00eb\u0336\u0324\u032a\u0330\u0356\u0325\u0301\u0360l\u0335\u0326\u0332\u031e\u0330\u0303\u034b\u0308\u0302\u0310\u0314\u0345l\u0338\u0320\u032f\u034e\u0316\u030e\u0307\u0303\u0305\u1ee1\u0338\u0359\u033c\u033a "
}
📤 출력
{
  "action": "audit",
  "fix_hint": {
    "apply_operations": [
      "remove_zero_width",
      "strip_control"
    ],
    "priority": "high",
    "reason": "Zalgo \ud328\ud134\uc73c\ub85c \uc778\ud55c \ubcf4\uc548 \uc704\ud5d8 / Security risk due to zalgo pattern",
    "recommended_form": "NFC"
  },
  "issues": [
    {
      "category": "SEC",
      "count": 1,
      "fix_hint": "unicodedata.normalize(\u0027NFC\u0027, text) \ud6c4 \uacb0\ud569 \ubb38\uc790 \uc81c\uac70 \uad8c\uc7a5 / Apply NFC normalization and strip excessive combining chars",
      "message": "Zalgo(\uc2dc\uac01\uc801 \uacf5\uaca9) \ud328\ud134 \uac10\uc9c0: \uacfc\ub3c4\ud55c \uacb0\ud569 \ubb38\uc790 / Zalgo text detected: excessive combining characters",
      "rule": "SEC-001",
      "severity": "error"
    }
  ],
  "score": 20
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/f3d4aef9-2ef4-4b74-853f-7392d057cb82/schema

리뷰 & 평점

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

✍️ 리뷰 작성