[{"id": 19950, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/18#issuecomment-19950", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/18", "user": {"id": 28, "login": "Kyeongmin", "login_name": "", "source_id": 0, "full_name": "이경민", "email": "kyeongmin@noreply.localhost", "avatar_url": "https://gitea.hmac.kr/avatars/d883a35f9197b080b2a0c535c3f9357dcd5c7d40b3c42bd8f40218cb94609a8e", "html_url": "https://gitea.hmac.kr/Kyeongmin", "language": "", "is_admin": false, "last_login": "0001-01-01T00:00:00Z", "created": "2025-12-30T10:51:04+09:00", "restricted": false, "active": false, "prohibit_login": false, "location": "", "website": "", "description": "", "visibility": "public", "followers_count": 0, "following_count": 0, "starred_repos_count": 1, "username": "Kyeongmin"}, "original_author": "", "original_author_id": 0, "body": "[Claude #1] Stage 1 — problem-review Round #1\n\n## 1. Re-read of scope (backlog §2 IMP-18)\n\nsource = INSIGHT-MAP §3 / §2.8 I3 (`renderer._preprocess_svg_data`) — Reference Only axis.\nrelated step = Step 0 (catalog / contract / asset 사전 준비) + Step 9 (region-level frame / display selection).\npriority = ↓ low. dependency = `soft link: IMP-04` (frame_partials 등록 후 의미 ↑).\nguardrail = Phase R' (renderer.py) 회귀 X.\n\n## 2. Root cause (3-axis check)\n\n### Axis A — Phase R' source pattern (read-only reference)\n\n- `D:\\ad-hoc\\kei\\design_agent\\src\\renderer.py:169-207` `_preprocess_svg_data(block_type, block_data)` :\n - SVG_BLOCKS = {\"venn-diagram\", \"relationship\"} 만 처리.\n - `items[0].cx` already set → 그대로 반환 (수동 좌표 우선).\n - 아니면 `src.svg_calculator.prepare_venn_data(items, center_label, center_sub, description)` 호출 → `block_data` 에 enriched fields merge.\n - Exception 시 → warning + Phase 1 fallback (좌표 없이 Jinja2 전달).\n- `D:\\ad-hoc\\kei\\design_agent\\src\\svg_calculator.py:15-156` :\n - `calc_circle_positions(n, center_x, center_y, radius)` — 12 시 방향 시작 시계방향 N 등분, `-π/2 + 2πi/n`.\n - `calc_item_radius(n, base=75.0)` — n>3 이면 `base / (1 + (n-3)*0.2)` 축소.\n - `calc_orbit_radius(n, base=120.0)` — n>3 이면 `base * (1 + (n-3)*0.08)` 확장.\n - `calc_outer_radius(n, orbit_r, item_r)` — `orbit_r + item_r + 40` (margin).\n - `prepare_venn_data(items, ...)` — items 에 `cx/cy/r` mutate + outer_r / center_x / center_y / viewbox_* 반환.\n- 호출 지점 = `renderer.py:321` `render_multi_page()` 내부 — block-level rendering (Phase R').\n\n### Axis B — Phase Z frame_partials 의 SVG 좌표 박힘 area (현 상태)\n\n- `D:\\ad-hoc\\kei\\design_agent\\templates\\phase_z2\\families\\*.html` 8 family + `frames/*.html` 2 frame 전수 확인 → **`