← Cockpit Wireframes
Compaction — 기록 · 프로필
Approved — build queue
Venue Finder · 코트 찾기
ArchiveStrip Map · 세션 스트립 전체 시나리오Headers · 헤더 아이콘Compaction — 일정 · 코트 · 스코어카드Compaction — 클럽 상세 · 홈Compaction — 기록 · 프로필Live anchor — 진행 중 밴드Density · 카드 밀도토스트 — 리디자인 제안위저드 내비게이션 — 결정 보드드래프트 복원 — 무음 복원클럽 조 편성 — 모델 결정 보드Session Detail — Redesign · 일정Venue Detail — Redesign · 테니스장Profile Detail — Redesign · 프로필Tournament Detail — Redesign · 대항전Applicant Detail — Redesign · 가입 심사Canvas Migration — 회비 · 멤버 · 규칙Record Detail — Redesign · 기록Venue Filters · 코트 필터 재구성
Decided 2026-09-08 — shipped; kept as the decision record
Interactive kit · grounded in code

Compaction — 기록 · 프로필

Compaction — records, profileDuplication audit (2026-09-08) §3, decisions D7-D9. Each block below draws the recommended final state — not a before/after pair — so the owner is reviewing what would ship, not a diff.
기록
우리 클럽
친구
지역
전국
복식 · 친선 · 클럽 회원
🥇NTRP 3.5–4.0측정 중
1,482ELO
다음 티어까지
마스터까지 518점
⋯ 개인 기록 카드 (변경 없음, 생략)
활동 히트맵최근 12주 중 42일 활동 · 최고 주 7월 3주차 (5일)
⋯ 종목별 승률 · 베스트 파트너 카드 (변경 없음, 생략)
최근 ELO 추이
최근 10경기
+38
D7Records: ELO once, one reliability signal, heatmap behind a tap
Today: HeroCard shows ELO + a matchesReflected count line + a ReliabilityPill; EloTrendCard repeats the ELO value beside its delta; the 12-week heatmap grid is always open. HeroCard and EloTrendCard are NOT adjacent — PersonalRecordsSection, ActivityHeatmapCard, FormatStatsCard, and TopPartnersCard sit between them (records-screen.tsx:256-339).Proposal: HeroCard is the one ELO + reliability home (pill only, matchesReflected text dropped); EloTrendCard shows the delta only; the heatmap collapses behind a tap, with the busiest week folded into its summary line.Question: is delta-only enough context on the trend card once the fold happens elsewhere, or does it need one small secondary readout (e.g. current ELO on a value tap)?Trade-off: EloTrendCard's delta-only view means a viewer who opens straight to it (deep link, notification) sees no absolute ELO at all until they scroll back up to the hero card.
기록
우리 클럽
친구
지역
전국
2
🥇NTRP 3.5–4.0
1,482
⋯ 이하 동일 (개인 기록 · 히트맵 · …)
D8Records: PillNav + MatchHistoryScopeSelector merged into one control
Today: PillNav (scope: 클럽/친구/지역/전국) sits directly above MatchHistoryScopeSelector (형식/성격/멤버십) — two permanently-open full-width rows governing different axes (records-screen.tsx:236-251).Proposal: one row: the 4 scope pills plus a trailing filter trigger (badge = active facet count) that opens the format/nature/membership picker as a sheet instead of a second standing row.Question: does folding the facet picker behind an icon hide it too well for a returning user who filters often, or is the active-count badge enough of a cue?Trade-off: a returning user who filters every visit (e.g. always excludes 클럽 회원) now does one extra tap that the always-visible row didn't require today.
프로필
💬
⚙️
🙂
김민준
🔥🥇NTRP 3.0
강남 테니스 클럽구력 3년
ELO
1,482
47총 경기
68%승률
3승연속 승리
12이번 달
92%출석률
친구24명
전체 보기
업적3 / 24
전체보기 ›
🏆
🔥
🤝
D9Profile: attendance once, reliability into the ELO badge's detail sheet
Today: attendance rate appears in the profile StatStrip (출석률, from profile.globalAttendanceRate — a denormalized column) AND in the 출석 section's FactList (참석률, from a live useAttendanceSummary query); the hero row carries trust + ELO + reliability badges together.Proposal: StatStrip keeps the one attendance rate; the 출석 FactList section is dropped entirely; reliability moves inside the ELO badge's tap-through TierInfoSheet, leaving only trust + ELO on the hero row.Question: globalAttendanceRate is denormalized while the dropped FactList read a live query — confirm the two stay in sync before dropping the live one. Also: does burying reliability in the sheet cost provisional players (who most need to see it) too much visibility?Trade-off: the dropped FactList read a live 5-min query while the surviving StatStrip cell reads a denormalized profile column — if the two ever drift, the one number left standing is the less current one.
Spec (grounding, anatomy)

Duplication audit 2026-09-08 §3 — three page-reshaping decisions (D7-D9) on 기록 and 프로필, each drawn once in its proposed final state, never as a before/after pair.

grounded in 7 source file(s)
packages/features/records/src/records-screen.tsxpackages/features/records/src/cards/hero-card.tsxpackages/features/records/src/cards/elo-trend-card.tsxpackages/features/records/src/cards/activity-heatmap-card.tsxpackages/features/profile/src/profile-screen.tsxpackages/features/profile/src/attendance-section.tsxdocs/audits/duplication-audit-2026-09-08.md