← Cockpit Wireframes Pages by level Navigation map
Empty-once — 프로필 빈 섹션▾
Shipped app (old grammar)Components · 공유 키트상세 페이지 — 플랫 언어Session Card · 밴드 없는 카드
홈 · Home
Home · 홈
시작 · Entry
Onboarding · 시작
ArchiveStrip Map · 세션 스트립 전체 시나리오Headers · 헤더 아이콘Card Continuity · 카드 = 상세의 예고편Session Hero · 더 조용한 공유 카드 (제안)Session Share Card · 히어로 = 공유 카드Session List Frame · 날짜 섹션 · 패널 필터 · 2+2 카드Compaction — 일정 · 코트 · 스코어카드Compaction — 클럽 상세 · 홈Compaction — 기록 · 프로필Live anchor — 진행 중 밴드Density · 카드 밀도토스트 — 리디자인 제안Club List · 클럽Clubs · 클럽클럽 상세 — 여섯 탭 플랫운영 섹션 — 플랫 목표위저드 내비게이션 — 결정 보드드래프트 복원 — 무음 복원클럽 조 편성 — 모델 결정 보드게스트 → 회원 — 심사 흐름Page polish — titled postsWeb app — desktop layoutProduct questions — openWeb app — desktop adaptation, round 2Visual tone — pure white, flat rows, one Tag, a colour budgetLibrary — chrome, surfaces, rows, labelsLibrary — controls, overlays, states, formsLibrary — page patterns, scaling, motionLibrary — additions from the pagesEmpty-once — 프로필 빈 섹션Notification groups — 할 일 밴드 그룹화Profile Cockpit · 프로필 압축Session Detail — Redesign · 일정Venue Detail — Redesign · 테니스장Profile Detail — Redesign · 프로필Tournament Detail — Redesign · 대항전Applicant Detail — Redesign · 가입 심사Canvas Migration — 회비 · 멤버 · 규칙Record Detail — Redesign · 기록Venue Finder · 코트 찾기Venue Filters · 코트 필터 재구성Notifications · 알림Panel Placement · 하단 고정
Decided 2026-09-23 — shipped; kept as the decision record
Interactive kit · grounded in code

Empty-once — 프로필 빈 섹션

Recommended pathA section with nothing to show renders nothing; a near-empty profile shows one calm line
1The public profile's StatStrip and its 경기 기록/매너 태그/업적 sections each rendered an empty box unconditionally — every one now hides until it has something to show, generalizing the pattern attendance-section.tsx already shipped.
2A brand-new public profile shows the hero, the ELO fact, and one calm line (아직 경기 기록이 없어요) — no stat strip, no empty section boxes.
3A brand-new own profile keeps its hero and ELO fact, drops 매너 태그/업적/경기 기록 entirely, and surfaces exactly one real next action — 친구 찾기 — instead of three empty wells.
4Decided in the autonomous pass — veto on the decision log.
5Now: the public profile header (both Public phones below) also gained its own 공유 icon beside 💬, and ⋯ 신고 opens a real report flow instead of a contact-form redirect (H2/GM-15, 2026-09-23) — unrelated to this decision, not redrawn here.
김민준
💬⋯
🙂
김민준
🥈NTRP 3.0📊신규
ELO1,000
골드까지 400점
아직 경기 기록이 없어요
친구 추가
Public profile, new player — hero + ELO fact + one calm line. No stat strip, no empty sections.
김민준
💬⋯
🙂
김민준
🥈NTRP 3.5
강
강남 테니스 클럽
🎾2년 차
ELO1,350
골드까지 50점
12총 경기
67%승률
82%출석률
경기 기록
이
vs 이서준승
6:3단식ELO +14
최
박
vs 최유나 · 박지훈패
나 & 정하은
4:6복식ELO −9
한
vs 한소율승
6:2단식ELO +11
클럽
강
강남 테니스 클럽매주 화요일 정기 모임
매너 태그
⏱️ 시간 약속을 잘 지켜요 ×2😊 매너가 좋아요 ×1
업적3/24
🏅
🎾
🔥
첫 경기 완료첫 경기를 기록했어요
마일스톤3일 전
친구 추가
Public profile, with history — sections appear because there is something to show, in today's order.
프로필
💬
🙂
김민준
🥈NTRP 3.0
ELO1,000
골드까지 400점
친구
🙂
친구를 추가해보세요친구 찾기
통계 카드 공유
연습 기록
환경설정
로그아웃
Own profile, new player — hero + ELO + one prompt row (친구 찾기). No empty 매너 태그/업적 wells.
Spec (grounding, anatomy)

Decided: the EMPTY-ONCE law applied to profiles — a section with nothing to show renders nothing (attendance-section.tsx already did this; the public profile's StatStrip and its 경기 기록/매너 태그/업적 sections did not), and a page mostly empty for a new player shows one calm line instead of three empty wells. The public profile with history phone shows the same sections in today's order, now through the shared MatchHistoryRow.

route · packages/features/profile/src/{public-profile,profile}-screen.tsx grounded in 10 source file(s)
packages/features/profile/src/public-profile-screen.tsxpackages/features/profile/src/profile-screen.tsxpackages/features/profile/src/public-profile/result-zones.tsxpackages/features/profile/src/trust-record/trust-record-rows.tsxpackages/features/profile/src/profile-tab/profile-achievements-zone.tsxpackages/features/profile/src/trust-record/trust-record-body.tsxpackages/features/profile/src/profile-tab/profile-friends-zone.tsxpackages/app/src/domain/rules/tier.config.tspackages/app/src/presentation/utils/identity-block-model.tspackages/app/src/presentation/components/reliability-pill.tsx