# 경북연구원(GDI) 정책과제 작성 지침 — 실전 종합

> 본 문서는 실제 보고서 작업에서 도출·확정된 **실전 지침**을 종합한 것이다. 상주 규칙(`CLAUDE.md` §2~§4)을 보강·구체화하며, 새 연구과제에도 동일하게 적용한다. (★ 표시는 자주 어긋나는 항목.)

---

## 0. 최우선 원칙

- **우선순위: 사실 정확성 > 논리 완결성 > 형식 준수 > 분량.**
- 분량은 **심화(심층 분석·인과 전개·다각도 검토·실행설계)**로 확보. 통계·법령·예산·고유명사를 **지어내어 채우는 행위 절대 금지.**
- 불확실하면 단정 말고 `[확인요망]`/`[추정]` 표기. 미확정 정량은 추가조사로.

---

## 1. 위계·개조식 작성 (★가장 자주 지적)

- **▮(■) = 짧고 강렬한 킬러메시지(헤드라인).** 체언·명사형 한 구절(예: `■ 결제 인프라적 성격`). **긴 문장 금지** — 설명·근거·수치는 ❍·-로 내린다.
- **★각 항(`### 1.`) 아래 ▮ 최소 2개**, **각 ▮ 아래 ❍ 최소 2개.** ▮ 1개만 두지 말 것 — 항의 내용을 2개 이상 주제로 분할.
- **★한 기호(▮/❍/-/※) 아래 한 문장만.** 여러 문장 금지 — 추가 내용은 별도 ❍/-로 분리.
- **★개조식 끝에 마침표(.) 없음.** (체언 종결, 예: `…활력 창출 시급`)
- ❍는 한 문장이되 **인과·맥락·함의**를 담아 충실히(키워드 나열 금지). 두 ❍는 서로 다른 측면(동어반복 금지).

## 2. 종결어미 — 체언 종결 우선 (★)

- **순수 명사로 끝맺기를 우선.** `~함/~임/~음/~됨`은 체언 종결이 정말 불가능할 때만 최소.
- 예: `~분석을 수행함`→`~분석 수행`, `~증대가 기대됨`→`~증대 기대`, `~연계가 필요함`→`~연계 필요`, `~증가하고 있음`→`~증가 추세`.
- 서술형(`~한다/~이다/~합니다`) 금지. **단 요약(Summary)만 서술식 `~다.`체**(gdi-summarizer 전담).

## 3. 표·그림 (CLAUDE.md §4.4)

- **표 = 원본 데이터 그대로 + 양식만 우리 스타일.** 수치·항목을 가공·반올림·임의 생략 없이 원문 그대로, 디자인만 경북연구원 양식. 재배열 시 `…를 바탕으로 재구성`.
- **그림 3경로:** ① **원본 도표 그대로**(출처 명확 시) — sources 추출 삽입, 재작도면 `…를 바탕으로 재작성`. ② **모식도·개념도·예시도·흐름도 = 이미지 AI 프롬프트**(그 자리에 `※ 이미지 생성 프롬프트 … GPT Image/Nano Banana: "…"`, 영어·텍스트 라벨 최소·flat vector, 자료주 `저자 작성(생성형 AI 활용)`). ③ **데이터 그래프 = 실데이터 표 제시**(`※ 차트 변환용 데이터 — 딸깍개발실 차트 딸깍` + 실수치 GFM 표 + 자료주) → 차트화는 차트 딸깍이 수행. **★데이터·수치를 이미지 AI로 그리지 않음(날조·한글 깨짐 방지).**
- **자료주 필수** `자료 : {저자}, 「{제목}」, {기관}, {연도}, p.{쪽}.` + **출처 대장 등재**.
- **시점 병기**(시총·거래규모 등). **OCR·이미지 PDF 추출 수치는 원문 재확인 후 확정**, 미확인 `[확인요망]`.
- **★폭맞춤: 표·그림은 본문 폭 100%.** 단 **본문폭은 양식(용지) 크기에 종속**된다 — 경북연구원 양식은 **A4가 아니라 190×260mm(본문폭 35,150 HWPUNIT)**. 페이지 크기를 잘못 잡으면 표·그림이 좁거나 넘침. 조판 파이프라인은 본문폭에 맞춰 자동 맞춤(§8 참조, 메모리 `gdi-hwpx-finalize-layout`·`gdi-hwpx-figure-table-finalize`).

