efbaab1d23
Python `merge_close_spans(gap_peak_min_prom=X)` 는 gap 내 peak 가 양쪽 endpoint valley (max(sg[prev_e], sg[s])) 대비 상대 높이가 X 초과일 때 병합을 스킵한다. Kotlin 은 대신 absolute (peak > low_amp + X) 기준을 써서, valley 가 low_amp 보다 훨씬 낮은 경우 병합 스킵 임계가 Python 보다 높아지는 잠재 divergence 있었음. - SpanUtils.mergeCloseSpans 에 gapPeakMinProm 파라미터 추가, Python 우선순위 (prom 이 thr 을 override) 그대로 이식. - Legacy DetectLumenFirst 는 여전히 gapPeakThr (absolute) 사용 — peakCheckMinGap default 를 1 로 유지해 하위호환 (Python default 는 3). - MethodDSpan 은 신규 gapPeakMinProm 파라미터로 호출 전환. - SpanUtilsMergeCloseSpansTest 5 케이스 (prom split/merge, gap=0, absolute compat, 우선순위) 로 semantic 검증. Golden test 33 케이스 회귀 없음 (기존 케이스에선 두 semantic 이 동일 결과였음 확인). Method D wall 검출 semantic 이 Python 1:1 도달. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>