confluence-mdx: reverse-sync 재구성 설계와 구현 정리 범위를 정의합니다#913
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
현재 patch 기반 Reverse Sync의 복잡도 문제를 분석하고, MDX → XHTML 직접 재구성 방식으로의 전환 설계를 제안합니다. 설계 문서와 v1~v4 반복 검토 평가 문서를 포함합니다. Co-Authored-By: Atlas <atlas@jk.agent>
33fa095 to
17dda50
Compare
설계의 적절성, 목표 달성 가능성, 아키텍처, 위험 요소, 복잡도 대비 효과를 검증하였습니다. Phase 0-2는 즉시 착수 가능하며, Phase 3 착수 전 list item 불일치 처리 방식 및 anchor offset 기준 명문화를 권고합니다. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6 tasks
7 tasks
jk-kim0
added a commit
that referenced
this pull request
Mar 13, 2026
…ublic API (#914) ## Description - reverse-sync 재구성 설계(#913)의 Phase 0 구현입니다. - `xhtml_normalizer.py` 공용 모듈을 추가합니다: `extract_plain_text()`, `normalize_fragment()`, `extract_fragment_by_xpath()` - `emitter.py`의 `_ListNode`/`_parse_list_items()`/`_build_list_tree()`를 `ListNode`/`parse_list_tree()` public API로 승격합니다. - Level 0 helper tests 43개를 추가합니다 (전체 820 pass). ### Phase 0 게이트 충족 항목 - [x] `extract_plain_text`: ac:image/ac:link 제외, ac:emoticon fallback 포함, ac:plain-text-body 제외 - [x] `normalize_fragment`: ignored attributes 제거, layout/decoration/non-reversible macro 정리, idempotent - [x] `extract_fragment_by_xpath`: 단일/복합/다단계 xpath, macro-* 패턴 - [x] `parse_list_tree`: nested/mixed/continuation line 지원 - [x] 기존 테스트 820개 전부 green ## Added/updated tests? - [x] Yes — `test_reverse_sync_xhtml_normalizer.py` (34 tests), `test_reverse_sync_list_tree.py` (9 tests) ## Additional notes - Phase 1 (sidecar schema v3) PR이 이 PR 위에 쌓입니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
jk-kim0
added a commit
that referenced
this pull request
Mar 14, 2026
… identity helper (#915) ## Description - reverse-sync 재구성 설계(#913)의 Phase 1 구현입니다. - `SidecarBlock`에 `reconstruction` 필드를 추가합니다 (kind, old_plain_text, anchors, items). - `ROUNDTRIP_SCHEMA_VERSION` "2" → "3" 승격, v2 하위 호환 로드를 유지합니다. - `build_sidecar()`가 block 타입별 reconstruction metadata를 자동 생성합니다. - `build_block_identity_index()`, `find_block_by_identity()`: hash + line_range 기반 disambiguation helper를 추가합니다. ### Phase 1 게이트 충족 항목 - [x] existing sidecar tests green (v2 테스트 11개 수정 후 통과) - [x] 21개 testcase build + integrity 유지 - [x] schema v3 직렬화/역직렬화 정상 - [x] v2 파일 하위 호환 로드 정상 - [x] duplicate hash disambiguation 동작 - [x] 전체 845 tests pass ## Added/updated tests? - [x] Yes — `test_reverse_sync_sidecar_v3.py` (25 tests), `test_reverse_sync_sidecar_v2.py` (v3 호환 수정) ## Additional notes - 이 PR은 Phase 0 PR (#914) 위에 쌓여 있습니다. Phase 0 머지 후 main으로 rebase 필요합니다. - reconstruction metadata의 anchors/items는 현재 빈 placeholder입니다. Phase 3에서 실제 anchor 분석이 추가됩니다. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 task
jk-kim0
added a commit
that referenced
this pull request
Mar 15, 2026
## Description PR #913 시점의 설계 초안을 2026-03-15 `main` (#917 머지 후) 기준으로 갱신합니다. **수정 파일:** `docs/plans/2026-03-13-reverse-sync-reconstruction-design.md` - 문서 헤더에 갱신일, 기준 커밋(`9e0d43b9`), 반영된 선행 PR(#913–#915, #917) 메타를 추가합니다 - 이미 `main`에 반영된 Phase 0/1 작업과 아직 남은 재구성 작업을 명확히 분리합니다 - Phase 1 후속(#917) 내용을 반영합니다: `strict v3` 전환, identity helper API 통일(`build_sidecar_identity_index` / `find_sidecar_block_by_identity`), `reconstruction` metadata 보강(`child_xpaths`, ordered list) - 현재 런타임 기본 경로(patch_builder → text_transfer)와 최종 목표(fragment reconstruction) 사이의 gap을 재정의합니다 - 남은 구현 단계(Phase 2–5)와 게이트를 현재 코드베이스 기준으로 재확정합니다 **신규 파일:** `docs/plans/2026-03-15-reverse-sync-reconstruction-cleanup-scope.md` - 기존 설계 문서에 포함되어 있던 legacy 코드 삭제 범위를 별도 문서로 분리합니다 - 삭제 시작 조건, 완전 삭제 대상, 부분 축소 대상, 유지 대상을 모듈 단위로 정리합니다 ## Added/updated tests? - [x] No — 문서 전용 변경입니다 ## Additional notes - 코드 변경 없음
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
reverse-sync를 heuristic 기반 텍스트 패치에서 XHTML fragment 재구성 중심 구조로 전환하기 위한 최종 설계 문서를 정리합니다.
이 문서는 다음 내용을 정의합니다.
tests/testcases,tests/reverse-sync자산을 활용한 테스트 전략포함 내용
기대 효과