{"id":3745,"url":"https://gitea.hmac.kr/api/v1/repos/Kyeongmin/C.E.L_Slide_test2/issues/94","html_url":"https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/94","number":94,"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,"title":"IMP — 89-b region/slot marker injection in 11 partials (split from #89)","body":"## IMP — 89-b region/slot marker injection (Layer A render path activation — 89-b split from #89)\n\n**관련 step**: Step 11 (slot mapping) + Step 13 (render) + Step 21 (debug/trace)\n**source**: #89 split — Stage 1 R1 의 4 sub-axis 중 89-b 분리 (2026-05-24)\n**roadmap axis**: R1 (안정성) — Layer A first-class lock\n**wave**: P2 (after #91 acceptance gate)\n**priority**: 낮 — additive data-* attr only, low risk\n**dependency**: #89 closed (89-a complete, commit b1bbe27), **#91 acceptance gate 선결 권장**\n\n### scope\n\n**13 rendered partial 전체** 에 `data-region-id=\"...\"` + `data-content-unit-id=\"...\"` attribute 추가 (additive only).\n\n📌 2026-05-24 amend (Codex consensus): 본 이슈 scope = `data-region-id` / `data-content-unit-id` marker — 현재 **0 / 13 partial** 에 존재 (전혀 없음). 따라서 13 partial 전체 가 본 이슈 scope.\n\n별 marker (`data-frame-slot-id`) = **2 / 13** 에 이미 존재 (F29 `process_product_two_way.html` + F9 `pre_construction_model_info_stacked.html`). 나머지 **11 marker-less** 의 `data-frame-slot-id` 확대 = **#96 (89-d) scope** — 본 이슈 와 별 axis.\n\n#89 Stage 1 R1 의 evidence 기준 (2026-05-24 fresh validation):\n- `templates/phase_z2/families/*.html` = **13 partial**\n- `grep -l data-region-id templates/phase_z2/families/*.html` = **0**\n- `grep -l data-content-unit-id templates/phase_z2/families/*.html` = **0**\n- `grep -l data-frame-slot-id templates/phase_z2/families/*.html` = **2** (F29 + F9)\n- → 본 이슈 (89-b) marker = **13 partial 전체** 대상\n\n### out of scope\n\n- 19 catalog-only contract (no partial HTML) 의 marker — partial 자체 가 없음\n- partial 의 시각 / 구조 변경 (Figma audit 별 axis)\n- B5 frame_slot_metrics Selenium 측정 자체 (#96 89-d 가 그 axis 다룸)\n\n### guardrail / validation\n\n- additive attr only — class / element / 기존 attr 변경 X\n- mdx 01-05 의 final.html SHA = byte-equivalent except for new `data-*` attrs\n- placement_trace ↔ DOM 의 `[data-region-id]` set 정합 검증\n\n### relevant feedback\n\n- `feedback_no_hardcoding` — deterministic marker injection\n- `feedback_workflow_atomicity_rules` — 1 commit = 1 partial 권장 (rollback 단위)\n\n🤖 Claude Opus 4.7 — #89 split (2026-05-24)","ref":"","assets":[],"labels":[],"milestone":null,"assignee":null,"assignees":null,"state":"closed","is_locked":false,"comments":102,"created_at":"2026-05-24T01:04:50+09:00","updated_at":"2026-05-28T05:43:26+09:00","closed_at":"2026-05-27T14:23:37+09:00","due_date":null,"time_estimate":0,"pull_request":null,"repository":{"id":226,"name":"C.E.L_Slide_test2","owner":"Kyeongmin","full_name":"Kyeongmin/C.E.L_Slide_test2"},"pin_order":0}
