← 스킬 목록으로 돌아가기

regex-builder

v1.0.0 approved Development ⬇ 188 ↑ 10/7일 1개월 전
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o regex-builder.skill   "https://aiskillstore.io/v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "60bc9850-0a4c-4107-aa2a-4bdad21ceed8",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

자연어 설명으로 정규표현식을 생성하고, 테스트 케이스와 함께 설명을 제공합니다.

# regex # regular-expression # pattern-matching # developer-tools # korean # natural-language # security # audit # redos-safe

기본 정보

소유자 👤 Admin 카테고리 Development 등록일 2026-04-13 최종 업데이트 2026-04-26 최신 버전 1.0.0 패키지 날짜 2026-04-26 검증 상태 approved 다운로드 수 188회 체크섬 (SHA256) d2d3e382ca14afbadf79ca6c90106969b5363ba7d46af283a3f35118bca3ada4

⚡ AGENT INFO USK v3

Capabilities
regex_build_from_intent regex_test_with_timeout regex_explain_korean regex_audit_antipatterns regex_sample_generation
Permissions
✗ network
✗ filesystem
✓ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=OpenClaw GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=ClaudeCode GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=Cursor GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=GeminiCLI GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=CodexCLI GET /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

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

요구사항

보안 검증 보고서

검증 결과 APPROVED

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

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 정규식 관련 기능을 제공하는 스킬로, 선언된 권한 범위 내에서 안전하게 동작합니다.
판단 근거

스킬 메타데이터와 코드 파일을 상세히 검토했습니다. 1. **권한 일치 여부**: 메타데이터에 `network: false`, `filesystem: false`, `subprocess: true`로 선언되어 있습니다. 코드 분석 결과, `lib/tester.py`에서 ReDoS 공격 방어를 위해 `subprocess.run()`을 사용하여 Python 자체를 자식 프로세스로 실행하는 부분이 확인되었습니다. 이는 선언된 `subprocess: true` 권한과 일치하며, 외부 명령어를 실행하는 것이 아니라 제어된 내부 스크립트를 실행하므로 안전합니다. 네트워크 및 파일 시스템 접근은 확인되지 않았습니다. 2. **악의적 목적 코드**: 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적으로 의심될 만한 코드는 발견되지 않았습니다. 코드는 명확하고 스킬의 기능 구현에 집중되어 있습니다. 3. **선언되지 않은 외부 통신**: `network: false`로 선언되었으며, 코드 내에서 `requests`나 `urllib` 등 네트워크 통신을 위한 라이브러리 사용이나 외부 서버로의 데이터 전송 시도는 발견되지 않았습니다. 4. **사용자 데이터 무단 수집/전송**: 스킬은 표준 입력(stdin)으로 데이터를 받아 처리하고 표준 출력(stdout)으로 결과를 반환하는 CLI 방식으로 동작합니다. 사용자 데이터를 무단으로 수집하거나 외부로 전송하는 기능은 없습니다. 5. **코드 품질**: 코드는 Python 표준 라이브러리만을 사용하며, 각 모듈이 명확한 역할을 수행하도록 잘 분리되어 있습니다. 특히 `lib/tester.py`의 ReDoS 방어 로직과 `lib/sampler.py`의 `sre_parse`를 활용한 샘플 생성 로직은 스킬의 목적에 부합하는 견고한 구현으로 판단됩니다. 정적 분석 결과에서도 'approved' 및 'red_flags_found: []'로 보고되어 코드의 안전성을 뒷받침합니다. 종합적으로, 이 스킬은 선언된 권한 범위 내에서 안전하게 동작하며, 악의적인 요소나 보안 취약점이 발견되지 않았습니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-04-26 ⬇ 188 1.0.0: 최초 공개 — build/test/explain/audit/generate_samples 5종 액션, 30+ 카탈로그 패턴, 한국 친화 패턴 5+, ReDoS 방어, 외부 의존성 0, 한국어 1급
v1.0.0 official 2026-04-13 ⬇ 237 Initial release

사용 예시 (Examples) 8 개

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

자연어로 이메일 정규식 생성 (카탈로그 매칭)
# build# catalog# email

이메일 주소 패턴을 자연어로 요청하면 카탈로그에서 검증된 패턴을 반환합니다.

📥 입력
{
  "action": "build",
  "intent": "\uc774\uba54\uc77c \uc8fc\uc18c \uac80\uc99d",
  "language": "ko"
}
📤 출력
{
  "action": "build",
  "catalog_id": "email_address",
  "description_en": "Standard email address (RFC 5321 approximation)",
  "description_ko": "\ud45c\uc900 \uc774\uba54\uc77c \uc8fc\uc18c (RFC 5321 \uadfc\uc0ac)",
  "regex": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
  "regex_pcre": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
  "source": "catalog"
}
한국 휴대폰 번호 정규식 생성
# build# catalog# korean# phone

