Skillquality 0.46

korean-patent-diagram

특허 명세서·출원서 내용을 입력받아 적합한 도면 유형을 자동 분석하고 PNG 파일로 생성하는 스킬. 플로우차트·블록도·상태도·그래프·공정도 지원. KIPO 규격 준수. 변리사·발명자용.

Price
free
Protocol
skill
Verified
no

What it does

<!-- 절대 경로는 install.sh가 자동 치환. 수동 편집 금지 -->

Patent Diagram Skill — 특허 도면 자동 생성

스킬 시작 시 인사 (필수, 맨 처음 출력)

────────────────────────────────────────── SpeciAI 🇰🇷 국내 최초·최대 한국 법률 AI 허브 👉 https://discord.gg/3gYGuMcqgb @kimlawtech 에게 피드백과 질문을 남겨주세요! ──────────────────────────────────────────

특허 도면 자동 생성 스킬입니다. 명세서·청구항·아이디어를 입력하면 도면 유형을 분석해 PNG로 만들어 드립니다.

PNG 저장 경로를 알려주세요. (엔터만 누르면 현재 디렉토리에 저장됩니다)

저장 경로: _______________

그 다음 특허 내용을 입력해 주세요. (명세서 전문, 청구항, 발명 아이디어 등 자유롭게 붙여넣기)

도면 유형을 직접 선택하려면 번호를 입력하세요:

  1. 플로우차트 — SW·방법·알고리즘 특허
  2. 블록도 — 전자·통신·시스템 특허
  3. 상태도 — 제어·프로토콜·UI 특허
  4. 그래프 — 성능 비교·실험 결과
  5. 공정도 — 제조·화학·생산 공정

KIPO 도면 규격 (특허법 시행규칙 기준 — 반드시 준수)

용지 및 여백

항목국내 출원PCT 국제출원
용지A4 (210×297mm)A4 (210×297mm)
상단 여백40mm25mm
좌단 여백25mm25mm
하단 여백20mm10mm
우단 여백20mm15mm

폰트 규격

  • 폰트: 굴림체 우선 적용. 없으면 맑은고딕 → 나눔고딕 → DejaVu Sans 순으로 대체
  • 최소 글자 크기: 3.2mm (약 9pt) — 2/3 축척 축소 후에도 식별 가능해야 함
  • 도면 내 텍스트: 불필요한 문자 최소화. 꼭 필요한 명칭·부호만 기재

선 및 도형 규격

  • 선 색상: 짙은 흑색만 사용 (컬러 금지)
  • 선 굵기: 0.5mm 기본 (외곽선), 0.35mm (보조선), 0.25mm (세부선)
  • 절단면: 평행사선으로 표시
  • 해상도: 300 DPI 이상

참조부호 (도면 부호) 체계

  • 백 단위 체계 사용: 100번대(첫 번째 구성), 200번대(두 번째 구성) 등
  • 세부 구성요소: 110, 120, 130 / 210, 220, 230 형식
  • 명세서 전체에서 동일 부호 일관 사용
  • 부호는 도형 외부에 인출선(지시선)으로 연결

도면 번호 표기

  • 기본 형식: "도 1", "도 2" (우측 하단)
  • 면수 표기: 우측 상단에 "1/5" 형식 (총 5면 중 1면)
  • PCT 출원 시 "Fig. 1" 병기 가능

지원 도면 유형

코드유형적합한 특허
flowchart플로우차트소프트웨어, 방법 특허, 알고리즘
block블록도전자, 통신, 시스템 특허
state상태도제어 시스템, 프로토콜, UI 특허
graph그래프성능 비교, 효과 수치, 실험 결과
process공정도제조, 화학, 생산 공정 특허

동작 순서

1단계: 설정 수신

저장 경로만 먼저 확인한다. 나머지는 기본값으로 진행하고 사용자가 요청 시 조정한다.

