Files
Aislo/resources/knowledge/original/_pipeline
eomsangdon 6d9863d658 docs(knowledge): 원가계산 PDF 3종 마크다운화·챕터 분할 (미결 18 신설 포함)
- 미결 No.18 신설: 사급 잡자재 단가 원천 결정(유료지) — 사용자 결정 대기
- 건협 노임: pdf2md + 4챕터 분할. 개별직종 노임단가 표는 pdf2md 실패로
  PDF 스트림 정밀 파싱 재구성 — 132직종 전수·4개 공표일 병기
- 중기중앙회 노임: pdf2md(표 정상) + 4챕터 분할 (129직종 표 포함)
- 건설공사 표준품셈(982p): pdf2md + 부문 5폴더/45장 전체 분할
  (공통8·토목9·건축11·기계설비13·유지관리4 — 목차 대조 전수 일치)
- 재사용 도구 _pipeline/split_cost_docs.py (cak|kbiz|pumsem 모드)
- 각 폴더 _meta.md에 변환 방법·한계(어절 공백·장 경계 ±1p) 기록
2026-08-14 17:29:25 +09:00
..

_pipeline — 법령·기준 수집·변환 스크립트

original/ 하위 법령·행정규칙·표준시방서·KS 코퍼스를 수집·변환·색인하는 재현용 스크립트. 경로는 이 폴더 위치 기준 상대(ROOT_DIR = 상위 = original/)로 동작한다. 어느 PC에서 clone 해도 그대로 실행된다.

실행 전 준비

  • Python 3.12 + pymupdf, olefile
  • 인증키(커밋 금지):
    • docs/raw/law/.secrets.local.md 에 KCSC 키 (스크립트가 자동 파싱) — 또는 환경변수 KCSC_KEY
    • law.go.kr OC키는 기본 umsangdon (환경변수 LAW_OC 로 교체 가능)

스크립트 → 워크플로(README W1~W6) 대응

스크립트 역할 워크플로
check_law.py law.go.kr 현행본 시행일·개정일 조회 W1 갱신 판별
collect_law.py 법령·행정규칙 원문(현행+교본시점) + 별표 PDF 수집 W2
get_attach.py 고시 첨부파일·안내문 별표의 HWP 원본 수집 W3
get_kcsc.py 국가건설기준센터 KCS 본문(OpenApi) 수집 W2
get_ks.py e나라 표준인증 KS 메타데이터·이력 수집(원문은 DRM) W2
hwp5_text.py 구형 HWP5(OLE) 본문 텍스트 추출 W5
hwpx_text.py HWPX(zip+XML) → md(공백·표 보존). 공백 소실 첨부 재추출 W5
pdf2md.py 별표·첨부 PDF → Markdown 변환(표 복원·이미지 pic/ 추출·손실 방지) W4
fix_spacing.py HWP→PDF 공백 소실 별표/첨부의 프로즈 띄어쓰기 복원(표 보존) W5
qc_lint.py md 전수 품질 점검(테이블·사진·내용누락·띄어쓰기·줄바꿈) W5
verify_pdf2md.py 변환 손실·줄누락 검증 W5
build_srcmap.py law API 결과 → 시행일/개정일 맵(srcmap.json) W6
gen_md.py 0. 참조 법령·기준 목록.md 재생성(9열·색인) W6

data/ (생성 데이터 = gen_md 입력)

이번 세션에서 만든 매핑. 수동 보정이 섞여 있어 함께 보관한다.

파일 내용
srcmap.json 항목별 시행일·개정일·출처
collected_map.json law.go.kr 수집 결과(판본·별표·개정 횟수)
ks_map.json KS 45건 메타·이력
kcsc_map.json 표준시방서 ↔ KCS 코드 수
items_all.json collect_law.py 수집 대상 목록
ks_codes.json KS 조회 코드 목록
lawapi.json law.go.kr 조회 원자료

표준 실행 순서

cd docs/raw/law/original/_pipeline
python collect_law.py data/items_all.json     # 법령·행정규칙 + 별표
python get_attach.py                           # 첨부·HWP
python get_kcsc.py                             # KCS 본문
python get_ks.py                               # KS 메타
python pdf2md.py                               # PDF → md (전건)
python verify_pdf2md.py                        # 검증
python gen_md.py                               # 색인 재생성

수집은 새로 받은 현행본을 현행_새시행일.*추가한다(기존 판본 삭제 금지). 상세 규칙은 docs/raw/law/README.md W1~W6 참조.