{"id":"3c8b2ddf-c0ec-4d4a-b3f2-c94e419c5092","shortId":"rCya8R","kind":"skill","title":"korean-patent-diagram","tagline":"특허 명세서·출원서 내용을 입력받아 적합한 도면 유형을 자동 분석하고 PNG 파일로 생성하는 스킬. 플로우차트·블록도·상태도·그래프·공정도 지원. KIPO 규격 준수. 변리사·발명자용.","description":"<!-- 절대 경로는 install.sh가 자동 치환. 수동 편집 금지 -->\n\n# Patent Diagram Skill — 특허 도면 자동 생성\n\n## 스킬 시작 시 인사 (필수, 맨 처음 출력)\n\n──────────────────────────────────────────\n  SpeciAI 🇰🇷 국내 최초·최대 한국 법률 AI 허브\n  👉 https://discord.gg/3gYGuMcqgb\n  @kimlawtech 에게 피드백과 질문을 남겨주세요!\n──────────────────────────────────────────\n\n특허 도면 자동 생성 스킬입니다.\n명세서·청구항·아이디어를 입력하면 도면 유형을 분석해 PNG로 만들어 드립니다.\n\nPNG 저장 경로를 알려주세요.\n(엔터만 누르면 현재 디렉토리에 저장됩니다)\n\n  저장 경로: _______________\n\n그 다음 특허 내용을 입력해 주세요.\n(명세서 전문, 청구항, 발명 아이디어 등 자유롭게 붙여넣기)\n\n도면 유형을 직접 선택하려면 번호를 입력하세요:\n  1) 플로우차트 — SW·방법·알고리즘 특허\n  2) 블록도     — 전자·통신·시스템 특허\n  3) 상태도     — 제어·프로토콜·UI 특허\n  4) 그래프     — 성능 비교·실험 결과\n  5) 공정도     — 제조·화학·생산 공정\n\n## KIPO 도면 규격 (특허법 시행규칙 기준 — 반드시 준수)\n\n### 용지 및 여백\n\n| 항목 | 국내 출원 | PCT 국제출원 |\n|------|----------|-------------|\n| 용지 | A4 (210×297mm) | A4 (210×297mm) |\n| 상단 여백 | 40mm | 25mm |\n| 좌단 여백 | 25mm | 25mm |\n| 하단 여백 | 20mm | 10mm |\n| 우단 여백 | 20mm | 15mm |\n\n### 폰트 규격\n\n- **폰트**: 굴림체 우선 적용. 없으면 맑은고딕 → 나눔고딕 → DejaVu Sans 순으로 대체\n- **최소 글자 크기**: 3.2mm (약 9pt) — 2/3 축척 축소 후에도 식별 가능해야 함\n- **도면 내 텍스트**: 불필요한 문자 최소화. 꼭 필요한 명칭·부호만 기재\n\n### 선 및 도형 규격\n\n- **선 색상**: 짙은 흑색만 사용 (컬러 금지)\n- **선 굵기**: 0.5mm 기본 (외곽선), 0.35mm (보조선), 0.25mm (세부선)\n- **절단면**: 평행사선으로 표시\n- **해상도**: 300 DPI 이상\n\n### 참조부호 (도면 부호) 체계\n\n- 백 단위 체계 사용: 100번대(첫 번째 구성), 200번대(두 번째 구성) 등\n- 세부 구성요소: 110, 120, 130 / 210, 220, 230 형식\n- 명세서 전체에서 동일 부호 일관 사용\n- 부호는 도형 외부에 인출선(지시선)으로 연결\n\n### 도면 번호 표기\n\n- **기본 형식**: \"도 1\", \"도 2\" (우측 하단)\n- **면수 표기**: 우측 상단에 \"1/5\" 형식 (총 5면 중 1면)\n- PCT 출원 시 \"Fig. 1\" 병기 가능\n\n## 지원 도면 유형\n\n| 코드 | 유형 | 적합한 특허 |\n|------|------|------------|\n| `flowchart` | 플로우차트 | 소프트웨어, 방법 특허, 알고리즘 |\n| `block` | 블록도 | 전자, 통신, 시스템 특허 |\n| `state` | 상태도 | 제어 시스템, 프로토콜, UI 특허 |\n| `graph` | 그래프 | 성능 비교, 효과 수치, 실험 결과 |\n| `process` | 공정도 | 제조, 화학, 생산 공정 특허 |\n\n## 동작 순서\n\n### 1단계: 설정 수신\n\n저장 경로만 먼저 확인한다. 나머지는 기본값으로 진행하고 사용자가 요청 시 조정한다.\n\n```\nSAVE_PATH      = 입력값 or 현재 디렉토리 (첫 질문)\nDIAGRAM_NO     = \"도 1\" (기본값, 요청 시 변경)\nFONT_SIZE      = 9pt (기본값, 요청 시 변경)\nREF_START      = 100 (기본값, 요청 시 변경)\nFILING_TYPE    = \"K\" 국내출원 (기본값, PCT 필요 시 변경)\nMARGIN         = K이면 상40/좌25/하20/우20mm, P이면 상25/좌25/하10/우15mm\nTOTAL_PAGES    = 도면 생성 직전에 사용자에게 총 몇 개 생성할지 확인 후 확정\n```\n\n### 2단계: 입력 수신\n\n사용자가 아래 중 하나를 제공한다:\n- 특허명 + 간단한 발명 설명\n- 특허 청구항 (Claims)\n- 특허 명세서 전문 또는 일부\n- 도면 유형 직접 지정 + 구성 요소 설명\n\n### 3단계: 발명 분석 및 도면 유형 추천\n\n입력 내용을 분석해 아래 기준으로 도면 유형을 자동 선택한다.\n\n- \"방법\", \"단계\", \"절차\", \"처리\", \"알고리즘\", \"수행\", \"판단\" → `flowchart`\n- \"시스템\", \"장치\", \"모듈\", \"구성\", \"유닛\", \"인터페이스\", \"연결\" → `block`\n- \"상태\", \"전이\", \"이벤트\", \"조건\", \"모드\", \"전환\" → `state`\n- \"측정\", \"비교\", \"효율\", \"성능\", \"수치\", \"실험\", \"농도\", \"온도\" → `graph`\n- \"제조\", \"합성\", \"가공\", \"공정\", \"반응\", \"생산\", \"처리 단계\" → `process`\n\n복합 발명은 여러 도면 유형을 동시에 추천한다.\n\n### 4단계: 사용자 확인\n\n```\n[분석 결과]\n발명 유형: 소프트웨어 / 방법 특허\n추천 도면: 플로우차트 (flowchart)\n\n이 도면으로 생성할까요? (Y / 다른 유형 선택)\n  1) 플로우차트  2) 블록도  3) 상태도  4) 그래프  5) 공정도\n\n총 몇 개의 도면을 생성할 예정인가요? (기본: 1개)\n→ 입력값을 TOTAL_PAGES로 확정해 면수 표기(\"1/N\")에 반영한다.\n```\n\n### 5단계: 구성 요소 추출 및 참조부호 부여\n\n입력 내용에서 구성 요소를 추출하고 참조부호를 자동 부여한다.\n\n- **플로우차트**: 시작/종료, 처리 단계(S100, S200...), 판단 분기\n- **블록도**: 모듈명 + 참조부호(100, 200...), 신호 흐름 방향\n- **상태도**: 상태명 + 참조부호, 전이 조건, 초기/최종 상태\n- **그래프**: X축 변수·단위, Y축 변수·단위, 데이터 계열\n- **공정도**: 공정 단계명 + 참조부호, 입출력 물질, 조건값\n\n구성 요소가 불명확하면 추가 질문한다.\n\n### 6단계: PNG 생성\n\nPython 코드를 작성하고 Bash로 실행해 PNG를 생성한다.\n\n**공통 생성 규칙:**\n- 저장 경로: 1단계에서 확정한 SAVE_PATH 사용. 없으면 `mkdir -p`로 생성\n- 파일명: `{도면유형}_{순번:02d}.png`\n- 해상도: 300 DPI\n- 용지: A4 (8.27×11.69인치 세로 / 11.69×8.27인치 가로)\n- 여백: FILING_TYPE에 따라 MARGIN 적용\n- 색상: 흑백 전용\n- 폰트: 굴림체 우선, 없으면 맑은고딕 → 나눔고딕 → DejaVu Sans\n- 글자 크기: FONT_SIZE 값 사용 (최소 9pt 강제)\n- 선 굵기: 외곽 1.5pt / 보조 1.0pt\n- 도면 번호: 우측 하단 DIAGRAM_NO 표기\n- 면수: 우측 상단 \"1/N\" 형식 표기\n- 참조부호: REF_START 기준으로 부여, 인출선으로 도형 외부 연결\n\n**플로우차트 생성 규칙:**\n- 시작/종료: 타원\n- 처리: 사각형 (단계번호 S100, S200 병기)\n- 판단: 마름모\n- 화살표: 실선 단방향\n- 분기 레이블: \"예(Y)\" / \"아니오(N)\"\n\n**블록도 생성 규칙:**\n- 블록: 사각형 + 참조부호 우측 하단 표기\n- 연결: 실선 화살표 (단방향/양방향)\n- 외부 인터페이스: 점선 박스\n- 계층 구조 명확히 배치\n\n**상태도 생성 규칙:**\n- 상태: 원형 + 참조부호\n- 초기 상태: 이중 원\n- 최종 상태: 굵은 테두리 원\n- 전이: 화살표 + 조건 레이블\n\n**그래프 생성 규칙:**\n- 선 그래프 기본, 막대 그래프 선택 가능\n- 축 레이블 + 단위 필수\n- 범례 포함\n- 격자선 (alpha=0.3)\n- 흑백 선 스타일 구분: 실선/점선/일점쇄선\n\n**공정도 생성 규칙:**\n- 공정 단계: 사각형 + 참조부호\n- 입출력: 평행사변형\n- 조건/분기: 마름모\n- 흐름: 위→아래\n\n### 7단계: 결과 출력\n\n```\n[생성 완료]\n파일: {SAVE_PATH}/flowchart_01.png\n규격: A4 / 300 DPI / 흑백 / 굴림체\n여백: 국내출원 기준 (상40/좌25/하20/우20mm)\n참조부호: 100번대 적용\n\n추가 도면이 필요하면 말씀해 주세요.\n\n──────────────────────────────────────────\n  SpeciAI 🇰🇷 국내 최초·최대 한국 법률 AI 허브\n  특허·계약·노동·투자를 AI로 해결하는\n  창업자·변리사·변호사 커뮤니티입니다.\n\n  도면 품질 피드백, 기능 제안, 질문은\n  디스코드에서 @kimlawtech 에게 남겨주세요!\n  👉 https://discord.gg/3gYGuMcqgb\n──────────────────────────────────────────\n```\n\n## Python 폰트 설정 — 굴림체 우선\n\n모든 템플릿에 아래 함수를 공통 적용한다:\n\n```python\ndef set_patent_font():\n    import os\n    from matplotlib import font_manager\n    # 굴림체 우선 — KIPO 도면 표준 폰트\n    font_paths = [\n        'C:/Windows/Fonts/gulim.ttc',           # Windows 굴림체\n        '/System/Library/Fonts/Supplemental/AppleGothic.ttf',  # macOS 대체\n        '/System/Library/Fonts/AppleSDGothicNeo.ttc',          # macOS SD고딕\n        '/usr/share/fonts/truetype/nanum/NanumGothic.ttf',     # Linux 나눔고딕\n        'C:/Windows/Fonts/malgun.ttf',          # Windows 맑은고딕\n    ]\n    for fp in font_paths:\n        if os.path.exists(fp):\n            font_manager.fontManager.addfont(fp)\n            prop = font_manager.FontProperties(fname=fp)\n            matplotlib.rcParams['font.family'] = prop.get_name()\n            return prop.get_name()\n    matplotlib.rcParams['font.family'] = 'DejaVu Sans'\n    return 'DejaVu Sans'\n```\n\nmacOS에는 굴림체가 기본 내장되지 않으므로 Apple SD Gothic Neo로 대체한다. Windows 환경에서는 굴림체가 정확히 적용된다.\n\n## 도면별 Python 코드 템플릿\n\n### 공통 헤더 (모든 템플릿 상단에 포함)\n\n```python\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport matplotlib.patches as mpatches\nimport matplotlib.patheffects as pe\nimport os\n\ndef set_patent_font():\n    from matplotlib import font_manager\n    font_paths = [\n        'C:/Windows/Fonts/gulim.ttc',\n        '/System/Library/Fonts/Supplemental/AppleGothic.ttf',\n        '/System/Library/Fonts/AppleSDGothicNeo.ttc',\n        '/usr/share/fonts/truetype/nanum/NanumGothic.ttf',\n        'C:/Windows/Fonts/malgun.ttf',\n    ]\n    for fp in font_paths:\n        if os.path.exists(fp):\n            font_manager.fontManager.addfont(fp)\n            prop = font_manager.FontProperties(fname=fp)\n            matplotlib.rcParams['font.family'] = prop.get_name()\n            return\n    matplotlib.rcParams['font.family'] = 'DejaVu Sans'\n\nset_patent_font()\nmatplotlib.rcParams['axes.unicode_minus'] = False\n\n# ── 설정값 (사용자 입력 반영) ──\nFONT_SIZE   = 9        # 최소 9pt (KIPO 3.2mm 기준)\nDIAGRAM_NO  = '도 1'\nSAVE_PATH   = '.'      # 저장 경로\nTOTAL_PAGES = 1        # 전체 도면 수\nPAGE_NO     = 1        # 현재 도면 번호\nLINE_W      = 1.5      # 외곽선 굵기\nSUB_LINE_W  = 1.0      # 보조선 굵기\n```\n\n### 플로우차트 템플릿\n\n```python\n# [공통 헤더 삽입]\n\n# 국내출원 기준 여백 반영 A4\nfig, ax = plt.subplots(figsize=(8.27, 11.69))\nax.set_xlim(0, 10)\nax.set_ylim(0, 14)\nax.axis('off')\n\n# 여백 표시 (국내: 상40/좌25/하20/우20mm → 비율 변환)\nax.set_position([0.095, 0.068, 0.810, 0.864])\n\ndef ellipse(ax, x, y, w, h, text, fs=None):\n    fs = fs or FONT_SIZE\n    e = mpatches.Ellipse((x,y), w, h, lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(e)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')\n\ndef rect(ax, x, y, w, h, text, step=None, ref=None, fs=None):\n    fs = fs or FONT_SIZE\n    from matplotlib.patches import FancyBboxPatch\n    b = FancyBboxPatch((x-w/2, y-h/2), w, h, boxstyle=\"round,pad=0.05\",\n                       lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(b)\n    label = f\"{step}\\n{text}\" if step else text\n    ax.text(x, y, label, ha='center', va='center', fontsize=fs, multialignment='center')\n    if ref:\n        ax.text(x+w/2-0.05, y-h/2+0.05, str(ref), ha='right', va='bottom', fontsize=fs-2)\n\ndef diamond(ax, x, y, w, h, text, ref=None, fs=None):\n    fs = fs or FONT_SIZE\n    d = plt.Polygon([[x,y+h/2],[x+w/2,y],[x,y-h/2],[x-w/2,y]],\n                    lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(d)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs-1, multialignment='center')\n    if ref:\n        ax.text(x+w/2+0.05, y, str(ref), ha='left', va='center', fontsize=fs-2)\n\ndef arrow(ax, x1, y1, x2, y2, label='', lx=0.2, ly=0):\n    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),\n                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))\n    if label:\n        ax.text((x1+x2)/2+lx, (y1+y2)/2+ly, label, fontsize=FONT_SIZE-1.5)\n\ndef hline(ax, x1, y1, x2, y2):\n    ax.plot([x1,x2],[y1,y2],'k-', lw=LINE_W)\n\n# ===== 실제 노드와 화살표 코드 삽입 =====\n\n# 도면 번호 (우측 하단)\nax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)\n# 면수 표기 (우측 상단)\nax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)\n\nos.makedirs(SAVE_PATH, exist_ok=True)\nplt.savefig(f'{SAVE_PATH}/flowchart_{PAGE_NO:02d}.png', dpi=300,\n            bbox_inches='tight', facecolor='white', edgecolor='none')\nplt.close()\nprint(f'저장 완료: {SAVE_PATH}/flowchart_{PAGE_NO:02d}.png')\n```\n\n### 블록도 템플릿\n\n```python\n# [공통 헤더 삽입]\n\nfig, ax = plt.subplots(figsize=(11.69, 8.27))  # A4 가로\nax.set_xlim(0, 16)\nax.set_ylim(0, 10)\nax.axis('off')\nax.set_position([0.085, 0.068, 0.830, 0.864])\n\ndef block(ax, x, y, w, h, text, ref=None, fs=None, dashed=False):\n    fs = fs or FONT_SIZE\n    ls = '--' if dashed else '-'\n    b = plt.Rectangle((x-w/2, y-h/2), w, h, lw=LINE_W,\n                       edgecolor='black', facecolor='white', linestyle=ls)\n    ax.add_patch(b)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')\n    if ref:\n        ax.text(x+w/2-0.08, y-h/2+0.08, str(ref), ha='right', va='bottom', fontsize=fs-2)\n\ndef arrow(ax, x1, y1, x2, y2, label='', bidir=False):\n    style = '<->' if bidir else '->'\n    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),\n                arrowprops=dict(arrowstyle=style, color='black', lw=LINE_W))\n    if label:\n        mx, my = (x1+x2)/2, (y1+y2)/2\n        ax.text(mx, my+0.22, label, ha='center', fontsize=FONT_SIZE-1.5)\n\ndef leader_line(ax, x1, y1, x2, y2, ref):\n    ax.annotate(str(ref), xy=(x1,y1), xytext=(x2,y2),\n                fontsize=FONT_SIZE-1,\n                arrowprops=dict(arrowstyle='-', color='black', lw=SUB_LINE_W))\n\n# ===== 실제 블록과 화살표 코드 삽입 =====\n\nax.text(15.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)\nax.text(15.8, 9.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)\n\nos.makedirs(SAVE_PATH, exist_ok=True)\nplt.savefig(f'{SAVE_PATH}/block_{PAGE_NO:02d}.png', dpi=300,\n            bbox_inches='tight', facecolor='white', edgecolor='none')\nplt.close()\nprint(f'저장 완료: {SAVE_PATH}/block_{PAGE_NO:02d}.png')\n```\n\n### 상태도 템플릿\n\n```python\n# [공통 헤더 삽입]\n\nfig, ax = plt.subplots(figsize=(8.27, 11.69))\nax.set_xlim(0, 10)\nax.set_ylim(0, 14)\nax.axis('off')\nax.set_position([0.095, 0.068, 0.810, 0.864])\n\ndef state(ax, x, y, r, text, ref=None, initial=False, final=False, fs=None):\n    fs = fs or FONT_SIZE\n    c = plt.Circle((x,y), r, lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(c)\n    if initial:\n        ci = plt.Circle((x,y), r*0.82, lw=LINE_W, edgecolor='black', facecolor='white')\n        ax.add_patch(ci)\n    if final:\n        co = plt.Circle((x,y), r*1.18, lw=2.0, edgecolor='black', facecolor='none')\n        ax.add_patch(co)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')\n    if ref:\n        ax.text(x+r+0.08, y+r+0.08, str(ref), ha='left', va='bottom', fontsize=fs-2)\n\ndef trans(ax, x1, y1, x2, y2, label='', fs=None):\n    fs = fs or FONT_SIZE-1.5\n    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),\n                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))\n    if label:\n        ax.text((x1+x2)/2+0.2, (y1+y2)/2, label, fontsize=fs)\n\n# ===== 실제 상태와 전이 코드 삽입 =====\n\nax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)\nax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)\n\nos.makedirs(SAVE_PATH, exist_ok=True)\nplt.savefig(f'{SAVE_PATH}/state_{PAGE_NO:02d}.png', dpi=300,\n            bbox_inches='tight', facecolor='white', edgecolor='none')\nplt.close()\nprint(f'저장 완료: {SAVE_PATH}/state_{PAGE_NO:02d}.png')\n```\n\n### 그래프 템플릿\n\n```python\n# [공통 헤더 삽입]\n\nfig, ax = plt.subplots(figsize=(8.27, 5.83))\nax.set_position([0.095, 0.12, 0.810, 0.78])\n\n# 흑백 선 스타일 (컬러 금지)\nLINE_STYLES = ['-', '--', '-.', ':']\n\nax.set_xlabel('X축 레이블 (단위)', fontsize=FONT_SIZE)\nax.set_ylabel('Y축 레이블 (단위)', fontsize=FONT_SIZE)\nax.set_title('그래프 제목', fontsize=FONT_SIZE+1)\nax.grid(True, alpha=0.3, linewidth=0.5)\nax.tick_params(labelsize=FONT_SIZE-1)\n\n# ===== 실제 데이터와 플롯 코드 삽입 =====\n# 예:\n# import numpy as np\n# x = np.linspace(0, 10, 100)\n# ax.plot(x, y1, LINE_STYLES[0], color='black', lw=1.5, label='본 발명')\n# ax.plot(x, y2, LINE_STYLES[1], color='black', lw=1.5, label='비교예')\n# ax.legend(fontsize=FONT_SIZE-1)\n\nax.text(1.0, -0.12, DIAGRAM_NO, transform=ax.transAxes,\n        ha='right', va='top', fontsize=FONT_SIZE)\nax.text(1.0, 1.02, f'{PAGE_NO}/{TOTAL_PAGES}', transform=ax.transAxes,\n        ha='right', va='bottom', fontsize=FONT_SIZE-1)\n\nos.makedirs(SAVE_PATH, exist_ok=True)\nplt.savefig(f'{SAVE_PATH}/graph_{PAGE_NO:02d}.png', dpi=300,\n            bbox_inches='tight', facecolor='white', edgecolor='none')\nplt.close()\nprint(f'저장 완료: {SAVE_PATH}/graph_{PAGE_NO:02d}.png')\n```\n\n### 공정도 템플릿\n\n```python\n# [공통 헤더 삽입]\n\nfig, ax = plt.subplots(figsize=(8.27, 11.69))\nax.set_xlim(0, 10)\nax.set_ylim(0, 14)\nax.axis('off')\nax.set_position([0.095, 0.068, 0.810, 0.864])\n\ndef proc(ax, x, y, w, h, text, ref=None, fs=None):\n    fs = fs or FONT_SIZE\n    b = plt.Rectangle((x-w/2, y-h/2), w, h, lw=LINE_W,\n                       edgecolor='black', facecolor='white')\n    ax.add_patch(b)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')\n    if ref:\n        ax.text(x+w/2-0.05, y-h/2+0.05, str(ref), ha='right', va='bottom', fontsize=fs-2)\n\ndef io_para(ax, x, y, w, h, text, fs=None):\n    fs = fs or FONT_SIZE\n    off = 0.35\n    pts = [[x-w/2+off, y+h/2],[x+w/2+off, y+h/2],\n           [x+w/2-off, y-h/2],[x-w/2-off, y-h/2]]\n    p = plt.Polygon(pts, lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(p)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')\n\ndef cond(ax, x, y, w, h, text, ref=None, fs=None):\n    fs = fs or FONT_SIZE\n    d = plt.Polygon([[x,y+h/2],[x+w/2,y],[x,y-h/2],[x-w/2,y]],\n                    lw=LINE_W, edgecolor='black', facecolor='white')\n    ax.add_patch(d)\n    ax.text(x, y, text, ha='center', va='center', fontsize=fs-1, multialignment='center')\n    if ref:\n        ax.text(x+w/2+0.08, y, str(ref), ha='left', va='center', fontsize=fs-2)\n\ndef arrow(ax, x1, y1, x2, y2, label='', lx=0.2):\n    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),\n                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))\n    if label:\n        ax.text((x1+x2)/2+lx, (y1+y2)/2, label, fontsize=FONT_SIZE-1.5)\n\ndef sideline(ax, x1, y1, x2, y2):\n    ax.plot([x1,x2],[y1,y2],'k-', lw=LINE_W)\n\n# ===== 실제 공정 단계 코드 삽입 =====\n\nax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)\nax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)\n\nos.makedirs(SAVE_PATH, exist_ok=True)\nplt.savefig(f'{SAVE_PATH}/process_{PAGE_NO:02d}.png', dpi=300,\n            bbox_inches='tight', facecolor='white', edgecolor='none')\nplt.close()\nprint(f'저장 완료: {SAVE_PATH}/process_{PAGE_NO:02d}.png')\n```\n\n## 오류 처리\n\n| 오류 | 조치 |\n|------|------|\n| `ModuleNotFoundError: matplotlib` | `pip3 install matplotlib` 안내 |\n| 굴림체 없음 | macOS: Apple SD Gothic Neo 자동 대체 / Linux: 나눔고딕 |\n| 저장 경로 없음 | `mkdir -p`로 자동 생성 |\n| 글자 크기 9pt 미만 입력 | 9pt로 강제 상향 후 경고 출력 |\n| 구성요소 불명확 | 추가 질문 후 재시도 |\n\n## 금지 사항\n\n- 컬러 도면 생성 (KIPO 기준 위반)\n- 300 DPI 미만 저장\n- 도면 번호·면수 생략\n- 글자 크기 3.2mm(9pt) 미만\n- 구성요소 임의 추가/생략 (명세서에 없는 내용)\n- 여백 KIPO 기준 미달","tags":["korean","patent","diagram","kimlawtech","agent-skills","claude-code","claude-skill","flowchart","kipo","korean-law","legal-tech","matplotlib"],"capabilities":["skill","source-kimlawtech","skill-korean-patent-diagram","topic-agent-skills","topic-claude-code","topic-claude-skill","topic-flowchart","topic-kipo","topic-korean-law","topic-legal-tech","topic-matplotlib","topic-patent","topic-patent-diagram"],"categories":["korean-patent-diagram"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kimlawtech/korean-patent-diagram","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kimlawtech/korean-patent-diagram","source_repo":"https://github.com/kimlawtech/korean-patent-diagram","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 10 github stars · SKILL.md body (15,854 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T07:03:29.179Z","embedding":null,"createdAt":"2026-04-23T13:04:24.076Z","updatedAt":"2026-04-24T07:03:29.179Z","lastSeenAt":"2026-04-24T07:03:29.179Z","tsv":"'+0.05':1272,1345,2254 '+0.08':1590,1866,1869,2397 '+0.2':1916 '+0.22':1643 '+1':2040 '-0.12':2100 '-1':1337,1455,1672,1714,1955,2052,2097,2129,2389,2496 '-1.5':1398,1650,1894,2447 '-2':1281,1355,1599,1878,2263,2407 '/2':1221,1225,1271,1311,1315,1388,1392,1550,1554,1589,1636,1639,1915,1919,2216,2220,2253,2286,2300,2308,2363,2367,2438,2442 '/2-off':2304 '/3gygumcqgb':55,895 '/block_':1725,1746 '/flowchart_':1466,1487 '/flowchart_01.png':843 '/graph_':2140,2161 '/process_':2507,2528 '/state_':1966,1987 '/system/library/fonts/applesdgothicneo.ttc':934,1030 '/system/library/fonts/supplemental/applegothic.ttf':931,1029 '/usr/share/fonts/truetype/nanum/nanumgothic.ttf':937,1031 '/windows/fonts/gulim.ttc':928,1028 '/windows/fonts/malgun.ttf':941,1033 '0':1127,1131,1367,1508,1512,1765,1769,2065,2073,2180,2184 '0.05':1231 '0.068':1147,1519,1776,2191 '0.085':1518 '0.095':1146,1775,2006,2190 '0.12':2007 '0.2':1365,1426,1689,1930,2417,2471 '0.25':234 '0.3':812,2044 '0.35':231,2281 '0.5':227,2046 '0.78':2009 '0.810':1148,1777,2008,2192 '0.82':1821 '0.830':1520 '0.864':1149,1521,1778,2193 '02d':659,1469,1490,1728,1749,1969,1990,2143,2164,2510,2531 '1':107,289,308,379,543,1080,1087,1093,2086 '1.0':706,1105,2099,2113 '1.02':2114 '1.18':1839 '1.5':703,1099,2077,2090 '1/5':298 '1/n':567,718 '10':1128,1513,1766,2066,2181 '100':393,597,2067 '100번대':252,858 '10mm':171 '11.69':667,670,1124,1502,1762,2177 '110':263 '120':264 '13.8':1442,1942,2483 '130':265 '14':1132,1770,2185 '15.8':1688,1700 '15mm':175 '16':1509 '1개':560 '1단계':354 '1단계에서':646 '1면':303 '2':113,291,545 '2.0':1841 '2/3':196 '200':598 '200번대':256 '20mm':170,174 '210':155,158,266 '220':267 '230':268 '25mm':163,166,167 '297mm':156,159 '2단계':431 '3':119,547 '3.2':192,1074,2597 '300':241,662,846,1472,1731,1972,2146,2513,2587 '3단계':458 '4':125,549 '40mm':162 '4단계':522 '5':131,551 '5.83':2003 '5단계':570 '5면':301 '6단계':631 '7단계':835 '8.27':666,671,1123,1503,1761,2002,2176 '9':1070 '9.8':1425,1441,1701,1929,1941,2470,2482 '9pt':195,386,698,1072,2564,2599 '9pt로':2567 'a4':154,157,665,845,1118,1504 'agg':1001 'ai':51,871 'ai로':877 'alpha':811,2043 'appl':977,2546 'arrow':1357,1601,2409 'arrowprop':1375,1621,1673,1902,2425 'arrowstyl':1377,1623,1675,1904,2427 'ax':1120,1152,1195,1284,1358,1401,1499,1524,1602,1654,1758,1781,1881,1999,2173,2196,2267,2336,2410,2450 'ax.add':1178,1239,1324,1566,1811,1829,1846,2230,2319,2376 'ax.annotate':1368,1614,1660,1895,2418 'ax.axis':1133,1514,1771,2186 'ax.grid':2041 'ax.legend':2093 'ax.plot':1406,2068,2081,2455 'ax.set':1125,1129,1144,1506,1510,1516,1763,1767,1773,2004,2017,2025,2033,2178,2182,2188 'ax.text':1181,1251,1265,1327,1342,1385,1424,1440,1569,1583,1640,1687,1699,1849,1863,1912,1928,1940,2098,2112,2233,2247,2322,2379,2394,2435,2469,2481 'ax.tick':2047 'ax.transaxes':2104,2121 'axes.unicode':1061 'b':1216,1241,1545,1568,2211,2232 'bash로':637 'bbox':1473,1732,1973,2147,2514 'bidir':1608,1612 'black':1175,1236,1321,1379,1561,1626,1677,1808,1826,1843,1906,2075,2088,2227,2316,2373,2429 'block':324,489,1523 'bottom':1278,1432,1596,1695,1875,1936,2125,2260,2477 'boxstyl':1228 'c':927,940,1027,1032,1799,1813 'center':1186,1188,1192,1256,1258,1262,1332,1334,1339,1352,1574,1576,1580,1646,1854,1856,1860,2238,2240,2244,2327,2329,2333,2384,2386,2391,2404 'ci':1816,1831 'claim':445 'co':1834,1848 'color':1378,1625,1676,1905,2074,2087,2428 'cond':2335 'd':1299,1326,2351,2378 'dash':1534,1543 'def':908,1016,1150,1193,1282,1356,1399,1522,1600,1651,1779,1879,2194,2264,2334,2408,2448 'dejavu':185,689,967,970,1055 'diagram':4,31,376,712,1077,1427,1690,1931,2101,2472 'diamond':1283 'dict':1376,1622,1674,1903,2426 'discord.gg':54,894 'discord.gg/3gygumcqgb':53,893 'dpi':242,663,847,1471,1730,1971,2145,2512,2588 'e':1165,1180 'edgecolor':1174,1235,1320,1478,1560,1737,1807,1825,1842,1978,2152,2226,2315,2372,2519 'ellips':1151 'els':1249,1544,1613 'exist':1459,1718,1959,2133,2500 'f':1243,1443,1463,1482,1702,1722,1741,1943,1963,1982,2115,2137,2156,2484,2504,2523 'facecolor':1176,1237,1322,1476,1562,1735,1809,1827,1844,1976,2150,2228,2317,2374,2517 'fals':1063,1535,1609,1789,1791 'fancybboxpatch':1215,1217 'fig':307,1119,1498,1757,1998,2172 'figsiz':1122,1501,1760,2001,2175 'file':398,675 'final':1790,1833 'flowchart':318,481,535 'fname':956,1046 'font':384,693,911,917,925,947,1019,1023,1025,1037,1059,1068,1163,1210,1297,1396,1434,1453,1539,1648,1670,1697,1712,1797,1892,1938,1953,2023,2031,2038,2050,2095,2110,2127,2209,2278,2349,2445,2479,2494 'font.family':959,966,1049,1054 'font_manager.fontmanager.addfont':952,1042 'font_manager.fontproperties':955,1045 'fontsiz':1189,1259,1279,1335,1353,1395,1433,1452,1577,1597,1647,1669,1696,1711,1857,1876,1921,1937,1952,2022,2030,2037,2094,2109,2126,2241,2261,2330,2387,2405,2444,2478,2493 'fp':945,951,953,957,1035,1041,1043,1047 'fs':1158,1160,1161,1190,1205,1207,1208,1260,1280,1292,1294,1295,1336,1354,1532,1536,1537,1578,1598,1792,1794,1795,1858,1877,1887,1889,1890,1922,2204,2206,2207,2242,2262,2273,2275,2276,2331,2344,2346,2347,2388,2406 'gothic':979,2548 'graph':337,505 'h':1156,1170,1199,1224,1227,1270,1288,1310,1528,1553,1556,1588,2200,2219,2222,2252,2271,2299,2307,2340,2362 'h/2':1303,2289,2294,2355 'ha':1185,1255,1275,1331,1349,1429,1448,1573,1593,1645,1692,1707,1853,1872,1933,1948,2105,2122,2237,2257,2326,2383,2401,2474,2489 'hline':1400 'import':912,916,998,1002,1006,1010,1014,1022,1214,2059 'inch':1474,1733,1974,2148,2515 'initi':1788,1815 'instal':2540 'io':2265 'k':400,1411,2460 'kimlawtech':56,890 'kipo':25,137,921,1073,2584,2609 'korean':2 'korean-patent-diagram':1 'k이면':408 'label':1242,1254,1363,1384,1394,1607,1631,1644,1886,1911,1920,2078,2091,2415,2434,2443 'labels':2049 'leader':1652 'left':1350,1873,2402 'line':1097,1103,1172,1233,1318,1381,1413,1558,1628,1653,1680,1805,1823,1908,2015,2071,2084,2224,2313,2370,2431,2462 'linestyl':1564 'linewidth':2045 'linux':938,2552 'ls':1541,1565 'lw':1171,1232,1317,1380,1412,1557,1627,1678,1804,1822,1840,1907,2076,2089,2223,2312,2369,2430,2461 'lx':1364,1389,2416,2439 'ly':1366,1393 'maco':932,935,2545 'macos에는':972 'manag':918,1024 'margin':407,678 'matplotlib':915,999,1021,2538,2541 'matplotlib.patches':1007,1213 'matplotlib.patheffects':1011 'matplotlib.pyplot':1003 'matplotlib.rcparams':958,965,1048,1053,1060 'matplotlib.use':1000 'minus':1062 'mkdir':652,2557 'mm':193,228,232,235,1075,2598 'modulenotfounderror':2537 'mpatch':1009 'mpatches.ellipse':1166 'multialign':1191,1261,1338,1579,1859,2243,2332,2390 'mx':1632,1641 'n':752,1245 'name':961,964,1051 'neo':2549 'neo로':980 'none':1159,1202,1204,1206,1291,1293,1479,1531,1533,1738,1787,1793,1845,1888,1979,2153,2203,2205,2274,2343,2345,2520 'np':2062 'np.linspace':2064 'numpi':2060 'ok':1460,1719,1960,2134,2501 'os':913,1015 'os.makedirs':1456,1715,1956,2130,2497 'os.path.exists':950,1040 'p':653,2309,2321,2558 'pad':1230 'page':419,1086,1091,1444,1447,1467,1488,1703,1706,1726,1747,1944,1947,1967,1988,2116,2119,2141,2162,2485,2488,2508,2529 'pages로':563 'para':2266 'param':2048 'patch':1179,1240,1325,1567,1812,1830,1847,2231,2320,2377 'patent':3,30,910,1018,1058 'path':369,649,842,926,948,1026,1038,1082,1458,1465,1486,1717,1724,1745,1958,1965,1986,2132,2139,2160,2499,2506,2527 'pct':151,304,403 'pe':1013 'pip3':2539 'plt':1005 'plt.circle':1800,1817,1835 'plt.close':1480,1739,1980,2154,2521 'plt.polygon':1300,2310,2352 'plt.rectangle':1546,2212 'plt.savefig':1462,1721,1962,2136,2503 'plt.subplots':1121,1500,1759,2000,2174 'png':15,76,632,660,1470,1491,1729,1750,1970,1991,2144,2165,2511,2532 'png로':73 'png를':639 'posit':1145,1517,1774,2005,2189 'print':1481,1740,1981,2155,2522 'proc':2195 'process':345,514 'prop':954,1044 'prop.get':960,963,1050 'pt':704,707 'pts':2282,2311 'python':634,896,907,988,997,1110,1494,1753,1994,2168 'p이면':413 'r':1784,1803,1820,1838,1865,1868 'rect':1194 'ref':391,722,1203,1264,1274,1290,1341,1348,1530,1582,1592,1659,1662,1786,1862,1871,2202,2246,2256,2342,2393,2400 'return':962,969,1052 'right':1276,1430,1449,1594,1693,1708,1934,1949,2106,2123,2258,2475,2490 'round':1229 's100':590,739 's200':591,740 'san':186,690,968,971,1056 'save':368,648,841,1081,1457,1464,1485,1716,1723,1744,1957,1964,1985,2131,2138,2159,2498,2505,2526 'sd':978,2547 'sd고딕':936 'set':909,1017,1057 'sidelin':2449 'size':385,694,1069,1164,1211,1298,1397,1435,1454,1540,1649,1671,1698,1713,1798,1893,1939,1954,2024,2032,2039,2051,2096,2111,2128,2210,2279,2350,2446,2480,2495 'skill':32 'skill-korean-patent-diagram' 'source-kimlawtech' 'speciai':45,865 'start':392,723 'state':330,496,1780 'step':1201,1244,1248 'str':1273,1347,1591,1661,1870,2255,2399 'style':1610,1624,2016,2072,2085 'sub':1102,1679 'sw':109 'text':1157,1184,1200,1246,1250,1289,1330,1529,1572,1785,1852,2201,2236,2272,2325,2341,2382 'tight':1475,1734,1975,2149,2516 'titl':2034 'top':1451,1710,1951,2108,2492 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skill' 'topic-flowchart' 'topic-kipo' 'topic-korean-law' 'topic-legal-tech' 'topic-matplotlib' 'topic-patent' 'topic-patent-diagram' 'total':418,562,1085,1446,1705,1946,2118,2487 'tran':1880 'transform':2103,2120 'true':1461,1720,1961,2042,2135,2502 'type':399 'type에':676 'ui':123,335 'va':1187,1257,1277,1333,1351,1431,1450,1575,1595,1694,1709,1855,1874,1935,1950,2107,2124,2239,2259,2328,2385,2403,2476,2491 'w':1098,1104,1155,1169,1173,1198,1220,1226,1234,1287,1314,1319,1382,1414,1527,1549,1555,1559,1629,1681,1806,1824,1909,2199,2215,2221,2225,2270,2285,2303,2314,2339,2366,2371,2432,2463 'w/2':1305,1344,2291,2357,2396 'w/2-0.05':1267,2249 'w/2-0.08':1585 'w/2-off':2296 'white':1177,1238,1323,1477,1563,1736,1810,1828,1977,2151,2229,2318,2375,2518 'window':929,942,982 'x':1153,1167,1182,1196,1219,1252,1266,1285,1301,1304,1307,1313,1328,1343,1525,1548,1570,1584,1782,1801,1818,1836,1850,1864,2063,2069,2082,2197,2214,2234,2248,2268,2284,2290,2295,2302,2323,2337,2353,2356,2359,2365,2380,2395 'x-w':1218,1312,1547,2213,2283,2301,2364 'x1':1359,1373,1386,1402,1407,1603,1619,1634,1655,1664,1882,1900,1913,2411,2423,2436,2451,2456 'x2':1361,1370,1387,1404,1408,1605,1616,1635,1657,1667,1884,1897,1914,2413,2420,2437,2453,2457 'xlabel':2018 'xlim':1126,1507,1764,2179 'xy':1369,1615,1663,1896,2419 'xytext':1372,1618,1666,1899,2422 'x축':611,2019 'y':539,750,1154,1168,1183,1197,1223,1253,1269,1286,1302,1306,1309,1316,1329,1346,1526,1552,1571,1587,1783,1802,1819,1837,1851,1867,2198,2218,2235,2251,2269,2288,2293,2298,2306,2324,2338,2354,2358,2361,2368,2381,2398 'y-h':1222,1268,1308,1551,1586,2217,2250,2297,2305,2360 'y1':1360,1374,1390,1403,1409,1604,1620,1637,1656,1665,1883,1901,1917,2070,2412,2424,2440,2452,2458 'y2':1362,1371,1391,1405,1410,1606,1617,1638,1658,1668,1885,1898,1918,2083,2414,2421,2441,2454,2459 'ylabel':2026 'ylim':1130,1511,1768,2183 'y축':614,2027 '가공':508 '가능':310,803 '가능해야':201 '가로':673,1505 '간단한':440 '값':695 '강제':699,2568 '개':426 '개의':555 '격자선':810 '결과':130,344,526,836 '경고':2571 '경로':86,645,1084,2555 '경로를':78 '경로만':358 '계약':874 '계열':618 '계층':771 '공정':136,350,509,620,823,2465 '공정도':23,132,346,552,619,820,2166 '공통':641,905,991,1111,1495,1754,1995,2169 '구분':816 '구성':255,259,455,485,571,579,626 '구성요소':262,2573,2601 '구조':772 '국내':46,149,866,1137 '국내출원':401,851,1114 '국제출원':152 '굴림체':179,684,849,899,919,930,2543 '굴림체가':973,984 '굵기':226,701,1101,1107 '굵은':787 '규격':26,139,177,217,844 '규칙':643,732,755,777,796,822 '그':87 '그래프':22,126,338,550,610,794,798,801,1992,2035 '글자':190,691,2562,2595 '금지':224,2014,2579 '기능':886 '기본':229,286,559,799,974 '기본값':380,387,394,402 '기본값으로':362 '기재':213 '기준':142,852,1076,1115,2585,2610 '기준으로':469,724 '꼭':209 '나눔고딕':184,688,939,2553 '나머지는':361 '남겨주세요':60,892 '내':204 '내용':2607 '내용에서':578 '내용을':8,90,466 '내장되지':975 '노동':875 '노드와':1416 '농도':503 '누르면':81 '다른':540 '다음':88 '단계':475,513,589,824,2466 '단계명':621 '단계번호':738 '단방향':746,765 '단위':249,613,616,806,2021,2029 '대체':188,933,2551 '대체한다':981 '데이터':617 '데이터와':2054 '도':288,290,378,1079 '도면':11,34,62,70,101,138,203,245,283,312,420,451,462,470,518,533,708,883,922,1089,1095,1420,2582,2591 '도면별':987 '도면유형':657 '도면으로':537 '도면을':556 '도면이':861 '도형':216,277,727 '동시에':520 '동일':272 '동작':352 '두':257 '드립니다':75 '등':98,260 '디렉토리':373 '디렉토리에':83 '디스코드에서':889 '따라':677 '또는':449 '레이블':748,793,805,2020,2028 '로':654,2559 '마름모':743,831 '막대':800 '만들어':74 '말씀해':863 '맑은고딕':183,687,943 '맨':42 '먼저':359 '면수':294,565,715,1436,2593 '명세서':6,66,93,270,447 '명세서에':2605 '명칭':211 '명확히':773 '몇':425,554 '모듈':484 '모듈명':595 '모드':494 '모든':901,993 '문자':207 '물질':624 '미달':2611 '미만':2565,2589,2600 '및':146,215,461,574 '박스':770 '반드시':143 '반영':1067,1117 '반영한다':569 '반응':510 '발명':96,441,459,527,2080 '발명은':516 '발명자용':29 '방법':110,321,474,530 '방향':601 '배치':774 '백':248 '번째':254,258 '번호':284,709,1096,1421,2592 '번호를':105 '범례':808 '법률':50,870 '변경':383,390,397,406 '변리사':28,880 '변수':612,615 '변호사':881 '변환':1143 '병기':309,741 '보조':705 '보조선':233,1106 '복합':515 '본':2079 '부여':576,725 '부여한다':584 '부호':246,273 '부호는':276 '부호만':212 '분기':593,747,830 '분석':460,525 '분석하고':14 '분석해':72,467 '불명확':2574 '불명확하면':628 '불필요한':206 '붙여넣기':100 '블록':756 '블록과':1683 '블록도':20,114,325,546,594,753,1492 '비교':128,340,498 '비교예':2092 '비율':1142 '사각형':737,757,825 '사용':222,251,275,650,696 '사용자':523,1065 '사용자가':364,434 '사용자에게':423 '사항':2580 '삽입':1113,1419,1497,1686,1756,1927,1997,2057,2171,2468 '상25':414 '상40':409,853,1138 '상단':160,717,1439 '상단에':297,995 '상태':490,609,778,782,786 '상태도':21,120,331,548,602,775,1751 '상태명':603 '상태와':1924 '상향':2569 '색상':219,680 '생략':2594,2604 '생산':135,349,511 '생성':36,64,421,633,642,655,731,754,776,795,821,838,2561,2583 '생성하는':17 '생성한다':640 '생성할':557 '생성할까요':538 '생성할지':427 '선':214,218,225,700,797,814,2011 '선택':542,802 '선택하려면':104 '선택한다':473 '설명':442,457 '설정':355,898 '설정값':1064 '성능':127,339,500 '세로':669 '세부':261 '세부선':236 '소프트웨어':320,529 '수':1090 '수신':356,433 '수치':342,501 '수행':479 '순번':658 '순서':353 '순으로':187 '스킬':18,37 '스킬입니다':65 '스타일':815,2012 '시':39,306,366,382,389,396,405 '시스템':117,328,333,482 '시작':38,586,733 '시행규칙':141 '식별':200 '신호':599 '실선':745,763,817 '실제':1415,1682,1923,2053,2464 '실행해':638 '실험':129,343,502 '아니오':751 '아래':435,468,834,903 '아이디어':97 '아이디어를':68 '안내':2542 '않으므로':976 '알고리즘':111,323,478 '알려주세요':79 '약':194 '양방향':766 '없는':2606 '없으면':182,651,686 '없음':2544,2556 '에':568 '에게':57,891 '엔터만':80 '여러':517 '여백':147,161,165,169,173,674,850,1116,1135,2608 '연결':282,488,729,762 '예':749,2058 '예정인가요':558 '오류':2533,2535 '온도':504 '완료':839,1484,1743,1984,2158,2525 '외곽':702 '외곽선':230,1100 '외부':728,767 '외부에':278 '요소':456,572 '요소가':627 '요소를':580 '요청':365,381,388,395 '용지':145,153,664 '우15mm':417 '우20mm':412,856,1141 '우단':172 '우선':180,685,900,920 '우측':292,296,710,716,759,1422,1438 '원':784,789 '원형':779 '위':833 '위반':2586 '유닛':486 '유형':313,315,452,463,528,541 '유형을':12,71,102,471,519 '으로':281 '이':536 '이벤트':492 '이상':243 '이중':783 '인사':40 '인출선':279 '인출선으로':726 '인치':668,672 '인터페이스':487,768 '일관':274 '일부':450 '일점쇄선':819 '임의':2602 '입력':432,465,577,1066,2566 '입력값':370 '입력값을':561 '입력받아':9 '입력하면':69 '입력하세요':106 '입력해':91 '입출력':623,827 '자동':13,35,63,472,583,2550,2560 '자유롭게':99 '작성하고':636 '장치':483 '재시도':2578 '저장':77,85,357,644,1083,1483,1742,1983,2157,2524,2554,2590 '저장됩니다':84 '적용':181,679,859 '적용된다':986 '적용한다':906 '적합한':10,316 '전문':94,448 '전용':682 '전이':491,605,790,1925 '전자':115,326 '전체':1088 '전체에서':271 '전환':495 '절단면':237 '절차':476 '점선':769,818 '정확히':985 '제공한다':438 '제목':2036 '제안':887 '제어':121,332 '제조':133,347,506 '조건':493,606,792,829 '조건값':625 '조정한다':367 '조치':2536 '종료':587,734 '좌25':410,415,854,1139 '좌단':164 '주세요':92,864 '준수':27,144 '중':302,436 '지시선':280 '지원':24,311 '지정':454 '직전에':422 '직접':103,453 '진행하고':363 '질문':375,2576 '질문은':888 '질문을':59 '질문한다':630 '짙은':220 '참조부호':244,575,596,604,622,721,758,780,826,857 '참조부호를':582 '창업자':879 '처리':477,512,588,736,2534 '처음':43 '첫':253,374 '청구항':67,95,444 '체계':247,250 '초기':607,781 '총':300,424,553 '최대':48,868 '최소':189,697,1071 '최소화':208 '최종':608,785 '최초':47,867 '추가':629,860,2575,2603 '추천':464,532 '추천한다':521 '추출':573 '추출하고':581 '축':804 '축소':198 '축척':197 '출력':44,837,2572 '출원':150,305 '출원서':7 '측정':497 '커뮤니티입니다':882 '컬러':223,2013,2581 '코드':314,989,1418,1685,1926,2056,2467 '코드를':635 '크기':191,692,2563,2596 '타원':735 '테두리':788 '텍스트':205 '템플릿':990,994,1109,1493,1752,1993,2167 '템플릿에':902 '통신':116,327 '투자를':876 '특허':5,33,61,89,112,118,124,317,322,329,336,351,443,446,531,873 '특허명':439 '특허법':140 '파일':840 '파일로':16 '파일명':656 '판단':480,592,742 '평행사변형':828 '평행사선으로':238 '포함':809,996 '폰트':176,178,683,897,924 '표기':285,295,566,714,720,761,1437 '표시':239,1136 '표준':923 '품질':884 '프로토콜':122,334 '플로우차트':19,108,319,534,544,585,730,1108 '플롯':2055 '피드백':885 '피드백과':58 '필수':41,807 '필요':404 '필요하면':862 '필요한':210 '하10':416 '하20':411,855,1140 '하나를':437 '하단':168,293,711,760,1423 '한국':49,869 '함':202 '함수를':904 '합성':507 '항목':148 '해결하는':878 '해상도':240,661 '허브':52,872 '헤더':992,1112,1496,1755,1996,2170 '현재':82,372,1094 '형식':269,287,299,719 '화살표':744,764,791,1417,1684 '화학':134,348 '확인':428,524 '확인한다':360 '확정':430 '확정한':647 '확정해':564 '환경에서는':983 '효과':341 '효율':499 '후':429,2570,2577 '후에도':199 '흐름':600,832 '흑백':681,813,848,2010 '흑색만':221","prices":[{"id":"52695351-170b-4dd0-b7cb-6366a05f1037","listingId":"3c8b2ddf-c0ec-4d4a-b3f2-c94e419c5092","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kimlawtech","category":"korean-patent-diagram","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:24.076Z"}],"sources":[{"listingId":"3c8b2ddf-c0ec-4d4a-b3f2-c94e419c5092","source":"github","sourceId":"kimlawtech/korean-patent-diagram","sourceUrl":"https://github.com/kimlawtech/korean-patent-diagram","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:24.076Z","lastSeenAt":"2026-04-24T07:03:29.179Z"}],"details":{"listingId":"3c8b2ddf-c0ec-4d4a-b3f2-c94e419c5092","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kimlawtech","slug":"korean-patent-diagram","github":{"repo":"kimlawtech/korean-patent-diagram","stars":10,"topics":["agent-skills","claude-code","claude-skill","flowchart","kipo","korean-law","legal-tech","matplotlib","patent","patent-diagram"],"license":"other","html_url":"https://github.com/kimlawtech/korean-patent-diagram","pushed_at":"2026-04-22T12:59:59Z","description":"특허 명세서를 입력하면 도면 유형을 자동 분석해 PNG로 생성하는 Claude Code 스킬. 플로우차트·블록도·상태도·그래프·공정도 지원. KIPO 규격(300 DPI, 흑백, A4) 준수.","skill_md_sha":"4c2be0944125766da581f660841f32a228d233f6","skill_md_path":"skill.md","default_branch":"main","skill_tree_url":"https://github.com/kimlawtech/korean-patent-diagram"},"layout":"root","source":"github","category":"korean-patent-diagram","frontmatter":{"name":"korean-patent-diagram","license":"Apache-2.0","description":"특허 명세서·출원서 내용을 입력받아 적합한 도면 유형을 자동 분석하고 PNG 파일로 생성하는 스킬. 플로우차트·블록도·상태도·그래프·공정도 지원. KIPO 규격 준수. 변리사·발명자용."},"skills_sh_url":"https://skills.sh/kimlawtech/korean-patent-diagram"},"updatedAt":"2026-04-24T07:03:29.179Z"}}