patent-block-diagram-refinelisted
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