2 lines
9.2 KiB
JSON
2 lines
9.2 KiB
JSON
{"id":22398,"html_url":"https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/42#issuecomment-22398","pull_request_url":"","issue_url":"https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/42","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 #55] Stage 3 code-edit — IMP-04b u22 TrackB VP contract-first F30 industry_current_status_three_col (continue_same from Codex #54)\n\nExecuting unit: u22\n\n■ unit_executed\n- u22 (industry_current_status_three_col TrackB VP catalog entry — F30 / 1171281211 table-3col 3 산업 (제조업/건축/토목) × N 관점 행 다면 비교; 11th of 12 TrackB contract-first units per Stage 2 plan)\n\n■ files_changed\n- templates/phase_z2/catalog/frame_contracts.yaml (+65 lines incl. 2 leading blank lines + 1 trailing newline; single contract block appended at EOF after `policy_achievement_five_goals:` (u21 anchor at line 1610); CAT-only per Stage 2 plan; 1 commit = 1 unit boundary preserved)\n\n■ diff_summary\n- New top-level contract key `industry_current_status_three_col:` appended after `policy_achievement_five_goals:` (u21 anchor at line 1610) starting at line 1679. CAT-only — no WIP/test/builder/mapper edits. Single-file diff confined to `templates/phase_z2/catalog/frame_contracts.yaml`. Catalog top-level keys: 30 → 31 (1 TrackB VP unit remains to reach 32/32 + WIP==0 at u24 gate).\n- Contract surface (axis-by-axis, all four Stage-1 pre-flight axes honored):\n - axis 1 (`src/phase_z2_mapper.py:97-104` split_source enum) → `source_shape: top_bullets` (allow-list member)\n - axis 2 (`figma_to_html_agent/blocks/1171281211/{analysis.md, texts.md}`) → analysis.md + texts.md present, `index.html` absent → TrackB confirmed (`Test-Path` INDEX_ABSENT). analysis.md.pre_milestone2.bak present as ontology-sync backup (not a runtime artifact, ignored).\n - axis 3 (`src/phase_z2_mapper.py:262-265` ITEM_PARSERS) → `compare_row_3col_item` placeholder (new mapper wire = separate IMP, NOT in u22 scope per Stage 1 guardrail \"no calculate_fit migration / no AI per-frame call / no production refactor for tests\"). Peer parity with `compare_row_2col_item` precedent in bim_dx_comparison_table.\n - axis 4 (`scripts/smoke_frame_render.py:499-543` argparse) → no smoke render in checklist-shortened review (peer parity with u9..u21; visual_pending = render harness target absent — family partial 미작성)\n- Contract fields (all values traced to analysis.md / texts.md / V4 evidence; no hand-authored values):\n - `template_id: industry_current_status_three_col` / `frame_id: 1171281211` / `family: table` (analysis.md L25 `**family**: table`) / `visual_pending: true`\n - `cardinality.strict: 3` + `overflow_policy: abort_or_review` — analysis.md L29 `cardinality: ideal 3 / min 3 / max 3` → strict 3 = 3 column data axis (제조업/건축/토목, 가변 항목 없음). Peer parity with `bim_dx_comparison_table` strict:2 = 2 column convention — strict = column count NOT row count (확장 2-col → 3-col). data row count 는 `sub_zones.rows.cardinality` {min:1, max:12} 별 axis.\n - `role_order: [col_a, col_b, col_c]` — 3 산업 column axis per analysis.md slots (excludes title header + rows[] data axis per peer convention bim_dx_comparison_table: header / data 분리, role_order = column axis only).\n - `visual_hints.min_height_px: 350` — peer parity with bim_dx_comparison_table (350 = N rows × ~40 + header/title/padding/buffer). Phase Z compact (title 30 + header 30 + 5 data rows × 50 + padding 30 + buffer 10) = 350 baseline; visual-pending 미렌더 estimate (smoke 검증 별 IMP).\n - `accepted_content_types: [text_block]` — peer parity with all table/cards/composite contracts u9..u21.\n - `sub_zones` (5 entries: title + col_a/col_b/col_c_header + rows[]):\n - `title` (header strict 1) — analysis.md `slots (5개, required 5개): title, col_a_label, col_b_label, col_c_label, rows` 첫 slot\n - `col_a_header` / `col_b_header` / `col_c_header` (header strict 1 each) — analysis.md `col_a_label / col_b_label / col_c_label` 3 column singleton header (제조업 / 건축 / 토목)\n - `rows` (data, min 1 max 12) — analysis.md `rows` slot, variable N category rows axis (source 5 rows = 개요 / 핵심 Keyword / S/W 사용 / 발전방향 / S/W별 시장규모; max 12 peer parity with bim_dx_comparison_table)\n - `partial_target_path` = `.f30b__title` / `.f30b__header \u003e .f30b__header-cell:nth-child(2..4)` / `.f30b__rows` — peer parity naming with bim_dx_comparison_table `.f18b__*` convention (visual-pending family partial 미작성; CSS class is contract-first declaration, not authored CSS).\n - `payload`:\n - `title: { source: section.title }` — peer parity with all contracts u9..u21 (MDX section.title source)\n - `builder: compare_table_3col` — NEW builder placeholder, visual-pending; new mapper wire 별 IMP. Peer parity with bim_dx_comparison_table `compare_table_2col`.\n - `builder_options.item_parser: compare_row_3col_item` — NEW parser placeholder, top_bullet → {label, col_a, col_b, col_c}. Peer parity with `compare_row_2col_item`.\n - `builder_options.col_a_label_default: \"제조업\"` / `col_b_label_default: \"건축\"` / `col_c_label_default: \"토목\"` — analysis.md `three_industries` anchor set (제조업, 건축, 토목). Peer parity with bim_dx_comparison_table `col_a_label_default: \"BIM\"` / `col_b_label_default: \"DX\"` explicit default convention.\n - `builder_options.max_rows: 12` — typical 4-6, overflow 보호. Peer parity with bim_dx_comparison_table `max_rows: 12`.\n- Reason trace (V4 evidence, all 10 sections scanned, all `label: reject`):\n - main `01-2 rank 7, 0.5763` (base 0.5763, penalty 0.0, cardinality 0.5)\n - main `02-2.2 rank 16, 0.3497` (base 0.5497, penalty 0.2, cardinality 1.0)\n - main `03-1 rank 6, 0.6048` (base 0.6048, penalty 0.0, cardinality 1.0) — best non-holdout by rank AND by confidence\n - main `03-2 rank 6, 0.5324` (base 0.5324, penalty 0.0, cardinality 0.5)\n - holdout `01-1 rank 13, 0.5407 reject` (cardinality 1.0) — best holdout by rank AND by confidence\n - holdout `02-1 rank 13, 0.5253 reject` (cardinality 1.0)\n - holdout `02-2.1 rank 27, 0.0211 reject`, `04-1 rank 31, 0.0 reject`, `04-2.1 rank 32, 0.0 reject`, `04-2.2 rank 32, 0.0 reject`\n - Main four cardinality axis: `0.5 / 1.0 / 1.0 / 0.5` — frame table-3col (3 column 제조업/건축/토목 × N category row) mismatches MDX answer-section item counts (answer_map 01-2 → F18, 02-2.2 → F14, 03-1 → F13, 03-2 → F29; F30 not an answer-section target).\n- Visual-pending justification: `figma_to_html_agent/blocks/1171281211/index.html` absent (TrackB INDEX_ABSENT) + `templates/phase_z2/families/industry_current_status_three_col.html` absent (FAMILY ABSENT) → both source-side index.html AND runtime family partial 미작성 → `visual_pending: true` justified per Stage 2 TrackB contract-first convention.\n- Guardrail self-checks:\n - axis_1 split_source: `top_bullets` ∈ allow-list (src/phase_z2_mapper.py:97-104) ✓\n - axis_2 source artifacts: analysis.md + texts.md present, index.html absent (TrackB) ✓\n - axis_3 item_parser: placeholder declared, not wired (separate IMP) ✓\n - axis_4 smoke argparse: not invoked (visual-pending family partial 미작성) ✓\n - No `calculate_fit` migration ✓\n - No AI / Kei API call ✓\n - No 1-2 sample hardcoding (peer parity with 30 existing entries) ✓\n - No production refactor for tests ✓\n - 1 commit = 1 unit boundary preserved (CAT-only single-file diff) ✓\n- BT focused: `pytest -q tests/test_family_contract_baseline.py` → `3 passed in 0.39s` (no regression).\n- YAML lint: `python -c \"import yaml; d=yaml.safe_load(open('templates/phase_z2/catalog/frame_contracts.yaml',encoding='utf-8')); print('keys:', len(d))\"` → `keys: 31` (was 30 before u22, +1 confirmed).\n\n■ remaining_units\n- u23: industry_characteristics_three_col TrackB VP catalog entry — F31 / 1171281212 table-3col compressed view (12th and final TrackB contract-first unit, peer of u22 family/structure)\n- u24: 32/32 + WIP==0 gate — BT verify all 32 V4 template_ids present in CAT + `_WIP_FILES.md` WIP list empty (F23 / F9 already absorbed at u3 / u4)\n\n■ follow_up_issue_candidates\n- (none new) — Stage 1 out-of-scope axes (Track C architectural, V4 re-run, smoke argparse refactor, 1171281171 non-target dir, mdx_normalizer integration, calculate_fit migration, AI / Kei per-frame calls, VP family HTML authoring) remain deferred per Stage 1 scope_lock + Stage 2 plan. No new out-of-scope axis surfaced during u22 review.\n\nSTOP. DO NOT commit or push. Gitea comment IS the deliverable.\n","assets":[],"created_at":"2026-05-21T09:59:39+09:00","updated_at":"2026-05-21T09:59:39+09:00"}
|