ReleaseUpstage (Solar)Upstage (Solar)published Oct 28, 2026seen 8h

UpstageAI/korean-report-hwpx v0.4.0

UpstageAI/korean-report-hwpx

Open original ↗

Captured source

source ↗
published Oct 28, 2026seen 8hcaptured 8hhttp 200method plain

0.4.0 — 보도자료 작성 방법 가이드·공문서 편집 용지(A4·여백)·기안문 탭 내어쓰기

Repository: UpstageAI/korean-report-hwpx

Tag: v0.4.0

Published: 2026-10-28T13:45:34Z

Prerelease: no

Release notes:

신규 기능

  • draft_press_structure(facts, ministry): 사실 메모(dict 또는 JSON 문자열)를 보도자료 구조 JSON 초안으로 옮긴다. 메모에 없는 문장·숫자·이름을 만들지 않으며, 리드·인용·표·참고 자료를 국립국어원 지침과 정책브리핑 실측에 맞게 배치한다.
  • get_writing_guide(doc_type='press_release', ministry): 보도자료 작성 방법(리드·제목·인용·숫자·쉬운 말), 사실 메모 양식(facts_template)·필드 설명(facts_fields), 종류별 순서(types_order), 기관별 가상 예시(facts·structure)를 함께 제공한다.
  • check_structure·build_document의 보도자료 작성 점검(E1~E18): 리드 누가·언제·완결·길이·인용, 제목 과장·마침표, 부제 수, 숫자 단위·단위 띄어쓰기, 외국 문자 먼저, 약어 풀이, 쉬운 말, 권위적 표현, 종결 혼용, 명사형 종결, 긴 문장.
  • ministry 인자: check_structure(structure, doc_type, ministry=기관)으로 보도자료 작성 점검을 수행한다. build_document는 자기 ministry를 check에 넘긴다.
  • _josa(word, pair): 조사 붙이기 모듈 함수 — 끝 공백·괄호·따옴표를 번갈아 떼고 마지막 글자로 판단(한글 받침·숫자 끝자리·라틴 L·M·N·R).
  • 보도참고자료·설명자료·해명자료도 draft_press_structure로 구조 초안을 만들 수 있다(문제 사안→입장→근거 순서, 리드는 만들지 않음).
  • 머리 이름 기본값: kind가 없으면 템플릿 서식 표본과 관계없이 '보도자료'를 머리에 찍는다(서식 표본이 보도참고·보도설명자료였던 9개 기관 — 과학기술정보통신부·공정거래위원회·국세청 등 — 이 '보도참고자료'·'보도설명자료'로 나오던 것 바로잡음).
  • 담당 부서 유지: placeholder_contact=True이고 people이 비어도 dept가 있으면 그 부서명을 유지하고 people만 자리표시로 채운다.

데이터

  • korean_report_hwpx/guides/press_writing.json: 국립국어원 지침 5종(G20·R20·G11·H22·E14), 정책브리핑 2,667건 실측(C), 가이드 규칙 문장 15개, 사실 메모 양식·필드, 종류별 설명, 과학기술정보통신부·행정안전부 가상 예시 2건(facts·기대 structure), 작성 점검용 정규식·단어 목록·한도.

문서

  • README·README-EN: 도구 표에 draft_press_structure 추가, "보도자료 작성 방법" 단락과 사실 메모 예시, 출처 목록 추가.
  • SPEC: docs/SPEC_press_writing_guide.md에 전체 사양 기록.

호환성

  • 보고서·기안문 점검과 동작은 그대로(빈 줄 없음·고정 문단 위 간격 유지). 기존 테스트 전부 통과.
  • 보도자료 본문 문단 간격 복원: Composer.blocks의 계층 사이 빈 줄을 rules/.json gaps 값대로 넣고(gap_pt가 None이면 없음), Composer.item의 문단 위 간격(prev)을 rules/_문단위간격.json 기관값(그 계층)→전체값(모두 0)으로 적용한다. 예: 행정안전부 p 문단 위 1000·p↔p 빈 줄 없음, 과학기술정보통신부 p 문단 위 0·p↔p 빈 줄 1개(10pt).
  • EXAMPLE_PRESS 상수는 제거하고 PRESS_GUIDE 예시로 대체(writing_guide_prompt도 같은 값 사용).

기안문 항목 내어쓰기

  • 항목 번호(1.·가.·1) 등)와 붙임 뒤에 탭을 넣고 내어쓰기와 같은 위치에 탭을 두어, 둘째 줄이 번호 뒤 첫 글자 아래에서 시작한다(글꼴 너비와 관계없음).

쪽 설정(편집 용지)

  • 기안문에도 구역 정의(`··)를 넣어 한글이 기본 편집 용지(좌우 30mm, 본문폭 150mm)로 열리던 문제를 수정. 보고서와 같은 방식으로 첫 문단 첫 글자 조각에 B.sec_pr(page)`를 삽입.
  • 보고서 공통 여백을 위·아래 10mm·머리말·꼬리말 15mm에서 위·아래 15mm·머리말·꼬리말 10mm로 정정(정책브리핑 2,667건 중 최빈값 1,817건).
  • 기관 템플릿 19곳(templates/.json)의 쪽 여백이 그 기관 보도자료 최빈값과 달라 최빈값으로 바꿈(표본 10건 미만 기관은 공통값). 과학기술정보통신부는 118건 중 100건, 행정안전부는 135건 중 120건이 위15·아래15·머리말10·꼬리말10. 근거는 rules/_쪽설정.json의 기관값.
  • 표(``) 폭이 모든 문서 종류에서 본문폭(width − left − right, 170mm) 이하인지 테스트로 확인.

개발

  • 기존 뼈대는 Solar Pro 4, 이번 보완 중 기안문 항목 위치·붙임 내어쓰기는 Claude. 보도자료 작성 가이드 데이터·명세·정답 테스트는 Claude, 구현은 Solar Pro 4.