This commit is contained in:
commit
8f085a28d3
3220 files changed
+985495
No files matched your search
@@ -0,0 +1 @@
|
||||
[{"id": 19414, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/45#issuecomment-19414", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/45", "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 Round #1 problem-review (issue #45 = IMP-15 실행-1 image axis)\n\ncommit_sha: 7a52cebfaa8b356c42a5de45c7241a3002615cab\n\n## 1. Issue restatement (scope axis 1 only)\n\nAdd Step 14 (`run_overflow_check`) runtime measurement for every `<img>` in the rendered slide:\nintrinsic aspect ratio (naturalWidth/naturalHeight) vs rendered aspect ratio\n(rendered width/height); when `|delta| > IMAGE_ASPECT_DELTA_TOL (=0.05)`, emit an\n`image aspect mismatch in zone--<pos>: …` entry into the existing `fail_reasons` list.\nNew JS payload field `image_events[]` populated for every `<img>`. Selenium-driven\ntest added with chromedriver skip-guard + `xfail(strict=True)` when\n`PHASE_Z_REQUIRE_SELENIUM=1`.\n\nOUT-OF-SCOPE (deferred sub-issues): `table_events` (실행-2), classifier consumer +\n`visual_check_passed` flip (실행-3), debug.json surfacing + spec doc row (실행-4).\n\n## 2. Current code gap (factual)\n\n| axis | file:line | current state | gap |\n|---|---|---|---|\n| Step 14 JS payload | `src/phase_z2_pipeline.py:2105-2212` (`run_overflow_check`) | returns `{slide, slide_body, zones, frame_slot_metrics, zone_geometries_px}`; iterates `.zone` for `clipped_inner` only | no `<img>` inspection; no `image_events[]` field |\n| Step 14 fail_reason aggregation | `src/phase_z2_pipeline.py:2226-2252` | appends slide / slide_body / zone / clipped_inner fail strings | no image-related branch |\n| pipeline constant | `src/phase_z2_pipeline.py` (none) | absent | `IMAGE_ASPECT_DELTA_TOL = 0.05` must be added at module scope (importable for tests) |\n| step note | `src/phase_z2_pipeline.py:4355-4359` | `\"image / table 검사 부재 — Step 14 ⚠ partial.\"` | this issue closes the image half (table = 실행-2) |\n| skip-guard env var | nowhere in repo (greppped — only in `.orchestrator/tmp/codex_prompt.txt:161`) | not a convention yet | this issue introduces `PHASE_Z_REQUIRE_SELENIUM=1` |\n| chromedriver resolver | `src/phase_z2_pipeline.py:2082-2099` | candidates = `PROJECT_ROOT/chromedriver{,.exe}` then PATH | test skip-guard MUST mirror this exact resolution order (factual lock) |\n| zone marker | `templates/phase_z2/slide_base.html:267` (`data-zone-position=\"{{ zone.position }}\"`) | present on `.zone` divs only | attachment fallback (img with no `.zone` ancestor) → `zone_position = 'unknown'` per issue Fixture C |\n\nNo collision with classifier (`src/phase_z2_classifier.py`) — that module is not touched in this issue per the explicit 실행-3 deferral.\n\n## 3. Spec anchor verification (no-hardcoding lock)\n\nIssue body claims `IMAGE_ASPECT_DELTA_TOL = 0.05` is \"spec-anchored to\nPHASE-Z-FIT-CLASSIFIER-ROUTER-SPEC §3.1\". I verified\n`docs/architecture/PHASE-Z-FIT-CLASSIFIER-ROUTER-SPEC.md:82-113` (§3.1 has 8\ncategories: `frame_capacity_mismatch`, `tabular_overflow`, `structural_major/minor`,\n`layout_zone_mismatch`, `moderate/minor_overflow`, `hard_visual_fail`). **No\n`image_aspect_mismatch` category exists in §3.1 yet.** §2 registry classifies `<img>`\nas `visual_asset` (line 75) but the category row is missing.\n\nThis is consistent with the issue's own out-of-scope split — spec doc row is\nexplicitly deferred to 실행-4. So this issue lays the *detection wire + fail_reason\nemission* now; the spec category row + classifier consumption arrive in 실행-3/4.\n**The constant name and the wire format introduced here will be the binding contract\nthose later sub-issues consume**, so naming + structure must be stable.\n\n## 4. Scope-lock (files + symbols)\n\nAllowed edits only:\n- `src/phase_z2_pipeline.py`:\n - module-scope: new constant `IMAGE_ASPECT_DELTA_TOL = 0.05` (placed near other Step 14 constants — confirm exact insertion point in Stage 2 plan).\n - inside `run_overflow_check` JS payload: add a new `image_events = []` block that walks `slide.querySelectorAll('img')`. Per-image entry must record:\n `zone_position` (closest `.zone` `data-zone-position`, else `'unknown'`),\n `natural_width`, `natural_height`, `rendered_width`, `rendered_height`,\n `intrinsic_ratio`Line truncated
|
||||
Reference in new issue
Block a user