← 스킬 목록으로 돌아가기

unicode-normalizer

v1.0.0 approved Encoding ⬇ 7 ↑ 7/7일 오늘 업데이트
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 다운로드 수 7회 체크섬 (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 ⬇ 7

사용 예시 (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

리뷰 & 평점

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

✍️ 리뷰 작성