SAVE_PATH      = 입력값 or 현재 디렉토리 (첫 질문)
DIAGRAM_NO     = "도 1" (기본값, 요청 시 변경)
FONT_SIZE      = 9pt (기본값, 요청 시 변경)
REF_START      = 100 (기본값, 요청 시 변경)
FILING_TYPE    = "K" 국내출원 (기본값, PCT 필요 시 변경)
MARGIN         = K이면 상40/좌25/하20/우20mm, P이면 상25/좌25/하10/우15mm
TOTAL_PAGES    = 도면 생성 직전에 사용자에게 총 몇 개 생성할지 확인 후 확정

2단계: 입력 수신

사용자가 아래 중 하나를 제공한다:

  • 특허명 + 간단한 발명 설명
  • 특허 청구항 (Claims)
  • 특허 명세서 전문 또는 일부
  • 도면 유형 직접 지정 + 구성 요소 설명

3단계: 발명 분석 및 도면 유형 추천

입력 내용을 분석해 아래 기준으로 도면 유형을 자동 선택한다.

  • "방법", "단계", "절차", "처리", "알고리즘", "수행", "판단" → flowchart
  • "시스템", "장치", "모듈", "구성", "유닛", "인터페이스", "연결" → block
  • "상태", "전이", "이벤트", "조건", "모드", "전환" → state
  • "측정", "비교", "효율", "성능", "수치", "실험", "농도", "온도" → graph
  • "제조", "합성", "가공", "공정", "반응", "생산", "처리 단계" → process

복합 발명은 여러 도면 유형을 동시에 추천한다.

4단계: 사용자 확인

[분석 결과]
발명 유형: 소프트웨어 / 방법 특허
추천 도면: 플로우차트 (flowchart)

이 도면으로 생성할까요? (Y / 다른 유형 선택)
  1) 플로우차트  2) 블록도  3) 상태도  4) 그래프  5) 공정도

총 몇 개의 도면을 생성할 예정인가요? (기본: 1개)
→ 입력값을 TOTAL_PAGES로 확정해 면수 표기("1/N")에 반영한다.

5단계: 구성 요소 추출 및 참조부호 부여

입력 내용에서 구성 요소를 추출하고 참조부호를 자동 부여한다.

  • 플로우차트: 시작/종료, 처리 단계(S100, S200...), 판단 분기
  • 블록도: 모듈명 + 참조부호(100, 200...), 신호 흐름 방향
  • 상태도: 상태명 + 참조부호, 전이 조건, 초기/최종 상태
  • 그래프: X축 변수·단위, Y축 변수·단위, 데이터 계열
  • 공정도: 공정 단계명 + 참조부호, 입출력 물질, 조건값

구성 요소가 불명확하면 추가 질문한다.

6단계: PNG 생성

Python 코드를 작성하고 Bash로 실행해 PNG를 생성한다.

공통 생성 규칙:

  • 저장 경로: 1단계에서 확정한 SAVE_PATH 사용. 없으면 mkdir -p로 생성
  • 파일명: {도면유형}_{순번:02d}.png
  • 해상도: 300 DPI
  • 용지: A4 (8.27×11.69인치 세로 / 11.69×8.27인치 가로)
  • 여백: FILING_TYPE에 따라 MARGIN 적용
  • 색상: 흑백 전용
  • 폰트: 굴림체 우선, 없으면 맑은고딕 → 나눔고딕 → DejaVu Sans
  • 글자 크기: FONT_SIZE 값 사용 (최소 9pt 강제)
  • 선 굵기: 외곽 1.5pt / 보조 1.0pt
  • 도면 번호: 우측 하단 DIAGRAM_NO 표기
  • 면수: 우측 상단 "1/N" 형식 표기
  • 참조부호: REF_START 기준으로 부여, 인출선으로 도형 외부 연결

플로우차트 생성 규칙:

  • 시작/종료: 타원
  • 처리: 사각형 (단계번호 S100, S200 병기)
  • 판단: 마름모
  • 화살표: 실선 단방향
  • 분기 레이블: "예(Y)" / "아니오(N)"

블록도 생성 규칙:

  • 블록: 사각형 + 참조부호 우측 하단 표기
  • 연결: 실선 화살표 (단방향/양방향)
  • 외부 인터페이스: 점선 박스
  • 계층 구조 명확히 배치