## 4. 정책장(통상 4장) — 세부과제 = '사업조서' 양식 (★)

- **4장 제2~4절의 각 세부과제는 독립된 하나의 사업.** 제목 = **사업명 형태**(예: `1. 경북형 정책수당 디지털바우처 지급체계 구축`).
- **4블록 구조:**
  - `■ 배경 및 필요성` → ❍ 여러 개(각 한 문장)
  - `■ 사업개요` → `❍ 사업기간 : …` / `❍ 사업위치 : …` / `❍ 시행주체 : …`
  - `■ 사업내용` → ❍(추진방향, 한 문장) 아래 `­ (○○) 세부`(한 문장)
  - `■ 기대효과` → ❍ 여러 개
- 사업기간·위치·주체 = **저자 제안(Tier C)**(로드맵 단계 기반). 사업비·KPI 미확정은 `[확인요망]`(임의 산정 금지, 유사사례 참고치만).
- **★사업은 충분히 발굴(주제 규모에 맞게).** 단, **'무늬만 다른 중복' 금지** — 같은 메커니즘(예: 동일 결제 rail)이면 1개로 통합하고, **메커니즘이 실제로 다른 것만 별도 사업**(예: 일반 결제 vs 외국인 온램프 vs B2B 스마트계약 정산).
- 4장 제1절(기본구상)·제5절(추진기반)은 사업조서가 아닌 구상·기반 서술.

## 5. 환각 방지

- 모든 정량·법령·기관·사업명·예산은 **제공자료 근거만**. 없으면 `[확인요망]`/추가조사로 격리.
- **★AI 생성 드래프트·자료는 수치 환각 주의** — 수치·고유명사는 사실로 가져오지 말고 **논점·아이디어만 차용**, 수치는 sources로 재검증.
- 자료 모순은 봉합 말고 병기. 시점 의존 수치는 시점 병기.
- 각 장 말미 **출처 대장**(§3.4) + **gdi-auditor 통과** 전 장 확정 금지.

## 6. 경북 특화 — 도메인 현실 (★실수 주의)

- **경북은 도(道) 단위 통합 지역화폐 없음** — 22개 시군이 각자 지역화폐(○○사랑상품권 등) 운영. **'경북사랑상품권' 같은 미존재 명칭 생성 금지.**
- **지역화폐 '경북 전역 통용' 불가** — 각 시군이 자체 예산으로 발행·할인하므로(타 시군에서 쓰면 재정 누수), 전역 통용은 성립 불가. **'표준화·통합'은 백엔드 인프라·정산 공통화이되, 사용처·예산 귀속은 시군별 분리**(프로그래머블 머니로 강제).
- **시군 수 시점 병기:** 2023.7.1 군위군 대구 편입 → 현재 **22개**(이전 23개). 2022 이전 자료 인용 시 시점 병기.
- 경북 22개 시군 비교표·도정 목표 연계·타 시도 대비 위상·**'경북형 ○○모델' 고유 명칭** 필수.

## 7. 자료조사·요약·참고문헌 (내용)

- **자료조사(자동/수동 공존):** 자료는 두 경로로 갖춘다 — ① **수동**: 사용자가 `sources/` 루트에 PDF·MD·TXT 직접 투입, ② **자동**: `/gdi-research`(에이전트 `gdi-researcher`)가 웹에서 **원문 열람·검증**한 자료를 `sources/_research/`에 적재(+ 다이제스트 `drafts/_survey_웹조사.md`, 참고문헌 후보 `drafts/95_references_auto.md`). 자동 수집은 **검증 후 표기**(원문 미열람·스니펫은 `[서지 확인요망]`)이며 **수동 자료를 건드리지 않고 추가만** 한다. 둘 중 하나만 써도 되고 병행해도 된다.
- **요약:** 서술식 `~다.`체, 3장 구조(`1. 과제의 필요성`→`2. 현황과 문제점`→`3. 정책 방향`, 총 약 2,000자), 본문에 없는 새 Tier A 사실 도입 금지. `gdi-summarizer` 전담, `drafts/90_summary.md` 저장.
- **참고문헌:** sources(루트 수동 + `_research/` 자동) + `95_references_auto.md` + 본문 인용 종합하되 **본문에서 실제 인용한 것만** 등재. 불확실 시 `[서지 확인요망]`. 본문 인용 안 한 sources 자료는 제외. 사용자가 수동 추가한 항목도 보존. 확인 곤란 항목은 별도 `[참고문헌 미확인 항목]` 표로 정리(사용자 점검 요청).