한국 휴대폰 번호 패턴을 요청합니다. 하이픈 유무 모두 허용.

📥 입력
{
  "action": "build",
  "intent": "\ud55c\uad6d \ud734\ub300\ud3f0 \ubc88\ud638",
  "language": "ko"
}
📤 출력
{
  "action": "build",
  "catalog_id": "kr_mobile_phone",
  "description_en": "Korean mobile phone number (010/011/016/017/018/019, optional hyphens)",
  "description_ko": "\ud55c\uad6d \ud734\ub300\ud3f0 \ubc88\ud638 (010/011/016/017/018/019, \ud558\uc774\ud508 \uc120\ud0dd)",
  "regex": "^01[016789]-?\\d{3,4}-?\\d{4}$",
  "regex_pcre": "^01[016789]-?\\d{3,4}-?\\d{4}$",
  "source": "catalog"
}
정규식 매치 테스트
# test# email# named-groups

이메일 정규식으로 여러 문자열을 테스트합니다. named group 결과 포함.

📥 입력
{
  "action": "test",
  "flags": {
    "ignorecase": false
  },
  "language": "ko",
  "regex": "^(?P\u003cuser\u003e[\\w.%+\\-]+)@(?P\u003cdomain\u003e[\\w.\\-]+\\.[a-zA-Z]{2,})$",
  "test_strings": [
    "user@example.com",
    "invalid-email",
    "admin@korea.co.kr"
  ]
}
📤 출력
{
  "action": "test",
  "regex": "^(?P\u003cuser\u003e[\\w.%+\\-]+)@(?P\u003cdomain\u003e[\\w.\\-]+\\.[a-zA-Z]{2,})$",
  "test_results": [
    {
      "all_matches": [
        "user@example.com"
      ],
      "groups": [
        "user",
        "example.com"
      ],
      "input": "user@example.com",
      "match_text": "user@example.com",
      "matched": true,
      "named_groups": {
        "domain": "example.com",
        "user": "user"
      }
    },
    {
      "all_matches": [],
      "groups": [],
      "input": "invalid-email",
      "match_text": null,
      "matched": false,
      "named_groups": {}
    },
    {
      "all_matches": [
        "admin@korea.co.kr"
      ],
      "groups": [
        "admin",
        "korea.co.kr"
      ],
      "input": "admin@korea.co.kr",
      "match_text": "admin@korea.co.kr",
      "matched": true,
      "named_groups": {
        "domain": "korea.co.kr",
        "user": "admin"
      }
    }
  ]
}
정규식 설명 (한국어)
# explain# korean# phone-format

정규식을 토큰 단위로 분해하고 한국어로 설명합니다.

📥 입력
{
  "action": "explain",
  "language": "ko",
  "regex": "\\d{3}-\\d{4}-\\d{4}"
}
📤 출력
{
  "action": "explain",
  "explanation": {
    "summary_en": "Matches 3 digits, hyphen, 4 digits, hyphen, 4 digits",
    "summary_ko": "\uc22b\uc790 3\uac1c, \ud558\uc774\ud508(-), \uc22b\uc790 4\uac1c, \ud558\uc774\ud508(-), \uc22b\uc790 4\uac1c \uc21c\uc11c\ub85c \ub9e4\uce58\ud558\ub294 \ud328\ud134",
    "tokens": [
      {
        "meaning_en": "Exactly 3 digits (0-9)",
        "meaning_ko": "\uc22b\uc790(0-9) \uc815\ud655\ud788 3\uac1c",
        "token": "\\d{3}"
      },
      {
        "meaning_en": "A literal hyphen character",
        "meaning_ko": "\ud558\uc774\ud508(-) \ubb38\uc790 1\uac1c",
        "token": "-"
      },
      {
        "meaning_en": "Exactly 4 digits (0-9)",
        "meaning_ko": "\uc22b\uc790(0-9) \uc815\ud655\ud788 4\uac1c",
        "token": "\\d{4}"
      },
      {
        "meaning_en": "A literal hyphen character",
        "meaning_ko": "\ud558\uc774\ud508(-) \ubb38\uc790 1\uac1c",
        "token": "-"
      },
      {
        "meaning_en": "Exactly 4 digits (0-9)",
        "meaning_ko": "\uc22b\uc790(0-9) \uc815\ud655\ud788 4\uac1c",
        "token": "\\d{4}"
      }
    ]
  },
  "regex": "\\d{3}-\\d{4}-\\d{4}"
}
정규식 감사 — 안전한 패턴
# audit# safe# email