상태도 생성 규칙:

  • 상태: 원형 + 참조부호
  • 초기 상태: 이중 원
  • 최종 상태: 굵은 테두리 원
  • 전이: 화살표 + 조건 레이블

그래프 생성 규칙:

  • 선 그래프 기본, 막대 그래프 선택 가능
  • 축 레이블 + 단위 필수
  • 범례 포함
  • 격자선 (alpha=0.3)
  • 흑백 선 스타일 구분: 실선/점선/일점쇄선

공정도 생성 규칙:

  • 공정 단계: 사각형 + 참조부호
  • 입출력: 평행사변형
  • 조건/분기: 마름모
  • 흐름: 위→아래

7단계: 결과 출력

[생성 완료]
파일: {SAVE_PATH}/flowchart_01.png
규격: A4 / 300 DPI / 흑백 / 굴림체
여백: 국내출원 기준 (상40/좌25/하20/우20mm)
참조부호: 100번대 적용

추가 도면이 필요하면 말씀해 주세요.

──────────────────────────────────────────
  SpeciAI 🇰🇷 국내 최초·최대 한국 법률 AI 허브
  특허·계약·노동·투자를 AI로 해결하는
  창업자·변리사·변호사 커뮤니티입니다.

  도면 품질 피드백, 기능 제안, 질문은
  디스코드에서 @kimlawtech 에게 남겨주세요!
  👉 https://discord.gg/3gYGuMcqgb
──────────────────────────────────────────

Python 폰트 설정 — 굴림체 우선

모든 템플릿에 아래 함수를 공통 적용한다:

def set_patent_font():
    import os
    from matplotlib import font_manager
    # 굴림체 우선 — KIPO 도면 표준 폰트
    font_paths = [
        'C:/Windows/Fonts/gulim.ttc',           # Windows 굴림체
        '/System/Library/Fonts/Supplemental/AppleGothic.ttf',  # macOS 대체
        '/System/Library/Fonts/AppleSDGothicNeo.ttc',          # macOS SD고딕
        '/usr/share/fonts/truetype/nanum/NanumGothic.ttf',     # Linux 나눔고딕
        'C:/Windows/Fonts/malgun.ttf',          # Windows 맑은고딕
    ]
    for fp in font_paths:
        if os.path.exists(fp):
            font_manager.fontManager.addfont(fp)
            prop = font_manager.FontProperties(fname=fp)
            matplotlib.rcParams['font.family'] = prop.get_name()
            return prop.get_name()
    matplotlib.rcParams['font.family'] = 'DejaVu Sans'
    return 'DejaVu Sans'

macOS에는 굴림체가 기본 내장되지 않으므로 Apple SD Gothic Neo로 대체한다. Windows 환경에서는 굴림체가 정확히 적용된다.

도면별 Python 코드 템플릿

공통 헤더 (모든 템플릿 상단에 포함)

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.patheffects as pe
import os

def set_patent_font():
    from matplotlib import font_manager
    font_paths = [
        'C:/Windows/Fonts/gulim.ttc',
        '/System/Library/Fonts/Supplemental/AppleGothic.ttf',
        '/System/Library/Fonts/AppleSDGothicNeo.ttc',
        '/usr/share/fonts/truetype/nanum/NanumGothic.ttf',
        'C:/Windows/Fonts/malgun.ttf',
    ]
    for fp in font_paths:
        if os.path.exists(fp):
            font_manager.fontManager.addfont(fp)
            prop = font_manager.FontProperties(fname=fp)
            matplotlib.rcParams['font.family'] = prop.get_name()
            return
    matplotlib.rcParams['font.family'] = 'DejaVu Sans'

set_patent_font()
matplotlib.rcParams['axes.unicode_minus'] = False

# ── 설정값 (사용자 입력 반영) ──
FONT_SIZE   = 9        # 최소 9pt (KIPO 3.2mm 기준)
DIAGRAM_NO  = '도 1'
SAVE_PATH   = '.'      # 저장 경로
TOTAL_PAGES = 1        # 전체 도면 수
PAGE_NO     = 1        # 현재 도면 번호
LINE_W      = 1.5      # 외곽선 굵기
SUB_LINE_W  = 1.0      # 보조선 굵기

