- Move cumulative ranking above the gold ₩1M card (ranking → challenge flow)
- Drop redundant "전체 보기" link (inline folding shows full Top 10);
/leaderboard route kept for direct access
- Make fold toggle purple + match its size to the tab buttons; enlarge
title/tab/row text for readability
- Match email input & submit button radius to the ranking box (rounded-xl)
- Leaderboard full page: top button = "투표로 돌아가기" (history back, home fallback)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- New lib/leaderboard.ts: fetchLeaderboard(tab) contract + maskEmailId
(PII) + deterministic demo; backend swaps body for getLeaderboard
- New components/Leaderboard.tsx: 2 tabs (참가자/AI 모델), folded by
default with 랭킹 보기/접기, top-3 purple highlight, id + points
- Place folding ranking right after the gold ₩1M card on match page
- /leaderboard full page renders the same component expanded
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
구조:
- 단일 경기 → 멀티 경기: 대시보드(/) + 경기 상세(/match/[matchId], 6경기 SSG) + 리더보드 stub(/leaderboard)
- 컴포넌트 파라미터화: MatchupHUD/Arena가 match·predictions·crowd props 수신 (싱글톤 의존 제거)
- 신규 컴포넌트: ScheduleBoard, Countdown, TeamFlag
- mockData: 경기별 결정론적 AI예측/Crowd 생성기(getPredictions/getCrowd) + matchUrl
06.09 회의 반영:
- 확률 라벨 "OO 승리 확률 %"+승리팀 국기(D3), confidence 바 제거 + 메인 리즌 강조
- 닉네임 제거→이메일만(D5), 투표 종료 카운트다운(D7), 결과 보기 전환, 경기별 공유(D8)
- "월드컵" 표현 제거→글로벌 축구(D9), 서브타이틀 중복 삭제, Crowd "AI 승리 확률과 다름" 라벨
- 포인트 컬러 #4AFFA0 통일, 일정 #94FBE0, 푸터 가시성 개선
채점·심사 설계(docs/SCORING.md):
- 공정성 모델 확정: 주최측 배제 + 순수 누적 포인트(점수는 정확도에서만)
- 배점/랭킹/배제/결과정의 + scorePrediction·rank 참조 구현
- 골드 카드 심사 기준 카피 정합
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>