사용자 lock 2026-05-07 — catalog data 는 yaml/HTML 에서 사람이 보고 modify 가능 (= hardcoded dict 위배 제거). 추가: - templates/phase_z2/layouts/layouts.yaml — 8 preset (single / horizontal-2 / vertical-2 / top-1-bottom-2 / top-2-bottom-1 / left-1-right-2 / left-2-right-1 / grid-2x2). 기존 hardcoded LAYOUT_PRESETS dict (src/phase_z2_composition.py) → catalog 이전. backward compat (load_layout_presets() 가 같은 dict shape). 필드: zones / topology / positions / css_areas / css_cols / css_rows / render_ready / default_selection / candidate_when. (Step 7-A) - templates/phase_z2/layouts/layouts_preview.html — 8 preset 시각 검증. - templates/phase_z2/regions/region_layouts.yaml — Internal Region 6 entry (region-single / vertical-stack / horizontal-split / main-support / preview-details / grid-2x2). SPEC §2.5 의 sequential first-match decision tree. region-vertical-stack only default_fallback. (Step 8-A) - templates/phase_z2/regions/display_strategies.yaml — display 4 entry (inline_full / inline_preview_with_details / details_only / dropped). applies_to / forbidden_for / detail_trigger.placement: top-right. 사용자 절대 lock: text/table/image/details 절대 dropped X (forbidden_for). - templates/phase_z2/regions/regions_preview.html — 6 region + 4 display 카드 시각 검증 (axis 분리 lock — region structure ≠ display policy). axis 분리 lock (사용자 2026-05-07): - region (structure axis) ≠ display (policy axis) → 두 catalog 분리. - preserves_original 은 display_strategies 의 single source of truth. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63 lines
2.8 KiB
YAML
63 lines
2.8 KiB
YAML
# Phase Z Display Strategy Catalog
|
|
#
|
|
# User lock (2026-05-07) — Step 8-A:
|
|
# Display strategy vocabulary — how to present content within a region.
|
|
# Source: docs/architecture/PHASE-Z-CONTENT-OBJECT-SUBZONE-SPEC.md (4 entry).
|
|
#
|
|
# Axis separation:
|
|
# region_layouts.yaml = how to divide zone into regions (structure axis)
|
|
# display_strategies.yaml (this file) = how to display content within region (policy axis)
|
|
# The two axes are orthogonal — same region layout can use different strategies.
|
|
#
|
|
# Absolute user locks (must NOT be violated):
|
|
# - Original text/table/image/details content is NEVER dropped or summarized.
|
|
# - 오답노트 #5: 텍스트 압축 / trim / restructure 금지.
|
|
# - IMPROVEMENT-REDESIGN.md line 110: "본문은 preview, 원문은 popup/detail 무손실 보존".
|
|
# - "dropped" applies ONLY to decorative elements — strict forbidden_for enforcement.
|
|
#
|
|
# Per-entry fields:
|
|
# description: str
|
|
# applies_to: list[str] (content types that can use this strategy)
|
|
# forbidden_for: list[str] (content types that MUST NOT use this strategy)
|
|
# preserves_original: bool (true = original content kept somewhere — popup/detail)
|
|
|
|
|
|
inline_full:
|
|
description: Content fully inline — entire content rendered within region.
|
|
applies_to: [text_block, table, image, details, decorative_element]
|
|
forbidden_for: []
|
|
preserves_original: true # all content is inline, original = inline
|
|
|
|
|
|
inline_preview_with_details:
|
|
description: Partial inline preview + remaining content in details/popup.
|
|
applies_to: [text_block, table, details]
|
|
forbidden_for: [decorative_element]
|
|
preserves_original: true # User lock — original content kept in popup
|
|
detail_trigger:
|
|
placement: top-right # 본문 흐름 방해 X / 보조 동작 위치 / 안정 (user 2026-05-07)
|
|
label: details # identifier — display text 는 partial/UI 별 axis
|
|
preserves_original_note: "버튼은 원문 대체 X — 원문 전체 진입문"
|
|
|
|
|
|
details_only:
|
|
description: Summary inline only, full content in popup.
|
|
applies_to: [text_block, table, details]
|
|
forbidden_for: [decorative_element]
|
|
preserves_original: true # User lock — full content in popup
|
|
detail_trigger:
|
|
placement: top-right # user lock — popup 진입 일관 위치
|
|
label: details
|
|
preserves_original_note: "버튼은 원문 대체 X — 원문 전체 진입문"
|
|
|
|
|
|
dropped:
|
|
description: |
|
|
Decorative element omitted due to space constraints.
|
|
USER LOCK: applies ONLY to decorative_element.
|
|
NEVER drop text_block / table / image / details — original content preservation
|
|
is absolute (오답노트 #5, IMPROVEMENT-REDESIGN.md §3.6 line 110).
|
|
applies_to: [decorative_element]
|
|
forbidden_for: [text_block, table, image, details]
|
|
preserves_original: false # decorative only — no original to preserve
|