---

## 8. 조판(HWPX 최종화) — `gdi-hwpx/finalize/finalize_layout.mjs` (★이번 세션 핵심)

> 본문 마크다운 변환(`build_hwpx.mjs`) 위에, 경북연구원 양식의 **검증된 OWPML 조각(`finalize/_frag_raw/`)을 splice**하여 표지·목차·간지·머리말 등 **조판 레이어**를 자동 생성한다. 양식 원본 좌표를 그대로 쓰는 것이 핵심(임의 보정 금지).

### 8.0 ★페이지 크기 = 양식 native 190×260mm (A4 아님)
- 경북연구원 양식 용지는 **190×260mm = 53,858×73,700 HWPUNIT**(본문폭 **35,150**, 여백 좌우 9,354·상 4,818·하 6,236·머리말 2,834·꼬리말 4,251). **A4(210×297)로 강제하면 표지·머리말·간지의 절대좌표가 전부 어긋난다**(이번 세션 다수 라운드 헛수고의 근본 원인).
- 환산: **1mm = 283.465 HWPUNIT**.
- 한컴에서 **PDF 내보내기 시 용지를 '문서 크기(190×260)'로** 지정(기본 A4면 내용이 A4 좌상단에 배치됨). 렌더 검증도 native 영역(538×737pt)만 크롭해서 본다.

### 8.1 파이프라인
1. `build_hwpx.mjs` → 본문 HWPX(엔진이 양식 native 폭 35,150으로 생성) = `output/report.hwpx`.
2. 그림 임베드 후처리(`fig_*` → hp:pic) = `output/report_그림.hwpx`(이 단계는 A4 42,520폭으로 만들어져 있을 수 있음).
3. `finalize_layout.mjs --in report_그림.hwpx --summary 90_summary.md --config <project>/finalize.config.json --out report_최종.hwpx` → 조판 + **본문 표/그림을 native 본문폭으로 축소**(`rescaleBodyToNative`, ×35150/42520≈0.827, 텍스트는 자동 reflow).

### 8.2 프런트매터(양식 조각 splice)
- **겉/속표지·연구진·비매품:** 제목·연구번호·영문제목만 `--config`로 치환, **저자·연구진명은 샘플 표기 유지**(`김 연 구‧이 연 구` / `김연구 경북연구원 …연구위원·연구원`), 연구진 2번째 블록 `ㅣ연구 책임ㅣ`→`ㅣ공동 연구ㅣ`. **연구진·발간정보는 확정값을 모르면 그대로** 두고 한컴에서 채움(고유명사 날조 금지). 양식 붉은 가이드문구(`※ 보고서 겉표지` 등) 제거. 레거시 **대구경북연구원 로고는 native 페이지에선 페이지 밖이라 자동 비표시**(A4 강제 시에만 노출됐던 것).
- **요약:** "Summary 요약" 제목 → **빈 스페이서 문단(머리말 운반 + 1줄 간격)** → `1. 과제의 필요성`. 머리말을 제목 run에 직접 넣으면 '요약' 글자가 표 상단선 위로 가므로 **반드시 스페이서 문단에 실어** 선 아래로. 쪽번호 = 로마자(ⅰ,ⅱ…).
- **목차:** "목 차 Contents" 뒤 **빈줄 5개** → 장(2열 투명박스 표) / 절(`제N절 …〈실선리더〉 000`, 우측탭) / 항(`N_제목　000` **인라인** — 긴 제목이 좁은 줄서 우측탭과 충돌해 깨지므로). 쪽번호는 `000` 플레이스홀더.
- **표목차·그림목차:** 헤딩 뒤 **빈줄 7개** → `[표/그림 N-M] 제목〈리더〉000`. 양식 빨간 가이드문구 제거.

### 8.3 본문 변환 규칙
- **장(s4) → 간지**: GDI 워터마크 띠(좌측, native서 왜곡없이 페이지 꽉 참) + 제N장·장제목 + 가로선 + 절 목록. **간지 뒤 빈 페이지 1장**.
- **장 본문 첫 페이지 = 장 박스**(상단 실선, 제N장 제목) + **절 투명표** + 첫 항(같은 페이지).
- **절(s5) → 투명표**(테두리 없는 셀) + 새 페이지.
- **항(`### 1.`, s6) → 새 페이지.** 단 **절 바로 아래 첫 항은 같은 페이지**(페이지 넘김 X).
- 표/그림은 native 본문폭(35,150)으로 자동 축소.

