← ClaudeAtlas

patent-block-diagram-refinelisted

이미 존재하는 특허 도면 편집파일(.pbd)을 입력으로 받아 수정·정제하는 스킬. 새로 그리는 patent-block-diagram과 달리, 입력 .pbd에서 현재 스타일(fs·shape·부호 태그·레이아웃)을 먼저 자동 추출해 "하우스 스타일 스냅샷"을 만들고, 그 규약을 깨지 않는 선에서 박스 추가/삭제/ 문구변경, 단계 삽입, 분기 경로 변경, 카드 증설, 화살표 계단꺾임·관통 교정, 부호 재배치 같은 수정을 가한 뒤, 특허 블록도 에디터 앱에 주입해 렌더링·육안 검증하고 출원용 PNG까지 내보낸다. 부호를 바꾸는 수정이면 명세서 본문·부호의 설명과의 정합 위험을 함께 보고한다. "도면 수정해줘", "이 pbd 고쳐", "블록도 단계 추가", "흐름도 분기 바꿔", "도면 부호 정리", "화살표 정렬 교정", "도면 카드 늘려", "pbd refine", "도면 정제", "기존 도면 손봐", "도면_스타일가이드대로 수정" 같은 표현이 보이거나, 완성된 .pbd 세트를 부분 수정하려는 맥락에서 사용. (백지에서 새 도면 작도=patent-block-diagram, 기존 PNG에 부호만 얹기= kr-patent-drawing-tagging 은 별개.)
lsj4232/KR_PATENT_SKILL · ★ 15 · Data & Documents · score 78
Install: claude install-skill lsj4232/KR_PATENT_SKILL
# 특허 도면 정제 (.pbd 수정) ## 무엇을 하는가 완성된 `.pbd`(에디터 네이티브 JSON)를 입력으로 받아, **기존 스타일을 유지한 채** 부분 수정한다. 새로 그리는 게 아니라 고치는 작업이므로, 착수 전에 입력 파일의 현재 규약을 먼저 읽어 "이 도면이 지금 어떤 fs·shape·부호·간격을 쓰는지"를 스냅샷으로 확정하고, 수정은 그 스냅샷을 복제하는 방향으로만 한다. 임의로 새 값을 도입하지 않는다. **철칙: 렌더 없이 좌표만 믿지 않는다.** 수정 → CDP 포트로 렌더 → PNG를 Read로 육안 확인 → 보정. 최소 1회전, 실전에서 3회전까지 돈다. ## 입력 - 단일 `.pbd` 또는 도면 세트 폴더(`도면1.pbd` … `도면N.pbd`). - (있으면) 사건 폴더의 `도면_스타일가이드.md` — 부호 체계 SINGLE SOURCE. 없으면 pbd에서 추출. - (권장) 명세서 최신 `.docx` 경로 — 부호·단계명 정합 대조용. ## 앱·렌더 (patent-block-diagram과 공유) - 앱: `$APP_DIR` (Electron, 레포 동봉 소스 = `patent-block-diagram-app/`) - 렌더 스크립트: `~/.claude/skills/patent-block-diagram/scripts/render_pbd.mjs` - 작업용 실행(CDP): ```bash cd "$APP_DIR" && \ ./node_modules/.bin/electron.cmd . --remote-debugging-port=9222 \ --user-data-dir="$TMP/pbd-agent" > /dev/null 2>&1 & # 9초쯤 기다린 뒤 node "~/.claude/skills/patent-block-diagram/scripts/render_pbd.mjs" <입력.pbd> <출력.png> [scale] ``` ⚠️ `--user-data-dir` 없이 띄우거나 `taskkill` 로 electron 을 싹 죽이면 사용자가 편집 중인 창을 빼앗는다(단일 인스턴스 락이 userData 폴더 단위). 절대 하지 않는다. scale 2 = 검토용, 3 = 출원용. `.pbd` 스���마·화살표 라우팅 규칙은 patent-block-diagram `SKILL.md`가 단일 진실(중복 서술 안 함). 여기서는 **수정 워크플로우**만 규정한다. ## 작업 순서 ### 1. 스타일 스냅샷 추출 (수정 전 필수) 입력 `.pbd`(들)를 파싱해 아래를 표로 뽑는다. 이게 이번 수정의 준수 기준이 된다. ```bash python3 - <<'PY' import json,glob,os for f in sorted(glob.glob('*.pbd')): d=json.load(open(f,encoding='utf-8')) b=d.get('boxes',[]); a=d.get('arrows',[]); t=d.get('tags',[]) fss=sorted({x.get('fs