untracked files on main: dceb101 feat(#63): IMP-34 R1 donor capacity measured bound (u1+u2)

This commit is contained in:
kmlee1 committed 2026-05-21 22:07:41 +09:00
commit 8f085a28d3
3220 files changed
+985495

No files matched your search

@@ -0,0 +1 @@
[{"id": 20735, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/19#issuecomment-20735", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/19", "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-19)\n\nsource = INSIGHT-MAP §3 / §2.8 I4 (`renderer._group_blocks_by_area`) — Reference Only axis.\nrelated step = Step 8 (Zone + Region Ratio Planning).\npriority = ↓ low. dependency = `soft link: IMP-09` (zone 비중 분배 영역 공유).\nguardrail = Phase O 컨테이너 회귀 X / 직접 통합 X.\n\n## 2. Root cause (3-axis check)\n\n### Axis A — Phase O / Phase Q source pattern (read-only reference)\n\n- `D:\\ad-hoc\\kei\\design_agent\\src\\renderer.py:210-295` `_group_blocks_by_area(blocks, container_specs)` :\n - block 들을 `block[\"area\"]` 키로 OrderedDict grouping (\"body\", \"left\", \"right\", \"hero\", \"detail\" 등).\n - `container_specs` 가 들어오면 그 area zone 안에 `role_order = [\"배경\", \"본심\"]` 순서로 *역할별 고정 높이 컨테이너* 생성 (`spec.zone` / `spec.topic_ids` 매칭, fallback = 순서 매칭).\n - 각 container 의 inline style = `height:{spec.height_px}px` + `font-size:{font_size}px` + `--spacing-inner:{padding}px` + `--font-body:{font_size/16:.3f}rem` (block_constraints 에서 가져옴).\n - 미배정 block 은 container 옆에 그대로 append.\n - `len(block_list) == 1` → single html. 그 외 → flex-column wrapper.\n- 호출 지점 = `renderer.py:353` `render_multi_page()` + `renderer.py:426` `render_slide()` (모두 Phase O / Phase Q 흐름).\n- container_specs 의 생산자 = `D:\\ad-hoc\\kei\\design_agent\\src\\space_allocator.py:445` `build_containers_type_b(page_structure, ...)` — Kei `page_structure` 판단 (역할 → zone + topic_ids + weight) 에서 *역할별 ContainerSpec* 생성. `top` / `bottom_left` / `bottom_right` / `footer` zone semantics (Phase Q 유형 B).\n\n### Axis B — Phase Z Step 8 zone-ratio 현 상태 (active, IMP-09 cover)\n\n- `D:\\ad-hoc\\kei\\design_agent\\src\\phase_z2_pipeline.py:794-853` `compute_zone_layout(zones_data, ...)` :\n - row-axis solver — `min_height_first + content_weight_distribution`.\n - frame contract `visual_hints.min_height_px` 우선 + 남은 공간을 `content_weight.score` 비율로 분배 + rounding diff 마지막 zone 흡수.\n- `phase_z2_pipeline.py:924-` `compute_zone_layout_cols` — col-axis 대칭 helper (IMP-09 PR 1).\n- `phase_z2_pipeline.py:1125-1152` `_build_rows_dynamic` (topology=\"rows\", horizontal-2), `1210-` `_build_cols_dynamic` (topology=\"cols\", vertical-2), `1155-1207` `_build_grid_dynamic_2d` (T / inverted-T / side-T-left / side-T-right / 2x2 — IMP-09 PR 2).\n- `phase_z2_pipeline.py:1343-1452` `build_layout_css(layout_preset, zones_data, override_zone_geometries)` — topology dispatch + user override (`_override_to_grid_tracks`).\n- 결론 : Phase Z Step 8 의 *normal-path zone-비중 분배* = `compute_zone_layout` + `compute_zone_layout_cols` + 8-preset dispatcher 로 완비. IMP-09 PR 1 + PR 2 이미 implemented (`feat(IMP-09): PR 1 — col-axis solver + per-zone geometry mapper + retry gate` / `feat(IMP-09): PR 2 — 2-D dynamic dispatch for 5 preset families`).\n\n### Axis C — abstraction gap (audit §2.8 I4 명시)\n\n| Phase Q (`_group_blocks_by_area`) | Phase Z (`compute_zone_layout` + `build_layout_css`) |\n|---|---|\n| 단위 = block-level area (body / left / right / hero / detail) | 단위 = zone position (preset 의 positions 키 — top / bottom_left / bottom_right 등) |\n| 비중 source = Kei `page_structure` → `build_containers_type_b` → `ContainerSpec.height_px` (역할별 px 직접 지정) | 비중 source = frame contract `min_height_px` + content_object 의 `content_weight.score` (deterministic) |\n| 의미 단위 = 역할 (\"배경\" / \"본심\") — Kei semantics | 의미 단위 = layout preset positions + content-weight (preset 어휘) |\n| AI 의존 = Kei `page_structure` (Phase Q AI 호출 path) | AI 의존 = 0 (normal path AI=0 invariant PZ-1) |\n| catalog = `templates/blocks/catalog.yaml` (Phase Q block id → variant) | catalog = `templates/phase_z2/catalog/frame_contracts.yaml` (frame contract + frame_partials) |\n\naLine truncated