### 8.4 머리말(running header) — 양식 좌표 그대로(no-op 보정)
- 양식의 쪽번호+세로제목 **표(RIGHT 정렬)·좌측 띠**를 절대좌표 그대로 둔다(`a4FixHeader`=no-op). **임의 A4 보정 금지**.
- 좌철(`gutterType LEFT_ONLY`) **미러 레이아웃**으로 RIGHT 정렬 표가 **홀수쪽=우측·짝수쪽=좌측 여백**에 렌더(짝수쪽이 본문과 겹치던 건 A4 강제 탓, native서 자동 해소).
- **짝수쪽 세로 제목 = 보고서 제목**으로 치환(양식 fragment의 자리값 — 요약 머리말 `경북연구원 정책과제 수립연구`, 본문 머리말 `경북경구원 수립 연구`〔양식 원본 오타〕 — 을 보고서 제목으로 교체). 쪽번호: 요약=로마자 / 본문=아라비아(첫 절에서 `newNum`으로 1 리셋).
- (실측값: 홀수표 RIGHT −26.37mm/위15.87mm, 짝수표 RIGHT 146.04mm/위15.88mm, 상단칸 5.01×45.93mm — = 양식 원본값.)

### 8.5 참고문헌·뒷표지
- **참고문헌:** 제목은 **상·하 양쪽 실선 박스 + 중앙정렬**(전용 borderFill을 header.xml에 신규 추가, '참고문헌' 위·아래 빈 문단으로 간격 균등). 항목은 본문/번호분류 없이 **`참고문헌` 스타일(styleIDRef 20)로 평문 나열**.
- **뒷표지:** 양식 발행정보 표(인쇄·발행·발행인·발행처·주소·전화·ISBN…)를 그대로 가져와 **제목만 교체**(나머지 유지).

### 8.6 검증·한컴 마무리
- **검증:** `finalize/render_pdf.ps1 <hwpx> <pdf>`(한컴 COM, `HWPFrame.HwpObject` v11) → PDF 렌더 → PyMuPDF로 PNG. **native 영역(538×737pt) 크롭**해서 확인(한컴이 A4 용지에 native를 좌상단 배치하므로).
- **한컴 마무리(사용자):** ① 목차·표/그림목차 쪽번호 → **[도구]-[차례/색인]-[차례 만들기]**로 자동 채움. ② 표지 `[확인요망]`(연구진·발간등록번호 등) 확정값 교체. ③ PDF 내보내기 용지 = 문서 크기(190×260).

### 8.7 재사용(다른 양식)
- `_frag_raw/` 조각은 **번들 양식 기준**으로 추출돼 있다. 다른 양식 사용 시 그 양식의 section0에서 **재추출**(`finalize/hwpx_util.mjs`의 `splitTopLevelParas` 활용) + **그 양식의 용지 크기·본문폭을 확인해 좌표·축소비율 재산정**.

---

## 부록 — 그림 제작·임베드 (이 환경)

- **작도 안 함(SVG/fitz 작도 폐지).** 모식도·개념도·예시도·로드맵은 **이미지 AI 프롬프트**(GPT Image/Nano Banana)로 생성, **데이터 그래프는 실데이터 표 → 딸깍개발실 차트 딸깍**으로 차트화. 원본 도표 추출은 fitz 사용 가능(선택). 한컴 COM(`HWPFrame.HwpObject`)으로 hwpx→PDF 렌더(검증·표지 확인용).
- **데이터 차트는 출처대장 검증 수치(표)만**, 개념도·로드맵은 본문 기반(Tier C). **데이터·수치는 이미지 AI로 그리지 않음.**
- HWPX 임베드: BinData 추가 + content.hpf 매니페스트 + **본문 `[그림 N-M]` 캡션(목차 아님) 앞에 hp:pic 삽입**. 그림은 본문폭(native 35,150)에 맞춰 종횡비 유지 축소. 상세는 메모리 `gdi-hwpx-figure-table-finalize`·`gdi-hwpx-finalize-layout`.
