제로엣지 솔로 스킬측정기 — 적대검증 3결함 수정
개요
크라우니 제로엣지 'Hold-Nine 솔로 스킬측정기'의 적대검증이 지목한 3결함만 수정.
개념·변별력(L3 DQ 638‰ > L0 283‰)은 이미 PASS라 미변경, 아래 3건만 고침.
대상 파일
/Users/ef/crowny-play/한선씨/스킬측정.한선 (SSOT)
/Users/ef/crowny-play/한선씨/스킬측정.js (JS 미러)
/Users/ef/crowny-play/public/zeroedge.html (레벨밴드 표시)
무엇을 했는지 (3결함)
1) CI 정수 오버플로 해소
정수루트(분산*1000000) → 분산 최대 250000 × 1e6 = 2.5e11 이 VM 정수범위(±1.41e11) 초과.
→
정수루트(분산*10000)(sd×100, 최대 2.5e9)로 축소, 분모도
10000*정수루트(n)로 보정.
- 전:
[경고] 정수 곱셈 오버플로 → CI = ±0
- 후: 경고 0, CI 반너비 L0 ±110 / L1 ±129 / L2 ±134 / L3 ±134 (모두 양수)
2) 죽은 채널 2개 활성화
- ③밸류벳: 강패(wp0≥600) 옵션노드에서 벳=가치포착/체크=가치누락 + 강도매칭 사이즈 루브릭 채점.
전 -1(sentinel) → 후 L0=892 L1=978 L2=963 L3=928 (L0 최저, 강정책 우위).
- ④블러프균형: 약패(wp0<400) 옵션노드에서 세션 누적 블러프빈도를 목표밴드[100,400]‰ 대비 채점.
전 0(dead) → 후 L0=0(과잉블러프) L1=60 L2=0(무블러프) L3=1000(균형). 최강 L3 >> L0.
- 전체DQ·레이팅 기여는 기존 genericSi 그대로 유지 → 변별력 PASS(283/639) 무손상.
3) 레벨밴드 재보정
참조봇 실측 DQ분포(결정론적): L0=283 · L1=583 · L2=637 · L3=639.
인접 봇 중점 임계로 보정:
638(L2/L3) · 610(L1/L2) · 430(L0/L1) (구 900/780/600 폐기).
- 후: L0→밴드0, L1→밴드1, L2→밴드2, L3→밴드3 = 안착 4/4 PASS
- zeroedge.html: 밴드를 모멘텀 레이팅이 아닌 세션 평균 DQ(sessDQ‰)로 판정하도록 동기화,
범례도 430/610/638‰ 로 갱신.
검증
- 컴파일:
cd /Users/ef/CrownyOS/crownyc && ./hanseonc_high 스킬측정.한선 > /tmp/sm.toau 2>/tmp/sm.err — 경고 0
- 실행: CI 양수 / ③④ 채널 점수 산출 / 밴드 안착 4/4 모두 PASS
- JS 미러
node 스킬측정.js: CI ±143/±146, ③=886/959, ④=0/1000, L0→L0·L3→L3
- zeroedge 인라인 JS
node --check OK
잔여 이슈 (미해결)
- L2(637)·L3(639) 전체DQ 격차 2‰: 두 정책은 블러프 균형(④: 0 vs 1000)에서만 갈리고
전체DQ로는 거의 동률. VM 무작위가 결정론적이라 임계 638은 재현되나 마진이 좁음.
더 견고히 하려면 상위밴드에 ④블러프 채널 신호를 결합하는 복합판정이 필요(현재는 순수 DQ임계).
- 옵션노드 EV 모델의 스케일 특성(체크 EV가 벳 EV보다 큰 스케일)은 기존 통과 베이스라인에
이미 내재 → 이번엔 미변경(개념 불가침 준수). ③밸류벳은 EV 대신 강도매칭 루브릭으로 우회.