잘 작성된 이메일 정규식을 감사하면 safe 등급을 반환합니다.

📥 입력
{
  "action": "audit",
  "language": "ko",
  "regex": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$"
}
📤 출력
{
  "action": "audit",
  "audit_result": {
    "findings": [
      {
        "category": "STR",
        "fix_hint": {
          "action": "add_named_groups",
          "original": "([a-zA-Z0-9._%+\\-]+)",
          "reference": "https://docs.python.org/3/library/re.html#re.Pattern.groupdict",
          "suggested": "(?P\u003cuser\u003e[a-zA-Z0-9._%+\\-]+)"
        },
        "message": "\uadf8\ub8f9\uc5d0 \uc774\ub984\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. (?P\u003cname\u003e...) \ud615\uc2dd\uc73c\ub85c \uba85\uba85\ud558\uba74 \uc5d0\uc774\uc804\ud2b8\uac00 \uacb0\uacfc\ub97c \uad6c\uc870\uc801\uc73c\ub85c \ucc38\uc870\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
        "rule_id": "STR004",
        "severity": "info",
        "title_en": "No named groups",
        "title_ko": "\uba85\uba85 \uadf8\ub8f9 \uc5c6\uc74c"
      }
    ],
    "passed": true,
    "risk_level": "safe",
    "score": 95
  },
  "regex": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$"
}
정규식 감사 — 안티패턴 다수 발견
# audit# redos# nested-quantifier# critical

중첩 quantifier(ReDoS 위험)와 anchor 누락을 가진 패턴을 감사합니다.

📥 입력
{
  "action": "audit",
  "language": "ko",
  "regex": "(a+)+"
}
📤 출력
{
  "action": "audit",
  "audit_result": {
    "findings": [
      {
        "category": "PERF",
        "fix_hint": {
          "action": "rewrite_pattern",
          "original": "(a+)+",
          "reference": "https://owasp.org/www-community/attacks/ReDoS",
          "suggested": "a+"
        },
        "message": "(a+)+ \ud328\ud134\uc740 Catastrophic Backtracking\uc744 \uc720\ubc1c\ud569\ub2c8\ub2e4. \uae34 \uc785\ub825\uc5d0\uc11c \uc9c0\uc218 \uc2dc\uac04 \ubcf5\uc7a1\ub3c4\ub85c DoS \uacf5\uaca9\uc5d0 \uc545\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
        "rule_id": "PERF001",
        "severity": "critical",
        "title_en": "Nested quantifier \u2014 catastrophic backtracking risk",
        "title_ko": "\uc911\ucca9 quantifier \u2014 Catastrophic Backtracking \uc704\ud5d8"
      },
      {
        "category": "STR",
        "fix_hint": {
          "action": "add_anchors",
          "original": "(a+)+",
          "reference": "https://docs.python.org/3/library/re.html",
          "suggested": "^(a+)+$"
        },
        "message": "^ \ub610\ub294 $ anchor\uac00 \uc5c6\uc5b4 \ubb38\uc790\uc5f4 \ub0b4 \ubd80\ubd84 \ub9e4\uce58\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
        "rule_id": "STR001",
        "severity": "medium",
        "title_en": "Missing anchors",
        "title_ko": "Anchor \ub204\ub77d"
      }
    ],
    "passed": false,
    "risk_level": "critical",
    "score": 10
  },
  "regex": "(a+)+"
}
샘플 문자열 생성
# generate_samples# phone-format

정규식이 매치하는 샘플 문자열 5개를 자동 생성합니다.

📥 입력
{
  "action": "generate_samples",
  "language": "ko",
  "regex": "\\d{3}-\\d{4}-\\d{4}"
}
📤 출력
{
  "action": "generate_samples",
  "regex": "\\d{3}-\\d{4}-\\d{4}",
  "samples": [
    "000-0000-0000",
    "123-4567-8901",
    "010-1234-5678",
    "999-1111-2222",
    "555-9876-5432"
  ]
}
에러 케이스 — 잘못된 정규식
# error# invalid_regex

유효하지 않은 정규식을 test 하면 INVALID_REGEX 에러를 반환합니다.

📥 입력
{
  "action": "test",
  "language": "ko",
  "regex": "[unclosed",
  "test_strings": [
    "hello"
  ]
}
📤 출력
{
  "error": {
    "code": "INVALID_REGEX",
    "message": "\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc815\uaddc\uc2dd\uc785\ub2c8\ub2e4: unterminated character set at position 0 / Invalid regex: unterminated character set at position 0"
  }
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/60bc9850-0a4c-4107-aa2a-4bdad21ceed8/schema

리뷰 & 평점

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

✍️ 리뷰 작성