On main: pre-Stage3 IMP-09 B-4 — out-of-scope pre-existing modifications (preserve for later)
This commit is contained in:
@@ -84,7 +84,7 @@ process_product_two_way:
|
||||
strict: 2 # F29 frame = 2 visual columns. ≠2 → fallback.
|
||||
overflow_policy: abort_or_review
|
||||
|
||||
# transform-block + 3 sections 의 breathing 위해 345 (이전 hardcoded 동일).
|
||||
# transform-block + 3 sections 의 breathing 위해 345 (원래 hardcoded 동일).
|
||||
visual_hints:
|
||||
min_height_px: 345
|
||||
|
||||
@@ -98,16 +98,19 @@ process_product_two_way:
|
||||
# NEW (SPEC v1 §3) : Frame Slot (Layer B) 선언.
|
||||
# 2 column × 3 section = 6 cell, but Frame Slot 단위 = column.
|
||||
# partial_target_path = path 식별자 만 (값). marker attribute 결정은 별 axis.
|
||||
# 2026-05-14 — cardinality dynamic 화. 사용자 룰 : frame 이 콘텐츠 cardinality 에
|
||||
# 맞춰 보완·수정. 03 (3 cards) / 04-2 (4 cards) / 미래 N cards 모두 동일 frame 으로
|
||||
# 자동 대응. strict 제거 → null = 동적 max 미정.
|
||||
sub_zones:
|
||||
- id: process_column
|
||||
role: main_text
|
||||
accepts: [text_block, transform_table]
|
||||
cardinality: { strict: 3 } # 3 sections per column
|
||||
cardinality: { strict: null }
|
||||
partial_target_path: ".f29b__grid .f29b__cell--left"
|
||||
- id: product_column
|
||||
role: main_text
|
||||
accepts: [text_block] # product 쪽은 transform 안 받음 (현재 frame 의 시각 구분)
|
||||
cardinality: { strict: 3 }
|
||||
accepts: [text_block]
|
||||
cardinality: { strict: null }
|
||||
partial_target_path: ".f29b__grid .f29b__cell--right"
|
||||
|
||||
payload:
|
||||
@@ -115,7 +118,8 @@ process_product_two_way:
|
||||
source: section.title
|
||||
builder: process_product_pair
|
||||
builder_options:
|
||||
pad_sections_to: 3 # 각 column.sections 길이 = 3 (legacy 와 동일)
|
||||
# pad_sections_to null → builder 가 pad / truncate 안 함. 콘텐츠 원본 cardinality 보존.
|
||||
pad_sections_to: null
|
||||
columns:
|
||||
- title_to: banner_left
|
||||
body_to: process
|
||||
@@ -397,11 +401,14 @@ bim_dx_comparison_table:
|
||||
frame_id: 1171281195
|
||||
family: table
|
||||
|
||||
source_shape: top_bullets
|
||||
# NOTE (Codex round 43 §F1-c) : top-level `cardinality.strict: 2` = *column 수*
|
||||
# (col_a / col_b). data row 수 는 별 — `sub_zones.rows.cardinality` 의 `{min:1, max:12}`.
|
||||
# 2026-05-14 — source_shape 변경 : top_bullets → h3_subsections.
|
||||
# 사용자 룰 (frame 보완·수정) : ranking 에 나온 frame 은 mdx 콘텐츠 구조에 맞게
|
||||
# frame 의 builder/partial 보완. 04-2 의 통합 콘텐츠 (### 2.1 정책 + ### 2.2 조직) 가
|
||||
# 2 column 으로 자연 매핑되도록 source_shape 변경 + builder = process_product_pair 재사용.
|
||||
# frame 의 visual identity (갈색 그라데이션 / zebra / table 시각) 는 partial 에서 유지.
|
||||
source_shape: h3_subsections
|
||||
cardinality:
|
||||
strict: 2 # 2 columns (col_a / col_b) — NOT row count
|
||||
strict: 2 # 2 h3 subsections (col_a / col_b)
|
||||
overflow_policy: abort_or_review
|
||||
|
||||
role_order:
|
||||
@@ -440,17 +447,81 @@ bim_dx_comparison_table:
|
||||
payload:
|
||||
title:
|
||||
source: section.title
|
||||
# NEW builder `compare_table_2col` (phase_z2_mapper.py) +
|
||||
# NEW parser `compare_row_2col_item` (ITEM_PARSERS).
|
||||
builder: compare_table_2col
|
||||
# 2026-05-14 — builder 변경 : compare_table_2col → process_product_pair 재사용.
|
||||
# 사용자 룰 (frame 보완) : 04-2 같은 통합 콘텐츠 (### 2 h3 + 각 N top_bullets) 가
|
||||
# 2 column N items 로 자연 매핑. frame 의 갈색 visual + zebra 는 partial 에서 유지.
|
||||
# col_a_label_default / col_b_label_default 제거 — h3 title 그대로 사용 (BIM/DX 강제 없음).
|
||||
builder: process_product_pair
|
||||
builder_options:
|
||||
item_parser: compare_row_2col_item # NEW parser — top_bullet → {label, col_a, col_b}
|
||||
col_a_label_default: "BIM" # F1-a (Codex round 43) — explicit default
|
||||
col_b_label_default: "DX" # F1-a — explicit default
|
||||
strip_col_prefix_aliases: # F1-b (Codex round 43) — narrow alias 만 strip
|
||||
- "BIM"
|
||||
- "DX"
|
||||
max_rows: 12 # typical 4-8, overflow 보호
|
||||
pad_sections_to: null # dynamic — 각 column N items 그대로
|
||||
columns:
|
||||
- title_to: col_a_label
|
||||
body_to: col_a_body
|
||||
# 2026-05-15 — 03-2 의 markdown table (AS-IS/TO-BE) 보존. column_plain
|
||||
# 은 transforms 무시 → 사용자 본 "AS-IS/TO-BE 사라짐". with_transform
|
||||
# 으로 변경하면 첫 top-bullet 안 markdown table 을 transforms 로 추출.
|
||||
# 04-2 같은 transforms 없는 콘텐츠는 fallback 으로 일반 text_lines.
|
||||
body_parser: column_with_transform
|
||||
- title_to: col_b_label
|
||||
body_to: col_b_body
|
||||
body_parser: column_with_transform
|
||||
|
||||
|
||||
app_sw_package_vs_solution:
|
||||
# 2026-05-15 — catalog 등록 (frame 23). 03-2 의 V4 rank 3 (reject 0.647).
|
||||
# 사용자 룰 = rank 마다 frame visual 은 달라도 mdx 콘텐츠는 동일 / 무손실.
|
||||
# builder + parser = bim_dx_comparison_table 와 동일 (process_product_pair +
|
||||
# column_with_transform) — markdown table (AS-IS/TO-BE) 보존. partial 만 frame 23
|
||||
# 의 visual identity (label col + 2 data cols, teal/orange header, zebra rows).
|
||||
template_id: app_sw_package_vs_solution
|
||||
frame_id: 1171281203
|
||||
family: table
|
||||
|
||||
source_shape: h3_subsections
|
||||
cardinality:
|
||||
strict: 2
|
||||
overflow_policy: abort_or_review
|
||||
|
||||
role_order:
|
||||
- col_a
|
||||
- col_b
|
||||
|
||||
visual_hints:
|
||||
min_height_px: 350
|
||||
|
||||
accepted_content_types:
|
||||
- text_block
|
||||
|
||||
sub_zones:
|
||||
- id: col_a_header
|
||||
role: header
|
||||
accepts: [text_block]
|
||||
cardinality: { strict: 1 }
|
||||
partial_target_path: ".f23b__th--a"
|
||||
- id: col_b_header
|
||||
role: header
|
||||
accepts: [text_block]
|
||||
cardinality: { strict: 1 }
|
||||
partial_target_path: ".f23b__th--b"
|
||||
- id: rows
|
||||
role: data
|
||||
accepts: [text_block]
|
||||
cardinality: { min: 1, max: 12 }
|
||||
partial_target_path: ".f23b__rows"
|
||||
|
||||
payload:
|
||||
title:
|
||||
source: section.title
|
||||
builder: process_product_pair
|
||||
builder_options:
|
||||
pad_sections_to: null
|
||||
columns:
|
||||
- title_to: col_a_label
|
||||
body_to: col_a_body
|
||||
body_parser: column_with_transform
|
||||
- title_to: col_b_label
|
||||
body_to: col_b_body
|
||||
body_parser: column_with_transform
|
||||
|
||||
|
||||
dx_sw_necessity_three_perspectives:
|
||||
@@ -727,3 +798,47 @@ bim_current_problems_paired:
|
||||
body_key_pattern: "row_{r}_{side}_body"
|
||||
rows: 4
|
||||
sides: [left, right]
|
||||
|
||||
|
||||
# 2026-05-14 신규 — V4 04-1 top conf=0.722 rank-1 매칭 frame. ideal 5 / min 4 / max 6.
|
||||
# Frame 9 visual : stacked pills (계단 배치, 5색), 좌측 vertical label, 타이틀 bar.
|
||||
# 보완 (사용자 룰) : pill 안 nested body slot 추가 (1 라인 frame 9 → multi-line pill)
|
||||
# 으로 04-1 의 5 cards × (인용구 + 3 bullets) 콘텐츠 보존.
|
||||
pre_construction_model_info_stacked:
|
||||
template_id: pre_construction_model_info_stacked
|
||||
frame_id: 1171281180
|
||||
family: stacked_list
|
||||
|
||||
source_shape: top_bullets
|
||||
cardinality:
|
||||
strict: null # dynamic (ideal 5 / min 4 / max 6 per Figma analysis)
|
||||
overflow_policy: abort_or_review
|
||||
|
||||
# 2026-05-14 — frame 9 의 catalog default = frame visual 자체 (모든 mdx 공통).
|
||||
# pill horizontal 변환 시 frame visual 보완값 = 250. 슬라이드 단위 zone 크기 변경은
|
||||
# catalog 가 아닌 run-time override (zone_geometry 등) 로 처리해야 함.
|
||||
visual_hints:
|
||||
min_height_px: 250
|
||||
|
||||
accepted_content_types:
|
||||
- text_block
|
||||
|
||||
# dynamic sub_zones (N pills) — N = 콘텐츠 cardinality 그대로.
|
||||
# partial_target_path = nth-child selector pattern (frontend / future override 용).
|
||||
sub_zones:
|
||||
- id: pill_dynamic
|
||||
role: main_text
|
||||
accepts: [text_block]
|
||||
cardinality: { strict: null }
|
||||
partial_target_path: ".f9b__pill-rows .f9b__pill:nth-child(N)"
|
||||
|
||||
payload:
|
||||
title:
|
||||
source: section.title
|
||||
builder: quadrant_flat_slots # 재사용 — pad_to/truncate_at null 시 dynamic
|
||||
builder_options:
|
||||
item_parser: quadrant_item
|
||||
pad_to: null # null = dynamic (콘텐츠 N 그대로)
|
||||
truncate_at: null # null = truncate 안 함
|
||||
label_key_pattern: "pill_{n}_label"
|
||||
body_key_pattern: "pill_{n}_body"
|
||||
|
||||
Reference in New Issue
Block a user