Task #634: 한컴 호환 쪽번호 표시 동작 검증 + 회귀 방지 테스트#638
Conversation
samples/aift.pdf 페이지 2 (한컴 미표시) vs rhwp SVG 페이지 2 ("- 2 -" 표시) 차이 발견에서 출발.
가설 시행 착오:
- Stage 0~3: 가설 H1'' (NewNumber 게이팅) — 첫 NewNumber Page 발화 페이지부터 표시.
Stage 2 fix 시도 (PageNumberAssigner.numbering_started + PageContent.show_page_number 등 9 파일).
- Stage 4: 새 한컴 PDF (1-up portrait) 정밀 측정 결과 가설 H1'' 잘못 확인.
페이지 1, 6 (NewNumber 발화 전) 도 한컴 표시 → Stage 2 fix revert.
최종 한컴 ↔ rhwp 일치 매트릭스 (aift.hwp):
| Page | 한컴 | rhwp | 메커니즘 |
|------|------|------|---------|
| 1 (cover disclaimer) | 표시 | 표시 ✓ | PageNumberPos 등록 후 |
| 2 (35x27 표 cover) | 미표시 | 표시 ✗ | 별도 issue edwardkim#637 |
| 3 (14x17 표 요약문) | 미표시 | 표시 ✗ | 별도 issue edwardkim#637 |
| 4, 5 (목차/별첨 목차) | 미표시 | 미표시 ✓ | PageHide page_num=true |
| 6 (본문 시작) | 표시 | 표시 ✓ | 정상 |
| 7+ (NewNumber 발화 후) | 표시 | 표시 ✓ | 정상 |
코드 변경 0 (Stage 2 fix revert 후 src/ 변경 없음).
회귀 방지 통합 테스트 8건 신규 (src/renderer/layout/integration_tests.rs):
- test_634_aift_page1_shows_page_number
- test_634_aift_page4_pagehide_no_page_number
- test_634_aift_page5_pagehide_no_page_number
- test_634_aift_page6_shows_page_number
- test_634_aift_page7_shows_page_number
- test_634_gukrip_page1_pagehide_no_page_number
- test_634_gukrip_page3_shows_page_number
- test_634_no_newnumber_doc_shows_page_numbers_from_page1
검증: 전체 1142 passed, 0 failed, 2 ignored. 회귀 0.
페이지 2, 3 미표시 메커니즘 별도 issue edwardkim#637 분리.
closes edwardkim#634
본 PR 검토 결과 — 본질 결함 발견 + 정석 처리 안내본 PR (Task #634, src 변경 0 + 회귀 방지 통합 테스트 8건) 검토 중 메인테이너가 본질 결함을 발견했습니다. 본 PR 의 가설 시행 착오 (Stage 0~3 NewNumber 게이팅 가설 → Stage 4 가설 깨짐 → revert) 와 별개로, 본 환경의 셀 안 PageHide 컨트롤 무시 결함 발견. 본질 결함 발견 — aift.hwp page 2 의 [감추기] 컨트롤작업지시자가 한컴 편집기에서 직접 확인한 다이얼로그:
본 환경 파서 직접 측정 결과 — page 2 의 PageHide 위치: → 본 환경 파서는 6 필드를 모두 정확히 인식. 다만 페이지네이션 + 렌더러 + dump 3 곳에 결함 존재. 본 환경의 결함 3건
Issue #637 의 본질 재해석본 PR 본문에서 별도 issue 분리한 Issue #637 (page 2/3 cover-style 미표시 메커니즘) 의 "PageHide 없는데도 한컴 미표시" 진단은 잘못된 결론. 실제는:
즉 본 환경 결함이 본질이며, 한컴 동작은 정합 (PageHide 적용으로 미표시 정합). 정석 처리 영역본 PR 의 "src 변경 0 + 회귀 방지 가드 8건" 외에 본질 정정 3 영역 이 정석 처리:
회귀 방지 영역본 PR 의 8 회귀 가드 중 일부 (특히
처리 안내본 PR close 진행 — 본질 결함 정정의 후속 PR 재제출 권고. 정석 처리 후 다시 OPEN 요청 부탁드립니다. 본 환경에서 발견된 본질 결함 분석의 권위 자료:
긴 시간 + TDD 5 단계 + 가설 시행 착오 학습이 담긴 본 PR 작업 감사합니다. 후속 PR 환영합니다. |
|
PageHide 컨트롤과 관련된 PR이 여러 개 중첩되어 이 PR은 재개하지 마시고 다른 PR 쪽에서 처리하는 것으로 하면 좋겠습니다. |
PR #638 (Task #634, 한컴 호환 쪽번호) close 영역 + PR #641 (Task #639, cover-style 룰) close 영역 처리: - 두 PR 모두 devel 반영 부재 (작업지시자 결정 영역 정합) - 컨트리뷰터 (@planet6897) 영역의 후속 PR #711 (Task #705) 영역에서 본질 정정 영역 진행 PR #638 영역의 본질 결함 발견: - pagination/engine.rs 셀 안 PageHide 무시 (page 2 쪽번호 결함의 본질) - layout.rs hide_border/hide_fill 가드 부재 - main.rs dump 셀 안 PageHide 분기 부재 → 컨트리뷰터에게 정석 처리 안내 댓글 등록 영역 PR #641 영역의 cover-style 휴리스틱: - 본 환경 결함 영역의 우회 (workaround) 영역으로 분석 - 174 샘플 영역 중 영향 페이지 2 영역만 매칭 (PR #711 영역의 6 샘플 영역 영역 영역) - 작업지시자 결정: 본 PR close + PR #711 본질 정정으로 재검토 영역 archives 이동: - mydocs/pr/archives/pr_638_review.md - mydocs/pr/archives/pr_641_review.md - mydocs/pr/archives/pr_641_close_report.md (close 결정 + supersede 안내) 5/8 orders 영역 신규: - mydocs/orders/20260508.md - PR #684 (5/8 처리 완료) + PR #638 (close) + PR #641 (close, supersede PR #711) entry 본 사이클 (5/7~5/8) close 패턴 누적: - PR #638 (본질 결함 발견) - PR #641 (우회 접근 → PR #711 supersede) - 메인테이너 게이트웨이 방식의 권위 사례 영역 강화 누적 본 사이클 PR 처리 누적: 17건 (15 merged + 2 closed)
PR #638/#641 close 시 작업지시자 (메인테이너) 가 발견한 본 환경 결함 3건의 본질 정정. PR #641 (cover-style 휴리스틱 우회) 폐기 후 작업지시자 권고 영역의 본질 정정 supersede. 본질 결함 3건: 1. pagination/engine.rs:519-544 + typeset.rs:2120 — page_hides 수집이 본문 paragraph 만 → 셀 안 PageHide 무시 (두 페이지네이션 경로 양분 정합) 2. layout.rs:411-422 — build_page_background()/build_page_borders() 호출에 hide_fill/hide_border 가드 부재 3. main.rs:1665-1670 — dump 셀 안 controls 매칭에서 PageHide 분기 부재 정정: - collect_pagehide_in_table 재귀 함수 (engine.rs + typeset.rs 두 경로 동기) - layout.rs 의 hide_fill/hide_border 가드 추가 — 6 필드 모두 가드 정합화 - main.rs dump 셀 안 PageHide 분기 추가 Stage 0 198 sample sweep 측정: - 셀 안 PageHide 13건 / 6 샘플 (PR #640 H2 측정 누락 영역의 정량 확인) - 영향 샘플: aift, 2022 국립국어원, KTX, kps-ai, tac-img-02 hwp+hwpx 회귀 가드 (test_705_*) 6건: - aift p2 셀[167] 6 필드 모두 true 검증 - aift p3 셀[31] page_num 검증 - 국립국어원/KTX 셀 안 PageHide 매핑 검증 - 본문 + 셀 안 합산 카운트 검증 작업지시자 시각 판정 ★ 통과 (2026-05-09): - 한컴 PDF 권위본 (pdf/2022년 국립국어원 업무계획-2022.pdf page 3 마지막 줄 "- 1 -") 정합 - 한컴 편집기 [감추기] 다이얼로그 6 필드 영역 정합 - aift.hwp page 2 + 국립국어원 page 3 등 셀 안 PageHide 영역 모두 정합 메인테이너 가드 갱신 commit (3253f7d): - test_634_gukrip_page3_shows_page_number: count == 3 → count == 0 (rhwp 의 한컴 부정합 행위 보존 → 한컴 권위 정합으로 의도 변경) 검증: - cargo test --release: lib 1173 (+6 test_705 신규) + 통합 ALL GREEN, failed 0 - cargo clippy --release: 신규 경고 0 - 광범위 sweep 7 fixture / 170 페이지 / diff 2 (aift p2/p3 의도된 변경, 다른 fixture 회귀 0) - WASM 빌드 4,606,179 bytes PR supersede 영역: - PR #638 (Task #634) close → src 무변경 회귀 가드만 머지 - PR #640 (Task #637) close → 분석 docs (H2 측정 누락 영역의 정량 확인) - PR #641 (Task #639) close → cover-style 휴리스틱 폐기 (작업지시자 권고) - PR #711 (Task #705) — 본질 정정 supersede Closes #705 Co-Authored-By: Jaeook Ryu <jaeook.ryu@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- mydocs/pr/archives/pr_711_review.md (검토 문서, 시각 판정 결과 반영)
- mydocs/pr/archives/pr_711_report.md (처리 보고서, 가드 갱신 명시)
- mydocs/plans/archives/task_m100_705{,_impl}.md
- mydocs/orders/20260509.md: PR #711 행 + 본 사이클 패턴 라인 추가
처리 결과:
- 옵션 A — 7 commits cherry-pick + 메인테이너 가드 갱신 + no-ff merge (2bc982c)
- 작업지시자 시각 판정 ★ 통과 — 한컴 정답지 정합 확정
- test_634_gukrip_page3 가드 갱신 (count=3 → 0, 메인테이너 commit 3253f7d)
- PR #638/#640/#641 close → PR #711 본질 정정 supersede
- Issue #705 close 자동 정합
부수 사실:
- PR #706 form-002 패턴 정합 영역 의 두 번째 사례
- `feedback_visual_judgment_authority` + `feedback_visual_regression_grows` 권위 사례 강화
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
요약
한컴 호환 —
samples/aift.pdf페이지 2 vs rhwp SVG 차이 발견에서 출발한 쪽번호 표시 동작 검증.배경
작업지시자 보고:
samples/aift.pdf페이지 2 (한컴 미표시) vs rhwp SVG 페이지 2 ("- 2 -" 표시) 차이.가설 시행 착오 + 정정
한컴 ↔ rhwp 일치 매트릭스 (aift.hwp)
변경 사항
미해결 (별도 issue 분리)
Test plan
closes #634
🤖 Generated with Claude Code