This commit is contained in:
commit
8f085a28d3
3220 files changed
+985495
No files matched your search
@@ -0,0 +1 @@
|
||||
[{"id": 19035, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/13#issuecomment-19035", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/13", "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 (verified)\n\n**Current state of \"frame preview\" artifacts** (verified by file listing 2026-05-18):\n\n| Source | Coverage | Semantic | Path |\n|---|---|---|---|\n| Figma original export | 32 / 32 | Figma *design* PNG (not actual render) | `data/figma_previews/{NN}.png` |\n| Hand-placed (stale) preview | 4 / 33 frame dirs | Single Apr 20 08:33 batch — predates current `index.html` for 1171281198 (Apr 30), 1171281210 (Apr 30) → stale | `figma_to_html_agent/blocks/{frame_id}/preview.png` |\n| Per-slide preview (Step 14) | per-run | Selenium `driver.save_screenshot` of full slide | `<run_dir>/phase_z2/preview.png` (`src/phase_z2_pipeline.py:2202`) |\n\n**frame_partial source HTML coverage gap**: only 20 / 33 `figma_to_html_agent/blocks/{frame_id}/index.html` exist (rest = catalog gap — IMP-04 soft dep).\n\n**Frontend (`/frame-preview/{n}` middleware, `Front/vite.config.ts:444`)** serves `data/figma_previews/{NN}.png` only — explicit comment line 443 says \"frame_id ↔ frame_number 매핑 없음 일단 figma_previews 만 사용\". *Verification*: mapping does exist in `data/figma_previews/index.json` (frame_number → frame_id). The blocker is not path-indexing but absence of a consistent rendered preview generator.\n\n**Salvage anchor**: `capture_slide_screenshot` (`src/slide_measurer.py:299`) returns base64; the file-write pattern lives in `phase_z2_pipeline.py:2202` (`driver.save_screenshot`). Both are full-slide (1280×720). Per-frame rendering needs either a `slide-base` wrap or a frame-natural viewport.\n\n## Scope-Lock Draft\n\n**In scope (IMP-13 only)**:\n1. New script `scripts/generate_frame_previews.py` — idempotent, build-time only.\n2. Iterates `figma_to_html_agent/blocks/{frame_id}/index.html` (20 frames today; auto-expands as IMP-04 lands).\n3. Selenium headless render (factored Selenium settings shared with `capture_slide_screenshot`, no AI calls, no Jinja2 prompt-mode regen).\n4. Save to `figma_to_html_agent/blocks/{frame_id}/preview.png` (idempotent overwrite of auto-rendered files only).\n5. Manifest `figma_to_html_agent/blocks/_preview_manifest.json` per frame: `{frame_id, source: \"rendered\"|\"manual\", html_sha256, generated_at, viewport_px}`. Manual entries (sha mismatch / no `index.html`) preserved untouched.\n6. Coverage log: how many rendered / skipped (no `index.html`) / preserved-manual.\n\n**Not in scope** (must be left for separate tickets):\n- Catalog frame_partial expansion to 32 — **IMP-04** (soft dep).\n- Wiring `/frame-preview` to actually serve rendered preview by frame_id (UI ticket — needs `index.json` mapping work; would change frontend behavior).\n- Renaming or deprecating `data/figma_previews/` — it remains the Figma-design source.\n- Runtime preview regeneration inside pipeline (would slow Step 13/14 — strictly build-time).\n- `templates/phase_z2/frames/*.html` hand-built partials (different identifier system, name not frame_id).\n\n## Guardrails / Validation\n\n- **Phase R' reference path 회귀 X**: script renders existing static `index.html` only. No AI call, no HTML generation, no Jinja2 prompt formatting (K2 회귀 금지).\n- **Preview artifact trace**: manifest JSON with sha256 + generated_at; idempotent (rerun = identical bytes when source unchanged).\n- **Pipeline runtime untouched**: zero imports from `pipeline.py` / `phase_z2_pipeline.py` into the new script.\n- **Coverage explainable**: every of 33 frame dirs has a manifest entry (rendered / skipped:no-html / manual-preserved) — no silent gap.\n- **Selenium consistent**: same Chrome options as `capture_slide_screenshot` (headless=new, force-device-scale-factor=1, no-sandbox). chromedriver path via `src.config.settings`.\n- **No catalog-shape edits**: catalog `templates/catalog/blocks.yaml` and `figma_to_html_agent/blocks/{frame_id}/{index.html,texts.md,analysis.md,flat.md}` untouched.\n\n## Open Questions for Codex Review\n\n1. **Viewport policy** — render each frame at 1280×720 inside `slide-base` wrap, OR at frame-naturalLine truncated
|
||||
Reference in new issue
Block a user