Files
C.E.L_Slide_test2/docs/architecture/PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md
kyeongmin 182aa7c47f docs(#40): IMP-31 gate audit + activation reference cross-link
- u1: IMP-17-CARVE-OUT.md anchor cite :564 -> :570/:572/:575/:580/:664
- u2: new IMP-31-GATE-AUDIT.md (3-cond AND gate state + 8 issue-body axes)
- u3: backlog row + status-board section 5 cross-ref to audit doc (no verdict dup)

doc-only. no src/ templates/ tests/ touched. src/phase_z2_ai_fallback/ not created.
2026-05-21 01:59:03 +09:00

139 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase Z Implementation Issue Backlog
본 문서는 [`PHASE-Q-INSIGHT-TO-22STEP-MAP.md`](PHASE-Q-INSIGHT-TO-22STEP-MAP.md) 의 *insight → 22-step 매핑* 을 기반으로 implementation 단위 issue list 를 정리한 backlog. 박기 → review loop → 격파 cycle 진입 전 prereq lock.
## review loop workflow
각 issue 별 sequence:
1. preview chat draft
2. Codex 1차 review (comment)
3. Claude 재검토 (comment)
4. Codex 재검증 (comment)
5. 100% 합의 → `scope-locked``ready-for-implementation`
6. Claude Code 구현
7. Codex 검증 (diff scope / 22-step invariant / 하지 말 것 위반 / commit/push 상태)
8. issue close + comment 결과 기록 (commit hash / 검증 결과 / follow-up)
9. 다음 issue
운영 thread = **Gitea Issues** (sanity check pending — 활성 여부 별 GO 확인).
## labels (8)
`needs-codex-review` / `needs-claude-review` / `scope-locked` / `ready-for-implementation` / `implemented` / `verified` / `blocked` / `closed`
## dependency convention
모든 dependency cell 은 다음 3 형식으로 표기:
- `none` — 다른 issue 와 dependency 없음
- `hard link: IMP-XX (이유)` — 선행 issue 박힘 후 진행 필수
- `soft link: IMP-XX (이유)` — 참고 또는 의미 ↑ 관계, 독립 진행 가능
## schema note
§1 / §2 / §3 = 9 column (`related step` + `dependency`). §4 cleanup = 9 column (`related module` + `trigger axis`). cleanup 은 module-level + axis 활성 시점 trigger 라 schema 변형 (semantics 분리 의도).
`§0` 9 Archive marker 인 G1 / H4 / H5 / I5 / J1 / J2 / K1 / K2 / L1 = 구현 대상 X — 본 backlog 안 implementation issue 화 X. 단 issue 생성 시 review loop 안 [`PHASE-Q-INSIGHT-TO-22STEP-MAP.md`](PHASE-Q-INSIGHT-TO-22STEP-MAP.md) §0 cross-ref 명시.
---
## §1 22-step map implementation issues (11 — INSIGHT-MAP §2 source)
| ID | title | related step | source | priority | scope | guardrail / validation | dependency | status |
|---|---|---|---|---|---|---|---|---|
| IMP-01 | A-6 Zone DOM 좌표 export | Step 14, 21 | §2 A-6 Salvage | ↑ high (small) | `_MEASURE_SCRIPT` JS extension `getBoundingClientRect()` + artifact field 추가 | AI/Kei/V4/frame 선택 변경 X / DOM bbox trace / 기존 debug.json schema 보존 (additive) | none | pending |
| IMP-02 | A-1 Stage 0 normalize chained adapter | Step 2 | §2 A-1 Salvage chained | ↑ high (medium) | `normalize_mdx_content` + `extract_major_sections` + `extract_conclusion_text` chained adapter + dual-write | AI/Kei normalize 회귀 X / step02 sections / sub_sections trace 설명 가능 | none | implemented |
| IMP-03 | A-1 popup/image/table trace | Step 3 | §2 A-1 chained 보강 | medium | normalized popups / images / tables → ContentObject 변환 (B1 v0 보강) | AI/Kei content extraction 회귀 X / popup/image/table 추출 trace 설명 가능 | hard link: IMP-02 (Stage 0 normalize output 의 popup/image/table list 의존) | implemented |
| IMP-04 | A-2 Catalog 확장 | Step 0, 9 | §2 A-2 새로 만들기 (핵심 unblocker) | medium (large) | `frame_contracts.yaml` + frame_partials 32 frame 등록/확장 | Phase R' frame catalog 회귀 X / V4 logic 변경 X / catalog 확장 후 PASS/FAIL 변화와 frame 선택 trace 설명 가능 | none | implemented |
| IMP-05 | A-5 V4 fallback | Step 9, 16, 17, 20 | §2 A-5 새로 만들기 | medium | Step 9 / Step 16 router 확장 (rank-1 fail 시 rank-2/3 fallback) + step20 status semantics | `calculate_fit` 통째 Migrate X (dual path 위험) / 신설 status (`PASS_WITH_FALLBACK` 등) 일관성 / frame 변경 허용 trace 설명 | hard link: IMP-04 (catalog 확장 후 fallback path 의미 있음) | implemented |
| IMP-06 | B-1 Zone-section override | Step 6 + input Step 1, 22 | §2 B-1 새로 만들기 (backend path) | medium | CLI 인자 + composition planner override path 신설 | Kei composition / Phase R' frame 보조 회귀 X / override 적용 시 composition_unit schema 정합 + trace | soft link: IMP-04 (frame 후보 ↑ 시 override 의미 ↑) | implemented |
| IMP-07 | B-2 Edited HTML → MDX reverse path | Step 22 + Step 1, 2 | §2 B-2 새로 만들기 (backend path) | medium | frontend edited HTML → backend → MDX 변환 → pipeline 재진입 (글벗 `html_to_slide_mdx` 참조) | AI/Kei reverse 회귀 X / 재진입 후 step02 정합 + visual_check 통과 | hard link: IMP-02 (A-1 normalize schema 와 reverse path schema 정합 필요) | documented:no-runtime |
| IMP-08 | B-3 Sub-section drag drop | Step 3 | §2 B-3 새로 만들기 (backend schema) | ↓ low | Phase Z `section_id` schema 확장 (sub_sections 단위 매핑) | AI/Kei schema 회귀 X / backward compatible / step03 trace | hard link: IMP-02 (A-1 normalize sub_sections schema 의존) | implemented |
| IMP-09 | B-4 다른 layout zone-geometry | Step 8 | §2 B-4 새로 만들기 (backend layout) | ↓ low | `build_layout_css` 분기 확장 (top-1-bottom-2 / left-1-right-2 / grid-2x2 등) | Kei `build_containers_type_b` 회귀 X / step08 trace | soft back-link: IMP-19 ([reference doc](IMP-19-ZONE-RATIO-REFERENCE.md) — Phase O block-level pattern reference, no runtime integration) | implemented |
| IMP-10 | D-1 filtered_section_reasons UI | Step 20, 22 | §2 D-1 frontend 신규 | ↓ low | frontend UI — backend artifact read-only 표시 | AI/Kei UI 회귀 X / backend artifact read-only | none | implemented |
| IMP-11 | D-2 Frame min_height 표시 | Step 22 | §2 D-2 새로 만들기 (frontend hint + catalog 참조) | ↓ low | frontend UI — frame contract `min_height_px` read-only + resize hint | AI/Kei UI 회귀 X / catalog 참조 + resize limit | none | implemented |
---
## §2 Separate axis registry issues (9 — INSIGHT-MAP §3 source)
| ID | title | related step | source | priority | scope | guardrail / validation | dependency | status |
|---|---|---|---|---|---|---|---|---|
| IMP-12 | Step 16/17 retry 정밀화 | Step 16, 17 | §3 group B (Salvage deterministic) | medium | `redistribute` + glue + font compression — Step 16 router action 신설 + Step 17 action 실행 | AI fallback X / Kei retry loop (H5) 회귀 X / status semantics 일관 | soft link: IMP-05 (Step 16 router 영역 공유, 병렬 가능) | implemented |
| IMP-13 | A-3 frame preview 일관성 | Step 0, 14, 21 | §3 Salvage 후보 | ↓ low | `capture_slide_screenshot` Salvage — preview.png 자동 생성 path | Phase R' reference path 회귀 X / preview artifact trace | soft link: IMP-04 (catalog frame_partial 확장 시 의미 ↑) | implemented |
| IMP-14 | A-4 slide-base iframe mode | Step 13 | §3 새로 만들기 | ↓ low | `slide-base.html` conditional CSS (embedded vs standalone) | Claude / Phase R' HTML generation 회귀 X / Jinja2 deterministic | none | implemented |
| IMP-15 | Step 14 visual_check 보강 | Step 14, 21 | §3 H1 Reference Only | medium | image_aspect_mismatch / tabular_overflow 검사 추가 | AI/Kei classification 회귀 X / deterministic 검사 + trace | soft link: IMP-01 (Step 14 측정/trace layer 공유) | implemented |
| IMP-16 | B-2 verification 보조 axis | Step 1, 2, 14, 21, 22 | §3 H3 Reference Only | ↓ low | B-2 reverse path 의 verification 보조. main reverse path 는 IMP-07, 본 issue 는 text/visual/trace 검증 layer | AI/Kei verification 회귀 X / utility deterministic | hard link: IMP-07 (B-2 main 활성 시점 의미) | documented:dormant |
| **IMP-17** | **AI repair fallback infra** (**carve-out — normal path 밖**) | Step 12, 16, 17 | §3 G3 | (별 axis priority — pending) | [carve-out boundary + activation gate](IMP-17-CARVE-OUT.md) (3-cond AND: User GO ∧ B4 frame_selection evidence ∧ IMP-04/05 live — full def in u2 doc) — `httpx` + SSE streaming + retry + JSON parse pattern reference — light_edit / restructure proposal. Activation tracker = IMP-31 (#40); current gate state in [`IMP-31-GATE-AUDIT.md`](IMP-31-GATE-AUDIT.md) | **normal path AI 호출 0 — 본 axis = fallback only, normal path 와 분리 설계** / Kei persona 단절 (Phase Q 자산과 단절) | soft link: IMP-04 + IMP-05 (catalog 확장 + V4 fallback 활성 시 의미) | documented (deferred) |
| IMP-18 | I3 SVG 좌표 보강 | Step 0, 9 | §3 Reference Only | ↓ low | `renderer._preprocess_svg_data` 패턴 reference — frame_partials SVG 좌표 사전 박힘 — [gap report](IMP-18-SVG-GAP-REPORT.md) | Phase R' (renderer.py) 회귀 X | soft link: IMP-04 (frame_partials 등록 후 의미 ↑) | documented |
| IMP-19 | I4 zone 비중 분배 | Step 8 | §3 Reference Only | ↓ low | `renderer._group_blocks_by_area` 패턴 reference — zone-level ratio 분배 — [reference doc](IMP-19-ZONE-RATIO-REFERENCE.md) | Phase O 컨테이너 회귀 X / 직접 통합 X | soft link: IMP-09 (zone 비중 분배 영역 공유) | documented |
| IMP-20 | H2 frame contract validation | Step 10 | §3 Reference Only | ↓ low | `content_verifier.verify_structure` pattern reference — Phase Z frame contract 검증 pattern — [reference doc](IMP-20-FRAME-CONTRACT-VALIDATION-REFERENCE.md) | Phase Q `REQUIRED_PATTERNS` 값 회귀 X / Phase Z 자체 pattern dict 설계 | soft link: IMP-04 (확장 catalog 적용 시 검증 범위 확대) | documented |
> **IMP-15 child issues note (#45#49)** — IMP-15 (Step 14 visual_check 보강) is the parent row; child sub-axes were tracked as separate Gitea issues and are not given standalone backlog rows. Children: #45 (e9b3d2e), #46 (2827622), #47 (535c484), #48 (614c533), #49 (verification-only). Per INTEGRATION-AUDIT-01 §10.3 footnote option to avoid double-counting under IMP-15.
---
## §3 audit §1 mapping correction issues (5 — INSIGHT-MAP §4 source)
| ID | title | related layer | source | priority | scope | guardrail / validation | dependency | status |
|---|---|---|---|---|---|---|---|---|
| IMP-21 | G2 — audit §1 lens B-1/B-2 column 정정 | audit §1 lens (B-1, B-2) | §4 G2 (§2.6 catch) | ↓ low (doc-only) | content_editor 매핑 부정확 정정 | audit doc §1 표 정정만 / cross-ref 정합 | none | pending |
| IMP-22 | I6 — audit §1 lens A-3/A-4 column 정정 (renderer) | audit §1 lens (A-3, A-4) | §4 I6 (§2.8 catch) | ↓ low (doc-only) | renderer 매핑 정확도 정정 | audit doc §1 표 정정만 / cross-ref 정합 | none | pending |
| IMP-23 | J5 — audit §1 lens A-3/A-4 column 정정 (html_generator) | audit §1 lens (A-3, A-4) | §4 J5 (§2.9 catch) | ↓ low (doc-only) | html_generator Selenium import 부재 + slide-base 호출 부재 정정 | audit doc §1 표 정정만 / cross-ref 정합 | hard link: IMP-22 (같은 audit §1 lens row 정정 — 박기 순서 의존) | pending |
| IMP-24 | K6 — audit §1 lens A-2 column 정정 | audit §1 lens (A-2) | §4 K6 (§2.10 catch) | ↓ low (doc-only) | block_reference/block_selector 간접 매핑 정정 | audit doc §1 표 정정만 / cross-ref 정합 | none | pending |
| IMP-25 | L5 — audit §1 lens B-1 column 정정 | audit §1 lens (B-1) | §4 L5 (§2.11 catch) | ↓ low (doc-only) | pipeline orchestration entry 간접 매핑 정정 | audit doc §1 표 정정만 / cross-ref 정합 | none | pending |
---
## §4 cleanup issues (3 — INSIGHT-MAP §5 source)
| ID | title | related module | source | priority | scope | guardrail / validation | trigger axis | status |
|---|---|---|---|---|---|---|---|---|
| IMP-26 | J3 — html_generator utility 중복 cleanup | §2.9 html_generator | §5 J3 | ↓ low (future) | `normalize_mdx` / `_slice_mdx_sections` / `_get_definitions` / `_get_conclusion` 중복 제거 (vs §2.1/§2.2 SoT) | Phase R' 영역 — 코드 제거만 | Phase R' archive trigger AND §2.1/§2.2 SoT signature unification (both preconditions required to keep guardrail = code-removal-only) | deferred |
| IMP-27 | K5 — catalog 로드 + `_get_block_by_id` 중복 cleanup | §2.10 + §2.8 (3 module) | §5 K5 | ↓ low (future) | block_reference / block_selector / renderer 의 catalog 로드 중복 제거 | Phase R' 영역 또는 Phase Z catalog 확장 axis | Phase Z catalog 확장 axis 활성 시 (soft link: IMP-04) | pending |
| IMP-28 | L4 — `_parse_json` 중복 cleanup | §2.11 + §2.6 + §2.9 (3 module) | §5 L4 | ↓ low (future) | pipeline / content_editor / html_generator 의 `_parse_json` 중복 제거 | Phase R' 영역 또는 Phase Z utility 통합 axis | Phase R' cleanup 또는 Phase Z utility 통합 axis 활성 시 | pending |
---
## §5 frontend matching insight — source pending
| status | content |
|---|---|
| **pending source** | Frontend matching insight 는 source pending 상태 — 실제 implementation issue 미열기. 출처가 확정되기 전까지 본 backlog 에 implementation issue row 추가 X. 출처 확정 후 별 axis 에서 INSIGHT-MAP §2 row + §3 registry + 본 backlog issue 통합 보강 |
---
## Gitea Issues sanity check (pending)
- `gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2` 의 Issues tab 활성 여부 = **확인 필요** (사용자 허락 후 별 GO — web fetch 또는 API)
- 활성 시 = 본 backlog 박기 후 §1 / §2 / §3 / §4 sub-section 별 issue 생성 (4 단계 분해)
- 비활성 시 = 사용자 lock 별 axis (GitHub Issues 또는 repo 문서만 운영)
---
## 진행 흐름
```
[A frame — 본 doc] [B frame — Gitea Issues]
backlog doc 박기 (본 turn)
commit / push 별 GO
Gitea Issues 활성 sanity check 별 GO ─┐
§1 11 issue 생성 (preview + 박기 별 GO)
§2 9 issue 생성 (preview + 박기 별 GO)
§3 5 issue 생성 (preview + 박기 별 GO)
§4 3 issue 생성 (preview + 박기 별 GO)
각 issue review loop 운영
(Codex 1차 → Claude 재검토 → Codex 재검증
→ 100% 합의 → 구현 → 검증 → close)
```
- **IMP-50 audit (2026-05-19)** — [INTEGRATION-AUDIT-01-REPORT.md](INTEGRATION-AUDIT-01-REPORT.md) — Decision: **CONDITIONAL GO for #19** (F-3 backlog status sweep + F-2 family template reconciliation required before #19 Stage 2) — Stage 5 commit SHA: 8c7d693