feat(catalog): activate info_management_what_how_when (IMP-04 Track A 6/16)

Catalog-completeness activation — NOT V4 endorsement (Codex round 47 §7
guardrail). V4 signal = 0 across the current 4 MDX evidence sample, but
the 32-frame all-in scope means runtime backend must accept this frame
when V4 ranks it for any future MDX outside the current sample.

V4 remains the matching authority. Phase Z adds runtime availability only.

3-layer architecture (matrix §0) :
- V4 = matching authority — current evidence does not rank this frame for
  the sampled 4 MDX, so this activation must not be read as a V4-driven
  promotion. It is purely catalog completeness so V4 can route to this
  frame when warranted in future MDX content.
- figma_to_html (1171281179) = source/evidence — analysis/texts/index/flat/
  assets all present, source intent is the What/How/When 3-section
  framework.
- Phase Z = runtime — this commit adds catalog contract + partial + smoke
  fixture. Builder reuse, no new builder/parser.

Builder reuse (Codex round 47 secondary criterion under exhausted V4 tier) :
- `quadrant_flat_slots` reused (F16/F11/F20 pattern) with pad_to=3 +
  `section_{n}_label/body` key patterns.
- `quadrant_item` parser reused.
- mapper.py unchanged.

3 file changes :

1. templates/phase_z2/families/info_management_what_how_when.html
   - 3-column grid (What / How / When), each with header + body bullets.
   - PROMOTED CSS : per-section accent color (blue #2563eb What / orange
     #ea580c How / green #16a34a When), title gradient (#000#883700
     zone-title family), bullet markers in per-section accent color.
   - NOT PROMOTED (P1 case-by-case + preservation guardrail) : Figma
     상단 banner / icon / 배경 텍스처 / 장식. figma_to_html source
     evidence preserved for future fidelity review.
   - ADAPTED : Figma 50px+ → token-fixed, absolute positioning → flex grid.

2. templates/phase_z2/catalog/frame_contracts.yaml — F8 contract appended
   - frame_id=1171281179, family=cards, source_shape=top_bullets, strict 3,
     role_order=[section_1 (What), section_2 (How), section_3 (When)].
   - visual_hints.min_height_px = 320 (F11/F20 class — 3-column header+body).
   - accepted_content_types = [text_block].
   - 3 sub_zones (section_1/2/3 main_text).
   - payload.builder = quadrant_flat_slots (reuse) with section_{n}_* keys.

3. scripts/smoke_frame_render.py — bundled fixture for F8 self-check.

Verification :
- python scripts/smoke_frame_render.py --self-check : PASS 9/9 (F8 added at
  3577 chars CSS-only)
- python scripts/smoke_frame_render.py info_management_what_how_when
  --render-to data/runs/imp04_f8_visual : PASS, R3 artifact, 0 raster refs
- python run_mdx03_pipeline.py --phase-z2 --run-id imp04_f8_regression :
  PASS (MDX 03 V4 rank-1 unchanged; F8 V4 signal = 0 across 4 MDX sample,
  so not selected for MDX 03 either — purely catalog completeness)

scope-lock honored (3-layer + 4-class) :
- V4 logic / V4 evidence yaml : unchanged
- Existing PAYLOAD_BUILDERS / ITEM_PARSERS : unchanged (reuse only)
- Existing 8 partials : unchanged
- Composition planner / production render / Phase R' / AI/Kei : unchanged

4-class status :
- class 1 readiness :  contract + builder reuse + partial + smoke + R3
- class 2 content-fit : watch — header single-line, body 3-5 bullets per
  column. 6+ bullets per column may overflow.
- class 3 / 4 : N/A

Refs Gitea #4 (IMP-04 Track A frame 6 — V4-zero catalog completeness)
This commit is contained in:
2026-05-13 13:19:03 +09:00
parent bc58102b66
commit 46ff611a54
3 changed files with 235 additions and 0 deletions

View File

@@ -239,6 +239,28 @@ _MOCK_DX_SW_NECESSITY = {
],
}
# Track A frame 6 — info_management_what_how_when (frame 8).
# V4-zero catalog-completeness activation (Codex round 47 guardrail).
# Builder reuse = quadrant_flat_slots (F11/F20 pattern) — section_N keys.
_MOCK_INFO_MGMT = {
"title": "효율적인 정보의 관리와 활용 (What/How/When)",
"section_1_label": "무슨 정보 (What)",
"section_1_body": [
{"text": "수량 / 단가 / 공사일정 등 계획 정보", "indent": 0},
{"text": "일일 작업 / 자원 등 공사 실행 정보", "indent": 0},
],
"section_2_label": "어떻게 연계 (How)",
"section_2_body": [
{"text": "3D 형상 산출속성 연계", "indent": 0},
{"text": "시방규정 + S/W 통합", "indent": 0},
],
"section_3_label": "언제 사용 (When)",
"section_3_body": [
{"text": "착수 전 공정/시공계획 수립", "indent": 0},
{"text": "공사 후 실적 관리 + 문서 작성", "indent": 0},
],
}
SELF_CHECK_FIXTURES: dict[str, dict] = {
"three_parallel_requirements": _MOCK_THREE_PARALLEL,
"process_product_two_way": _MOCK_PROCESS_PRODUCT,
@@ -248,6 +270,7 @@ SELF_CHECK_FIXTURES: dict[str, dict] = {
"construction_bim_three_usage": _MOCK_CONSTRUCTION_BIM_USAGE,
"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,
}