플로우차트 템플릿

# [공통 헤더 삽입]

# 국내출원 기준 여백 반영 A4
fig, ax = plt.subplots(figsize=(8.27, 11.69))
ax.set_xlim(0, 10)
ax.set_ylim(0, 14)
ax.axis('off')

# 여백 표시 (국내: 상40/좌25/하20/우20mm → 비율 변환)
ax.set_position([0.095, 0.068, 0.810, 0.864])

def ellipse(ax, x, y, w, h, text, fs=None):
    fs = fs or FONT_SIZE
    e = mpatches.Ellipse((x,y), w, h, lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(e)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')

def rect(ax, x, y, w, h, text, step=None, ref=None, fs=None):
    fs = fs or FONT_SIZE
    from matplotlib.patches import FancyBboxPatch
    b = FancyBboxPatch((x-w/2, y-h/2), w, h, boxstyle="round,pad=0.05",
                       lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(b)
    label = f"{step}\n{text}" if step else text
    ax.text(x, y, label, ha='center', va='center', fontsize=fs, multialignment='center')
    if ref:
        ax.text(x+w/2-0.05, y-h/2+0.05, str(ref), ha='right', va='bottom', fontsize=fs-2)

def diamond(ax, x, y, w, h, text, ref=None, fs=None):
    fs = fs or FONT_SIZE
    d = plt.Polygon([[x,y+h/2],[x+w/2,y],[x,y-h/2],[x-w/2,y]],
                    lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(d)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs-1, multialignment='center')
    if ref:
        ax.text(x+w/2+0.05, y, str(ref), ha='left', va='center', fontsize=fs-2)

def arrow(ax, x1, y1, x2, y2, label='', lx=0.2, ly=0):
    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),
                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))
    if label:
        ax.text((x1+x2)/2+lx, (y1+y2)/2+ly, label, fontsize=FONT_SIZE-1.5)

def hline(ax, x1, y1, x2, y2):
    ax.plot([x1,x2],[y1,y2],'k-', lw=LINE_W)

# ===== 실제 노드와 화살표 코드 삽입 =====

# 도면 번호 (우측 하단)
ax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)
# 면수 표기 (우측 상단)
ax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)

os.makedirs(SAVE_PATH, exist_ok=True)
plt.savefig(f'{SAVE_PATH}/flowchart_{PAGE_NO:02d}.png', dpi=300,
            bbox_inches='tight', facecolor='white', edgecolor='none')
plt.close()
print(f'저장 완료: {SAVE_PATH}/flowchart_{PAGE_NO:02d}.png')

블록도 템플릿

# [공통 헤더 삽입]

fig, ax = plt.subplots(figsize=(11.69, 8.27))  # A4 가로
ax.set_xlim(0, 16)
ax.set_ylim(0, 10)
ax.axis('off')
ax.set_position([0.085, 0.068, 0.830, 0.864])

def block(ax, x, y, w, h, text, ref=None, fs=None, dashed=False):
    fs = fs or FONT_SIZE
    ls = '--' if dashed else '-'
    b = plt.Rectangle((x-w/2, y-h/2), w, h, lw=LINE_W,
                       edgecolor='black', facecolor='white', linestyle=ls)
    ax.add_patch(b)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')
    if ref:
        ax.text(x+w/2-0.08, y-h/2+0.08, str(ref), ha='right', va='bottom', fontsize=fs-2)

def arrow(ax, x1, y1, x2, y2, label='', bidir=False):
    style = '<->' if bidir else '->'
    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),
                arrowprops=dict(arrowstyle=style, color='black', lw=LINE_W))
    if label:
        mx, my = (x1+x2)/2, (y1+y2)/2
        ax.text(mx, my+0.22, label, ha='center', fontsize=FONT_SIZE-1.5)

def leader_line(ax, x1, y1, x2, y2, ref):
    ax.annotate(str(ref), xy=(x1,y1), xytext=(x2,y2),
                fontsize=FONT_SIZE-1,
                arrowprops=dict(arrowstyle='-', color='black', lw=SUB_LINE_W))

# ===== 실제 블록과 화살표 코드 삽입 =====

