Skip to content

기능: 셀 병합/분할·열 추가/삭제 편집 프리미티브 (GK-1·GK-2, 실기 확정)#13

Merged
YeolHanMyeong merged 2 commits into
mainfrom
feat/gk-cell-merge-column-ops
Jul 19, 2026
Merged

기능: 셀 병합/분할·열 추가/삭제 편집 프리미티브 (GK-1·GK-2, 실기 확정)#13
YeolHanMyeong merged 2 commits into
mainfrom
feat/gk-cell-merge-column-ops

Conversation

@YeolHanMyeong

Copy link
Copy Markdown
Collaborator

요약

정품 병합 표 1,816개 전수 실측(5규칙 만장일치)에 기반한 표 편집 프리미티브 4종 추가 + #9 표 편집 체계와의 의미 통합.

  • 셀 병합 --merge-cells "표:r1:c1:r2:c2" — 사각 영역을 좌상단 앵커로 병합
  • 셀 분할 --split-cell "표:행:열" — 병합 셀을 1×1로 분해
  • 열 삽입 --add-col "표:위치" — 기존 "표"(append)에 위치 삽입 확장
  • 열 삭제 --delete-col "표:열" — 전체 폭 유지(남은 열 재분배)

#9와의 통합 판단

  • 아키텍처는 #9로 통일: 프리미티브를 convert/edit.rs로 배치, #9의 재귀 with_nth_table 로케이터 공유(중첩 표 인덱싱이 set-cell과 일치). structure.rs는 #9대로 문단 전용 유지.
  • add-col 폭 정책 계승: 병합 없는 append는 #9의 행별 정확 재분배 원형 그대로(폭 보존 테스트 2종 무수정 통과). 병합 표·위치 삽입만 열 폭 기반 경로(열 정렬·전체 폭 보존).
  • feat: 보고서 템플릿 기반 스타일 표준화 + 표 행/열 편집 강화 #9 기능 무변경 유지: replace_texts 고속 경로, add_rows/delete_row 거부 규칙, 스타일 표준화.
  • 거부→지원 전환 테스트 갱신: tbl0/tbl2 병합 표 열 추가는 지원+validate 게이트로 대체(add-row 거부 규칙은 유지).

근거·검증

  • 정품 실측 5규칙: 피병합 셀 미저장(앵커만)·Σspan=rows×cols 타일링·cellAddr 행 우선·row_cell_counts=앵커 행 계상·병합 셀 크기=영역 합. 모든 조작 후 validate_table_invariants 게이트(손상 표 미방출).
  • 부수: md 표 셀 세로정렬 가운데(0x20) — K2 실기 지적 반영.
  • scripts/check.sh 통과(fmt/clippy -D warnings/test 351/0), 검증 세트 30/0.
  • 한글 실기 확정: K1(병합 hwpx)·K2(병합 hwp5+세로정렬)·K3(열조작) 전부 정상 확인.

🤖 Generated with Claude Code

YeolHanMyeong and others added 2 commits July 19, 2026 16:24
■ 정답지 실측 (구현 사양)
- 정품 병합 표 1,816개 전수 스캔(245파일) — 저장 구조 5규칙 만장일치 확정:
  피병합 셀 미저장(앵커만), 앵커 면적의 그리드 완전 타일링, cellAddr 행 우선,
  row_cell_counts=앵커 행 계상, 병합 셀 크기=영역 전체 합

■ 프리미티브 4종 + CLI (crates/hwp-convert/src/structure.rs)
- merge_cells(사각 영역, 부분 겹침 거부, 내용 이어붙임)·split_cell(A5~A7 규격 빈 셀,
  크기 균등 분배)·add/delete_table_column(span 걸침 확대/축소, placement·common_data
  개체 폭 동시 갱신) + 조작 후 불변식 게이트(위반 시 손상 표 미방출)
- edit --merge-cells/--split-cell/--add-col/--delete-col (EditArgs 구조체 정리)

■ 부수 수정: md→hwp 표 셀 세로 정렬 (K2 실기 디테일 발견)
- 정품 셀 기본은 세로 가운데(LIST_HEADER bits5-6=CENTER 0x20 — 3표본 전수 실측)인데
  md→hwp 합성만 TOP(0) 방출 → 공통 경로 수정(GK 이전부터의 잠복 결함, hwpx는 무관)

■ 검증
- 전체 테스트 323 통과·clippy 0, identity·roundtrip·synth·DROP-free 게이트 불변
- 정품 병합 표 9종 회귀(불변식 위반 0), 실기 검증 세트 A~K 30종 자체검증 통과
- 한글 실기 2라운드: K1/K2 병합 표시·K3 열 구조(1차), K2 셀 세로 가운데(2차) 확정

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@YeolHanMyeong
YeolHanMyeong merged commit 1d7333f into main Jul 19, 2026
3 checks passed
@YeolHanMyeong
YeolHanMyeong deleted the feat/gk-cell-merge-column-ops branch July 19, 2026 07:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant