# u2 — imp07_close_evidence_read **Unit**: u2 (Stage 2 plan) **Scope**: extract verbatim close-trio quotes from binding artifact for Gitea issue #7 (IMP-07 reverse-path). **Binding artifact**: `.orchestrator/tmp/issue7_comments_r3.json` (size=102144 B, mtime_utc=2026-05-19T17:11:58Z, comments_loaded=13). **Live Gitea API calls**: 0 (artifact is binding per Stage 1 / Stage 2 contract). **Fallback exit report check**: `ls .orchestrator/issues/ | grep '^7_stage' | wc -l = 0` (artifact is sole binding evidence). --- ## Close-trio comment IDs (verified present) ``` 17970 — 2026-05-15T18:28:22+09:00 (initial close decision) 19226 — 2026-05-18T08:31:05+09:00 (result report v1 — full reverse-path audit + policy verdict) 19240 — 2026-05-18T08:41:19+09:00 (result report v2 — restated for clarity) ``` All three IDs present in the binding artifact's `id` field. No API call required. --- ## c.17970 — verbatim (initial close-decision) ``` << 해당 기능 필요 없음 >> (*) mdx -> html 변환 이후 html 수기 수정된 것은 html에서만 적용. ``` **Translation (read-only)**: "<< This feature is not needed >> (*) After MDX → HTML conversion, manually edited HTML is applied in HTML only." **Signal**: explicit user-level policy decision — reverse path (edited HTML → MDX) is **not needed**. Edits live in the HTML only; they do **not** re-enter the pipeline. --- ## c.19226 — verbatim (result report v1, the structured close audit) > ## 결과보고서 — IMP-07 B-2 Edited HTML → MDX reverse path > > ### 1. 왜 필요했나 > 이슈는 사용자가 frontend에서 수정한 HTML을 다시 backend로 보내 MDX로 변환하고, Phase Z pipeline에 재진입시키는 reverse path를 검토하기 위한 것이었다. Phase Q~Y의 `html_to_slide_mdx`류 흐름을 Phase Z에 연결할 수 있는지 확인하려는 목적이었다. > > ### 2. 보완하려 한 기능 > 처음 가정은 "edited HTML outerHTML → backend → MDX 변환 → pipeline 재진입"이었다. 이를 위해 frontend edit state, backend endpoint, reverse converter, Stage 0/Step 2 재진입 가능성을 점검했다. > > ### 3. 실제 확인 사항 > - `SlideCanvas.tsx`는 iframe 내부 DOM을 contenteditable로 편집하게 하지만, outerHTML capture나 backend POST는 구현되어 있지 않았다. > - `Home.tsx`의 pending change 상태는 UI badge 수준이며 저장/역변환 payload로 이어지지 않았다. > - dev-only Vite `/api/run`은 forward pipeline 실행만 담당하고, reverse endpoint는 없었다. > - `src/main.py`에도 `/api/edit`, `/api/html_to_mdx`, `/api/save`류 endpoint가 없었다. > - 참조한 글벗 `html_to_slide_mdx` 구현은 현재 repo에 직접 존재하지 않아 포팅 또는 신규 구현이 필요했다. > > ### 4. 결론 > 사용자 결정으로 "MDX → HTML 변환 이후 HTML 수기 수정은 HTML에서만 적용"하기로 했다. 즉, edited HTML을 다시 MDX로 역변환하는 기능은 현재 Phase Z 본류에 필요하지 않다고 판정했다. > > ### 5. 남긴 것 / 넘긴 것 > 코드 변경 없이 close했다. 이슈는 "구현 완료"가 아니라 "기능 불필요 / 현 정책상 reverse path 미진행"으로 정리한다. 추후 정말 reverse editing이 필요해지면 별도 이슈에서 endpoint, marker coverage, converter 설계를 처음부터 다시 잡아야 한다. ### Verbatim no-runtime phrase (cited in Stage 1 exit report) The Stage 1 exit report named c.19226 as the source of the **"outerHTML → backend → MDX 재진입"** path being explicitly considered and declined. The phrase appears verbatim at the start of c.19226 Section 2: > "처음 가정은 'edited HTML outerHTML → backend → MDX 변환 → pipeline 재진입'이었다." And the binding no-runtime verdict appears verbatim at c.19226 Section 5: > "코드 변경 없이 close했다. 이슈는 '구현 완료'가 아니라 '기능 불필요 / 현 정책상 reverse path 미진행'으로 정리한다." **Translation (read-only, key phrases)**: - Section 3 enumerates: `SlideCanvas.tsx` has contenteditable but **no outerHTML capture and no backend POST**; `Home.tsx` pending-change is UI-badge only; Vite `/api/run` is forward-only; `src/main.py` has **no** `/api/edit | /api/html_to_mdx | /api/save` endpoint; the referenced glubeot `html_to_slide_mdx` is **not in the current repo**. - Section 5 closing phrase: "closed without code changes. The issue is filed not as 'implementation complete' but as **'feature not needed / current policy is to not proceed with the reverse path'**." --- ## c.19240 — verbatim (result report v2 — restated) > ## 결과보고서 v2 — HTML 수정본을 다시 문서로 되돌리는 기능 검토 > > ### 한 줄 요약 > 화면에서 수정한 HTML을 다시 MDX 문서로 되돌리는 기능을 검토했지만, 현재 제품 방향에서는 필요하지 않다고 판단해 구현하지 않았다. > > ### 왜 검토했나 > 사용자가 생성된 슬라이드 HTML을 직접 고친 뒤, 그 수정 내용을 다시 원본 문서나 자동 생성 흐름에 반영하고 싶을 수 있다. 이를 위해 HTML을 다시 MDX로 변환하는 reverse path가 가능한지 검토했다. > > ### 확인한 내용 > 현재 화면에서는 iframe 내부의 텍스트를 편집할 수 있는 UI 흔적이 있지만, 그 변경 내용을 backend로 저장하거나 MDX로 되돌리는 흐름은 구현되어 있지 않았다. 또한 reverse 변환 endpoint도 없고, 참조하려던 변환 함수도 현재 repo에 직접 존재하지 않았다. > > ### 최종 판단 > 사용자 판단에 따라, MDX에서 HTML로 변환된 뒤 HTML을 수기 수정한 내용은 HTML에서만 적용하는 것으로 정리했다. 즉, 수정된 HTML을 다시 MDX로 되돌리는 기능은 현재 범위에서는 만들지 않기로 했다. > > ### 사용자가 얻는 효과 > 불필요한 대규모 reverse 변환 기능을 만들지 않고, 제품 방향을 명확히 했다. 자동 생성의 원천은 MDX이고, HTML 수기 수정은 별도의 후처리 결과로 보는 정책이 정리되었다. > > ### 남은 한계 / 후속 작업 > 나중에 정말 "HTML 편집 → MDX 재생성"이 필요해지면, 단순 저장 기능이 아니라 HTML 구조 marker, backend endpoint, 변환 규칙, 재진입 검증까지 별도 이슈로 다시 설계해야 한다. > > ### 기술 메모 > 이 이슈는 코드 변경 없이 정책 판단으로 close했다. **Key verbatim restatement**: "이 이슈는 코드 변경 없이 정책 판단으로 close했다." → "This issue was closed by policy decision **without code changes**." --- ## Convergent reading across the trio | Axis | c.17970 | c.19226 | c.19240 | |---|---|---|---| | Verdict | "해당 기능 필요 없음" | "기능 불필요 / 현 정책상 reverse path 미진행" | "현재 범위에서는 만들지 않기로 했다" | | Code changes? | (implied none — pure policy comment) | "코드 변경 없이 close" (explicit) | "코드 변경 없이 정책 판단으로 close" (explicit) | | Path of edits | "html에서만 적용" | "MDX → HTML 변환 이후 HTML 수기 수정은 HTML에서만 적용" | "HTML 수기 수정은 별도의 후처리 결과" | | Reverse adapter? | n/a | "SlideCanvas.tsx … outerHTML capture나 backend POST는 구현되어 있지 않았다" + "src/main.py에도 /api/edit, /api/html_to_mdx, /api/save류 endpoint가 없었다" | "backend로 저장하거나 MDX로 되돌리는 흐름은 구현되어 있지 않았다" + "reverse 변환 endpoint도 없고" | | Future reactivation? | n/a | "별도 이슈에서 … 처음부터 다시 잡아야 한다" | "별도 이슈로 다시 설계해야 한다" | All three converge: **policy close, no runtime adapter, no backend endpoint, no frontend payload path, reactivation requires a fresh issue**. --- ## u2 test checklist (Stage 2 plan) - ✅ `jq` (substituted with `python -c "json.load"`; jq absent on this host) — 3 verbatim quotes extracted from binding artifact for IDs **17970**, **19226**, **19240**. No API. - ✅ c.19226 **outerHTML → backend → MDX 재진입 no-runtime phrase** cited verbatim (Section 2 of c.19226: `"처음 가정은 'edited HTML outerHTML → backend → MDX 변환 → pipeline 재진입'이었다."` and Section 5: `"코드 변경 없이 close했다. 이슈는 '구현 완료'가 아니라 '기능 불필요 / 현 정책상 reverse path 미진행'으로 정리한다."`). - ✅ `ls .orchestrator/issues/ | grep '^7_stage' | wc -l = 0` — artifact is sole binding evidence (no local stage-exit fallback). --- ## Files changed by u2 - **Created** `.orchestrator/drafts/56_close_evidence.md` (this file; evidence-only per RULE 6, **NOT** staged for commit). - **No** edits to: `src/**`, `templates/**`, `tests/**`, `docs/architecture/IMP-16-U2-WIRING-DESIGN.md`, `docs/architecture/INTEGRATION-AUDIT-02-REPORT.md`, `docs/architecture/PHASE-Z-IMPLEMENTATION-ISSUE-BACKLOG.md`. ## Verdict (u2 evidence-only; binding finding deferred to u6) The binding artifact independently confirms: IMP-07 (Edited HTML → MDX reverse path) was **closed as a policy / no-runtime decision**, not as an implementation completion. The three close-trio comments converge with **zero contradicting evidence**. This finding is **carried into u3** (live src/ + Front/client/src/ grep) for code-reality cross-check, and into **u6** (REPORT.md Section 3 — IMP-07 verdict) for the binding audit conclusion.