1 Commits
Author SHA1 Message Date
KyeongminandClaude Opus 4.8 a57b197c37 feat(#15): density/readability gate — MDX02 false-positive 차단 (#98 추천 1·2)
기계 PASS vs 사람 '빽빽함' 판정 간극을 잡는 결정론적 밀도 신호:
- _estimate_max_card_lines: repeat 슬롯/list-of-dict 컬럼/<br> 라인 payload 추정 (v0)
- _compute_density_gate: px_per_line = (측정 zone 높이 − 56) / 카드 최대 라인
  임계값은 mdx 01~05 실측 캘리브레이션 — dense<16 / tight<45 px/line
  (mdx03 105.8=ready, mdx02 40~44=cramped, mdx01 bottom 11.5=dense 와 정렬)
- design_readiness 통합: dense/tight → warnings(needs_review) — 사람 판정 정렬
  (mdx01 11.5 도 사람 판정은 needs_review 였음 — not_ready 아님)
- presentation_ready 에 density AND 조건 추가 (#98 추천 1: 신호 통합)
- popup 승격 후 재계산 경로에도 동일 배선. 리포팅 전용 — final.html 영향 0
  (SHA parity 게이트 무접촉 확인: regression 40/40 포함 전체 1016 passed)

실전 acceptance:
- mdx02: presentation_ready=False + density_tight×2 (44.0/40.4 px/line) — 정직 표시
- mdx03: PASS + comfortable(105.8) 유지, density warnings 0
  (mdx03 design_readiness=needs_review 는 기존 reject-label warning — 회귀 아님)

후속: B5 slot metrics(#20) 성숙 시 payload 추정 → DOM 실측 교체

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 17:34:42 +09:00