feat(catalog): activate sw_reality_three_emphasis (IMP-04 Track A 7/16)

Catalog-completeness activation — NOT V4 endorsement (Codex round 49 §1+§2
guardrail). V4 signal = 0 across the current 4 MDX sample. Phase Z adds
runtime availability so V4 can route to this frame for future MDX content.

V4 remains the matching authority.

3-layer architecture (matrix §0) :
- V4 = matching authority — current sample evidence does NOT rank this frame
  for the 4 MDX. activation must not be read as V4-driven promotion.
- figma_to_html (1171281209) = source/evidence — 3-emphasis problem cards
  (토목 전문성 부족 / 비효율성 / 실무 적용 불가). full A+T+I+F+S.
- Phase Z = runtime — catalog + partial + smoke fixture added.

Builder reuse (per Codex round 49 §9 — single-frame, no batch yet) :
- `quadrant_flat_slots` reused with pad_to=3 + `emphasis_{n}_label/body`.
- `quadrant_item` parser reused.
- mapper.py unchanged.

3 file changes :

1. templates/phase_z2/families/sw_reality_three_emphasis.html
   - 3-column grid with problem-emphasis theme (red/orange/amber per
     column — frame intent is 약점/한계 진단).
   - PROMOTED CSS : per-emphasis warning color, title gradient, bullet
     markers in per-emphasis color, "!" bullet for warning semantic.
   - NOT PROMOTED : Figma source decoration / banner / texture.
     figma_to_html source evidence preserved.
   - ADAPTED : Figma absolute → flex 3-column grid, token-fixed typography.

2. templates/phase_z2/catalog/frame_contracts.yaml — F28 contract appended
   - frame_id=1171281209, family=cards, source_shape=top_bullets, strict 3,
     role_order=[emphasis_1/2/3].
   - visual_hints.min_height_px = 320.
   - accepted_content_types = [text_block].
   - payload.builder = quadrant_flat_slots (reuse) with emphasis_{n}_* keys.

3. scripts/smoke_frame_render.py — bundled fixture for F28.

Verification :
- python scripts/smoke_frame_render.py --self-check : PASS 10/10 (F28 at
  3363 chars CSS-only)
- python scripts/smoke_frame_render.py sw_reality_three_emphasis
  --render-to data/runs/imp04_f28_visual : PASS, 0 raster refs
- python run_mdx03_pipeline.py --phase-z2 --run-id imp04_f28_regression :
  PASS

scope-lock honored : V4 logic / mapper / production render / Phase R' /
AI/Kei / existing 9 partials all unchanged.

4-class status :
- class 1 readiness : 
- class 2 content-fit : watch (problem description text may be longer than
  3-card body budget)
- class 3 : N/A (V4-zero, catalog-completeness — not a mapping concern)
- class 4 : N/A

Refs Gitea #4 (IMP-04 Track A frame 7 — V4-zero catalog completeness)
This commit is contained in:
2026-05-13 13:27:23 +09:00
parent 46ff611a54
commit 735e58420e
3 changed files with 201 additions and 0 deletions

View File

@@ -271,6 +271,15 @@ SELF_CHECK_FIXTURES: dict[str, dict] = {
"bim_dx_comparison_table": _MOCK_BIM_DX_COMPARISON,
"dx_sw_necessity_three_perspectives": _MOCK_DX_SW_NECESSITY,
"info_management_what_how_when": _MOCK_INFO_MGMT,
"sw_reality_three_emphasis": {
"title": "현존 상용 S/W 의 현실",
"emphasis_1_label": "토목 전문성 부족",
"emphasis_1_body": [{"text": "건축용 S/W 일부 수정 적용", "indent": 0}],
"emphasis_2_label": "비효율성",
"emphasis_2_body": [{"text": "범용 개발 + 전문가용 한계", "indent": 0}],
"emphasis_3_label": "실무 적용 불가",
"emphasis_3_body": [{"text": "특수성 반영 어려움", "indent": 0}],
},
}