Skip to content

Owner review 4 — rulings (2026-10-12) ​

Status: Active · Date: 2026-10-12 · Answers the owner's review-4 points on the flat v2 library and boards: the block chevron, score entry without presets, matches in sequence, the match row against ATP's, sign-up and money, matches that stop, and Korean caption wording. Evidence: lane D (score entry, the per-player gate, stop outcomes and their rating policy), lane E (ATP's match row, faces, the chevron) and lane F (provider data, linked logins, verification and money, Korean wording). Each decision is logged for veto in the decision log. Companions: review-3 rulings, library.

The answers at a glance ​

#Your pointAnswerWhat changed
1Is the block chevron necessary?Not as drawn. A chevron alone at a block's edge says "this opens something" without saying what.One law: a chevron follows the words that name where it goes. The 홈 day block reads 내 일정 ›, the ELO block 티어 안내 ›, the match block 점수 입력 › (only when there is an action). The identity block is no longer a door; 공개 프로필 보기 moves to 설정 › 계정. A board check fails any chevron without its words.
2No custom implementationsApproved.
3The presets clutter the score sheetThey are gone. No peer offers presets; they all type the digits.The sheet opens with the two score cells and the number pad, like Toss's amount entry. Typing moves to the next cell by itself: 6-4 is three taps (6, 4, 확인 요청), a loss the same, 7-6(5) four. On screen: two cells per set, one quiet link for a match that stopped, the button (was 18 controls).
4The next match must wait for the previous scoreAgreed, and it is now a rule of the system, not of the screen.A match can start only when every one of its players has their earlier matches settled: confirmed, host-confirmed, recorded as stopped, or left out. Entered but unanswered does not count, so a dispute is settled at the court. The host has five ways out, each of which records an outcome; there is no "start anyway". Everyone else's courts run on.
5The match row against ATP's; avatars?Drawn side by side for you to choose.ATP's results put a headshot on every player line, and in doubles each partner gets their own line and photo. The comparison board shows ATP's pattern, our shipped scoreboard, the text row and the row with faces, in stacks of 4 and 8 and at 200%. My recommendation: faces in the 대진표 and the sheets, where people matter; text in results lists, where numbers matter.
6–9Caption row, form strip, PersonRow, AnswerPairApproved.
10Sign-up: provider data, linked logins, real names본인인증 once, at sign-up.Details below.
11Pickup players' facesInitials, as you said.Unchanged.
12Retirement, walkover and matches that stopThey count; each outcome has a rule for the record and the rating, the way the tours and the rating systems do.Details below.
13Caption wording in KoreanReviewed against Toss's writing principles and common usage.4 of the 32 rewrites changed (active voice, saying what to do instead of what not to, everyday words over Sino-Korean ones). A short Korean wording guide joins the terminology guide.

Matches in sequence (point 4) ​

  • Who waits: only the people in the match. A match waits for its own players' earlier matches, not for the court or the whole round, so one slow score never holds seven other courts.
  • What "settled" means: 확정, 호스트 확정, a stop recorded and accepted, or 기록 제외. 확인 대기 holds the next match: at the court the other team is a few metres away, and answering is one tap.
  • The host's ways out: 대신 입력, 바로 확정, record a stop, 기록 제외, or decide the dispute. Each leaves an outcome on the record.
  • Who is told: the opponents who have not answered, after 3 minutes; the host, after 6 (both are settings); everyone released, when the match can start. The long 12 h and 24 h timers stay only for a player's last match, which holds nothing.
  • What the screens say: a held match shows the Tag 대기 and why ("김민준 님 경기 점수를 기다려요"); the blocked player gets the one button that unblocks it; the round head reads "시작할 수 있는 경기 3 | 대기 2"; 세션 종료 asks about any match still unsettled.

Matches that stop (point 12) ​

OutcomeShown asCounts in the recordRated
Retirement (기권)6-4 3-1 기권yes (기권승 / 기권패)at half weight once either side has 4 games, else no
Walkover (부전승)부전승yes (부전승 / 부전패)never: nothing was played
Default (실격)실격yesas a retirement if play started, else never
Suspended for rain, light or injury (중단)6-4 3-1 중단not until it resumesnot until it resumes (7 days, then 미완료)
Abandoned (미완료)6-4 3-1 미완료nono
Cancelled (취소됨)취소됨nono
기록 제외기록 제외nono
  • How it is recorded: the score sheet's quiet link 경기를 끝까지 못 했나요? asks why, who, and the score so far. A player's record is confirmed by the other team; a walkover and a default need the host or an official, because the absent side cannot be asked.
  • The rules behind it: UTR rates a retirement only once a player has won 4 games and never rates a walkover; the tours keep the partial score of a retirement and none for a walkover. Every number is one setting, never written into the code.

Sign-up and money (point 10) ​

  1. 본인인증 once, at sign-up. This follows your 2026-06-02 directive (verified identity, nationality from the identity provider) and today's "sign people in non-anonymously". It replaces the birth-year and name steps, so sign-up stays as short: login, 본인인증, 약관, 첫 시작. A verified birth date makes the under-14 gate reliable.
  2. What providers give: only an account id, a nickname and an email where offered. Kakao's richer profile needs a business review, and even Kakao calls its CI "not a substitute for 본인인증", so the providers never replace the verification step.
  3. One person, one account, keyed by the 본인인증 CI. Signing in through a second provider with the same CI offers to connect it. 설정 › 계정 lists the connected logins with 연결 and 해제; the last one cannot be removed.
  4. Money: Toss Payments holds and pays out (its payout service or escrow); TwoMore never holds anyone's money, which is what keeps us outside electronic-finance registration. A 총무 who receives fees registers as a payee with Toss Payments and passes an account-holder check.
  5. Naver: Supabase's custom OAuth providers now cover it; a short spike confirms the profile mapping.

Needs counsel: the order of 본인인증 and our consent screen; escrow duties; minors paying; storing the CI.

Where my answer differs ​

  • Score entry: no presets at all, where the research suggested "who won first, then eight score chips". Typing costs the same taps, and the chips were the clutter you named.
  • 본인인증 at sign-up, where my review-3 answer (and the research) put it before the first trust action. Your earlier directive and "non-anonymous" decide it; the cost is one verification for every account, and Naver warns that phone checks at sign-up lose some people.
  • Walkovers count everywhere, where the research would have limited them to competitive matches. You said they should count; a walkover always needs the host's acceptance, so two friends cannot trade wins.

Found along the way ​

  • The database already models match outcomes, six of them, and its rating code already refuses to rate a walkover, but the app only ever writes "decisive". Retirement, default and an explicit winner are what is missing.
  • Score-driven rounds (Mexicano, King of the Court) read an unscored court as 0-0 today, so a forgotten score silently moves players. The sequential rule fixes this class.
  • The ELO block's destination was written two ways (a rating page that does not exist, and the tier explainer the board draws). It is the tier explainer.

Open for you ​

  1. The match row: faces in the 대진표 and sheets with text in results lists (recommended), faces everywhere, or text everywhere. The comparison board shows each.
  2. A retirement rated at half weight (recommended), or full.
  3. Juniors: under 14 stops at sign-up today; a guardian flow is possible later if clubs need it.
  4. Then the library again where it changed: blocks, the score sheet, the match row, sign-up and 설정 › 계정.

Boards: match row (new), conversation and scoring (130 frames), surfaces (139), rows (197), 대진표 and 스코어카드 (303), sign-in (64), settings (286), flows (87). Every board passes every check, including the new chevron check.

Markdown remains the source of truth. Run yarn docs:check before handoff.