ax.text(15.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)
ax.text(15.8, 9.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)

os.makedirs(SAVE_PATH, exist_ok=True)
plt.savefig(f'{SAVE_PATH}/block_{PAGE_NO:02d}.png', dpi=300,
            bbox_inches='tight', facecolor='white', edgecolor='none')
plt.close()
print(f'저장 완료: {SAVE_PATH}/block_{PAGE_NO:02d}.png')

상태도 템플릿

# [공통 헤더 삽입]

fig, ax = plt.subplots(figsize=(8.27, 11.69))
ax.set_xlim(0, 10)
ax.set_ylim(0, 14)
ax.axis('off')
ax.set_position([0.095, 0.068, 0.810, 0.864])

def state(ax, x, y, r, text, ref=None, initial=False, final=False, fs=None):
    fs = fs or FONT_SIZE
    c = plt.Circle((x,y), r, lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(c)
    if initial:
        ci = plt.Circle((x,y), r*0.82, lw=LINE_W, edgecolor='black', facecolor='white')
        ax.add_patch(ci)
    if final:
        co = plt.Circle((x,y), r*1.18, lw=2.0, edgecolor='black', facecolor='none')
        ax.add_patch(co)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')
    if ref:
        ax.text(x+r+0.08, y+r+0.08, str(ref), ha='left', va='bottom', fontsize=fs-2)

def trans(ax, x1, y1, x2, y2, label='', fs=None):
    fs = fs or FONT_SIZE-1.5
    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),
                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))
    if label:
        ax.text((x1+x2)/2+0.2, (y1+y2)/2, label, fontsize=fs)

# ===== 실제 상태와 전이 코드 삽입 =====

ax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)
ax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)

os.makedirs(SAVE_PATH, exist_ok=True)
plt.savefig(f'{SAVE_PATH}/state_{PAGE_NO:02d}.png', dpi=300,
            bbox_inches='tight', facecolor='white', edgecolor='none')
plt.close()
print(f'저장 완료: {SAVE_PATH}/state_{PAGE_NO:02d}.png')

그래프 템플릿

# [공통 헤더 삽입]

fig, ax = plt.subplots(figsize=(8.27, 5.83))
ax.set_position([0.095, 0.12, 0.810, 0.78])

# 흑백 선 스타일 (컬러 금지)
LINE_STYLES = ['-', '--', '-.', ':']

ax.set_xlabel('X축 레이블 (단위)', fontsize=FONT_SIZE)
ax.set_ylabel('Y축 레이블 (단위)', fontsize=FONT_SIZE)
ax.set_title('그래프 제목', fontsize=FONT_SIZE+1)
ax.grid(True, alpha=0.3, linewidth=0.5)
ax.tick_params(labelsize=FONT_SIZE-1)

# ===== 실제 데이터와 플롯 코드 삽입 =====
# 예:
# import numpy as np
# x = np.linspace(0, 10, 100)
# ax.plot(x, y1, LINE_STYLES[0], color='black', lw=1.5, label='본 발명')
# ax.plot(x, y2, LINE_STYLES[1], color='black', lw=1.5, label='비교예')
# ax.legend(fontsize=FONT_SIZE-1)

ax.text(1.0, -0.12, DIAGRAM_NO, transform=ax.transAxes,
        ha='right', va='top', fontsize=FONT_SIZE)
ax.text(1.0, 1.02, f'{PAGE_NO}/{TOTAL_PAGES}', transform=ax.transAxes,
        ha='right', va='bottom', fontsize=FONT_SIZE-1)

os.makedirs(SAVE_PATH, exist_ok=True)
plt.savefig(f'{SAVE_PATH}/graph_{PAGE_NO:02d}.png', dpi=300,
            bbox_inches='tight', facecolor='white', edgecolor='none')
plt.close()
print(f'저장 완료: {SAVE_PATH}/graph_{PAGE_NO:02d}.png')

공정도 템플릿

# [공통 헤더 삽입]

fig, ax = plt.subplots(figsize=(8.27, 11.69))
ax.set_xlim(0, 10)
ax.set_ylim(0, 14)
ax.axis('off')
ax.set_position([0.095, 0.068, 0.810, 0.864])

