Skip to content

confluence-mdx: renderer strategy handler를 분리합니다#1043

Open
jk-kim0 wants to merge 1 commit into
jk/refactor-reverse-sync-capability-planningfrom
jk/refactor-reverse-sync-strategy-handlers
Open

confluence-mdx: renderer strategy handler를 분리합니다#1043
jk-kim0 wants to merge 1 commit into
jk/refactor-reverse-sync-capability-planningfrom
jk/refactor-reverse-sync-strategy-handlers

Conversation

@jk-kim0

@jk-kim0 jk-kim0 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

build_patches()에 모여 있던 modified block의 renderer 정책을 typed strategy handler로 분리하여 capability 확장 시 본체의 heuristic branch가 늘어나지 않도록 합니다.

  • StrategyRenderContext로 exact mapping, sidecar, 누적 patch state를 명시적으로 전달합니다.
  • StrategyPrimitives로 기존 patch primitive를 주입하여 handler가 patch_builder.py를 역참조하지 않도록 합니다.
  • text block, list, preserved anchor, container, table을 독립 handler와 typed registry로 연결합니다.
  • blocked 또는 미등록 strategy를 dispatch 경계에서 fail-closed합니다.
  • nested strategy package가 생성하는 __pycache__를 ignore하고 OpenSpec design/task를 구현 상태에 맞게 갱신합니다.

Impact

  • 새 renderer strategy는 registry와 독립 handler를 추가하는 방식으로 확장할 수 있습니다.
  • identity resolution과 legacy patch primitive의 동작은 유지하며, 기존 fixture 결과를 변경하지 않습니다.
  • Confluence PUT이나 production batch는 실행하지 않았습니다.

OpenSpec / stacked PR

  • 기준 change: openspec/changes/complete-reverse-sync
  • 수행 task: build_patches() strategy handler의 reverse_sync/strategies/** 추출
  • Base PR: confluence-mdx: capability 판별을 typed intent 기반으로 전환합니다 #1042
  • 열린 PR을 확인했으며 같은 handler 추출을 다루는 중복 PR은 없습니다.
  • 관련 없는 xhtml_patcher.py 축소와 P2 capability 확대는 이번 PR에서 제외합니다.
  • OpenSpec과 구현 사이에 추가 blocker 또는 미해결 drift는 없습니다.

Test plan

  • cd confluence-mdx && venv/bin/pytest -q tests/test_reverse_sync_strategies.py tests/test_reverse_sync_patch_builder.py tests/test_reverse_sync_capabilities.py tests/test_reverse_sync_planner.py — 155 passed
  • cd confluence-mdx && venv/bin/pytest -q tests/test_reverse_sync*.py — 791 passed
  • cd confluence-mdx && venv/bin/pytest -q — 1144 passed, 2 skipped
  • cd confluence-mdx/tests && make test-reverse-sync — golden 16 passed, regression 43 passed
  • cd confluence-mdx/tests && make test-convert — 21 passed
  • cd confluence-mdx/tests && make test-byte-verify — fast/splice 각각 21/21 passed
  • openspec validate complete-reverse-sync --strict
  • git diff --check

Related tickets & links

🤖 Generated with Codex

## Summary
modified block의 renderer 정책을 typed strategy handler로 분리합니다.

- text block, list, preserved anchor, container, table handler를 독립 모듈로 추출합니다.
- StrategyRenderContext와 StrategyPrimitives로 patch_builder 역참조 없이 실행 상태를 전달합니다.
- registry completeness와 blocked strategy fail-closed 계약을 테스트합니다.
- OpenSpec task와 검증 결과를 현재 구현에 맞게 갱신합니다.

🤖 Generated with Codex

Co-Authored-By: Atlas <atlas@jk.agent>
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
querypie-docs Ready Ready Preview, Comment Jul 24, 2026 1:24pm

Request Review

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