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": 18944, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/12#issuecomment-18944", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/12", "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## Root cause\n\n**Problem statement (per issue body)**\n- Step 17 (Implemented Action 실행) — only `zone_ratio_retry` is implemented. Other Step 16 router action labels are MISSING.\n- Backlog §2 `IMP-12` + INSIGHT-MAP §3 axis registry propose three Salvage Candidates: `redistribute` + glue + font compression (sourced from PHASE-Q-AUDIT §2.4 / §2.5).\n\n**Current code paths (verified)**\n- Router: `src/phase_z2_router.py:28-37` `ACTION_BY_CATEGORY` — 8-category mapping. `zone_ratio_retry` is the only IMPLEMENTED entry; `layout_adjust` / `details_popup_escalation` MISSING, `frame_reselect` / `adapter_needed` PARTIAL, `abort` IMPLEMENTED.\n- Retry plan: `src/phase_z2_retry.py:43-195` `plan_zone_ratio_retry` — **single primary donor only**. Lines 165-180: `if primary_donor[\"slack\"] < target_added_px → feasible=False`, with inline comment \"A3 minimal : single primary donor (multi-donor 는 future)\".\n- Retry orchestrator: `src/phase_z2_pipeline.py:1765-1900` `_attempt_zone_ratio_retry` — retry_budget=1, donor rule strict (sibling / visual ok / capacity ok / slack>0 / min_height preserved, line 1813).\n- Failure router: `src/phase_z2_failure_router.py` — `donor_slack_insufficient` enum exists, consumed downstream.\n- Salvage sources: `src/fit_verifier.py:488-587` `ROLE_ZONE_MAP` + `redistribute(analysis, containers, min_margin_px)` (role/zone schema, Phase Q product). `src/space_allocator.py:897-1011` `GlueSpec / SPACING_GLUE / FONT_SIZE_STEPS / compute_glue_css_overrides / find_fitting_font_size`.\n\n**Upstream locks that constrain Step 16/17 scope**\n\n1. **PHASE-Z-PIPELINE-OVERVIEW.md:333 Step 17 user lock (current)** : \"frame_internal_fit_candidate 가 *허용할 수 있는 내부 sub-mechanism* (density envelope / line rhythm / internal grid row / text block allocation 등) 은 *frame contract 가 declare 한 envelope 안* 에서만 동작 ... **별도 action label 로 등재하지 않음** — `density_adjust_candidate` 같은 이름은 *공통 CSS/padding 축소 antipattern* 을 초대할 위험\". Verbatim Korean quote from doc.\n2. **memory `feedback_phase_z_spacing_direction`** : forbids \"shared text-line gap\", \"transform-block padding\", \"section-title margin-bottom\" shrinking. Direction is preserve / increase breathing room, not shrink to fit.\n3. **PHASE-Z-PIPELINE-OVERVIEW.md:352 Step 19** : `frame_internal_fit_candidate` execution contract / internal envelope **undefined** (the frame-contract envelope format itself is yet to be specified).\n4. **PHASE-Q-AUDIT.md:1300** — the source already classifies the three Salvage Candidates as `§3 review subjects`, not as automatic adoption. AI-isolation invariant + \"audit verdict ≠ adoption decision\" reaffirmed in the 2026-05-11 reclassification pass.\n\n**Root cause + conflict**\n- Primary root cause = `plan_zone_ratio_retry` is single-donor only. When the primary donor's slack is insufficient, sibling donors could supply additional slack but the planner returns feasible=False.\n- Secondary observation = the source §2.5 glue + font compression are exactly the antipattern that lock #1 and memory rule #2 forbid: `compute_glue_css_overrides` shrinks the shared CSS vars `--spacing-block` / `--spacing-inner` / `--container-padding` (`space_allocator.py:944-983`), and `find_fitting_font_size` shrinks the visible font size globally (`space_allocator.py:986-1011`). Lock #3 means the frame-contract envelope that could legitimately host them does not exist yet.\n\n**Key conclusion** : Of the three Salvage Candidates, only zone-level multi-donor `redistribute` is compatible with the active locks. Glue + font compression conflict directly with the locks → explicit reject from IMP-12 scope.\n\n## Scope-lock (2 axes, refine-only)\n\n### IN scope\n\n1. **axis_1 — multi-donor aggregation** : Extend `src/phase_z2_retry.py:165-180` `plan_zone_ratio_retry` from the single-donor branch to aggregated multi-donor.\n - When the primary donor is insufficient, walk the already-sorted `donor_candidaLine truncated