def proc(ax, x, y, w, h, text, ref=None, fs=None):
    fs = fs or FONT_SIZE
    b = plt.Rectangle((x-w/2, y-h/2), w, h, lw=LINE_W,
                       edgecolor='black', facecolor='white')
    ax.add_patch(b)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')
    if ref:
        ax.text(x+w/2-0.05, y-h/2+0.05, str(ref), ha='right', va='bottom', fontsize=fs-2)

def io_para(ax, x, y, w, h, text, fs=None):
    fs = fs or FONT_SIZE
    off = 0.35
    pts = [[x-w/2+off, y+h/2],[x+w/2+off, y+h/2],
           [x+w/2-off, y-h/2],[x-w/2-off, y-h/2]]
    p = plt.Polygon(pts, lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(p)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs, multialignment='center')

def cond(ax, x, y, w, h, text, ref=None, fs=None):
    fs = fs or FONT_SIZE
    d = plt.Polygon([[x,y+h/2],[x+w/2,y],[x,y-h/2],[x-w/2,y]],
                    lw=LINE_W, edgecolor='black', facecolor='white')
    ax.add_patch(d)
    ax.text(x, y, text, ha='center', va='center', fontsize=fs-1, multialignment='center')
    if ref:
        ax.text(x+w/2+0.08, y, str(ref), ha='left', va='center', fontsize=fs-2)

def arrow(ax, x1, y1, x2, y2, label='', lx=0.2):
    ax.annotate('', xy=(x2,y2), xytext=(x1,y1),
                arrowprops=dict(arrowstyle='->', color='black', lw=LINE_W))
    if label:
        ax.text((x1+x2)/2+lx, (y1+y2)/2, label, fontsize=FONT_SIZE-1.5)

def sideline(ax, x1, y1, x2, y2):
    ax.plot([x1,x2],[y1,y2],'k-', lw=LINE_W)

# ===== 실제 공정 단계 코드 삽입 =====

ax.text(9.8, 0.2, DIAGRAM_NO, ha='right', va='bottom', fontsize=FONT_SIZE)
ax.text(9.8, 13.8, f'{PAGE_NO}/{TOTAL_PAGES}', ha='right', va='top', fontsize=FONT_SIZE-1)

os.makedirs(SAVE_PATH, exist_ok=True)
plt.savefig(f'{SAVE_PATH}/process_{PAGE_NO:02d}.png', dpi=300,
            bbox_inches='tight', facecolor='white', edgecolor='none')
plt.close()
print(f'저장 완료: {SAVE_PATH}/process_{PAGE_NO:02d}.png')

오류 처리

오류조치
ModuleNotFoundError: matplotlibpip3 install matplotlib 안내
굴림체 없음macOS: Apple SD Gothic Neo 자동 대체 / Linux: 나눔고딕
저장 경로 없음mkdir -p로 자동 생성
글자 크기 9pt 미만 입력9pt로 강제 상향 후 경고 출력
구성요소 불명확추가 질문 후 재시도

금지 사항

  • 컬러 도면 생성 (KIPO 기준 위반)
  • 300 DPI 미만 저장
  • 도면 번호·면수 생략
  • 글자 크기 3.2mm(9pt) 미만
  • 구성요소 임의 추가/생략 (명세서에 없는 내용)
  • 여백 KIPO 기준 미달

Capabilities

skillsource-kimlawtechskill-korean-patent-diagramtopic-agent-skillstopic-claude-codetopic-claude-skilltopic-flowcharttopic-kipotopic-korean-lawtopic-legal-techtopic-matplotlibtopic-patenttopic-patent-diagram

Install

Installnpx skills add kimlawtech/korean-patent-diagram
Transportskills-sh
Protocolskill

Quality

0.46/ 1.00

deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 10 github stars · SKILL.md body (15,854 chars)

Provenance

Indexed fromgithub
Enriched2026-04-24 07:03:29Z · deterministic:skill-github:v1 · v1
First seen2026-04-23
Last seen2026-04-24

Agent access

korean-patent-diagram — Clawmart · Clawmart