Repository navigation
Open
Labels
P2Prioridade normalPrioridade normalarea:engineMotor de digitação, WPM, precisão, anti-cheatMotor de digitação, WPM, precisão, anti-cheatarea:uiInterface, design system, animação, game feelInterface, design system, animação, game feelepicNão cabe numa rodada — precisa ser fatiadaNão cabe numa rodada — precisa ser fatiada
Description
Contexto
Hoje um visitante que chega sozinho não tem o que fazer: para digitar qualquer linha ele precisa criar uma sala multiplayer (fluxo de HomeView → API rooms → /room/<code> → esperar) ou entrar numa. Isso é o maior vazamento de ativação do produto e a fricção nº1 relatada pela persona O Iniciante (discussions #9 e #14, onde ficou registrado como epic a fatiar "numa rodada futura").
Especificado em docs/UI-AAA-OVERHAUL.md §V.5 (linhas 921–932). Reusa ~90% do Race/CodeDisplay; resolve três coisas de uma vez:
- Onboarding — treinar sem precisar de sala/amigos.
- Conteúdo solo — jogar sozinho a qualquer hora (retenção).
- SEO — uma landing jogável e indexável (
/practice), diferente das salas (robots: noindex).
Modos (§V.5)
- Treino livre — escolhe linguagem/dificuldade, corre sozinho, vê stats. Sem sala, sem Realtime, sem espera.
- Contra seu ghost (PB) — um "fantasma" replica seu melhor resultado na pista (replay = sequência de timestamps de progresso, leve de guardar). Depende de persistir PB local (localStorage; sem login).
- Contra bots — WPM-alvo configurável (40/60/80/100) para iniciantes terem com quem competir.
Plano de fatias
- Fatia 1 — Treino livre: rota
/practice+ CTA na home, reusandoRace/TypingCorestandalone (semuseRoom). → issue Practice — rota /practice com Treino Livre (sem sala), reusando Race #25, PR feat(practice): rota /practice com Treino Livre solo, sem sala (#25) #40, mergeada (2026-07-23)./practiceem produção. - Fatia 2 — Contra bots: → issue Practice/Fatia 2 — Contra bots: WPM-alvo configurável no Treino Livre #82.
- Fatia 3 — Contra seu ghost (PB): → issue Practice/Fatia 3 — Contra seu ghost (PB): replay do melhor run em localStorage #83.
- Fatia 4 — Polish/SEO: → issue Practice/Fatia 4 — Polish/SEO: metadata indexável de /practice + sitemap #84.
Fora de escopo deste epic
Login/persistência por jogador no servidor (segue sem cadastro); Daily Challenge (§V.6) e Spectator (§V.8) são epics separados.
Referências
- Spec:
docs/UI-AAA-OVERHAUL.md§V.5 (l.921) · persona §0.3 (l.64) - Entrada atual (só multiplayer):
src/components/HomeView.tsx(criar sala →router.push('/room/…'), l.90) - Feedback origem: discussions [Feedback] O Iniciante · 2026-07-07 #9, [Feedback] O Iniciante · 2026-07-08 #14
Metadata
Metadata
Assignees
Labels
P2Prioridade normalPrioridade normalarea:engineMotor de digitação, WPM, precisão, anti-cheatMotor de digitação, WPM, precisão, anti-cheatarea:uiInterface, design system, animação, game feelInterface, design system, animação, game feelepicNão cabe numa rodada — precisa ser fatiadaNão cabe numa rodada — precisa ser fatiada
Activity
caioross commentedon Jul 26, 2026
Fatiado a pedido do dono: fatia 1 (#25) já estava mergeada em produção. Abertas as issues das fatias restantes — #82 (bots), #83 (ghost/PB), #84 (polish/SEO) — cada uma com escopo e acceptance criteria próprios, prontas para entrar na fila normal do Resolvedor. Epic permanece aberto como guarda-chuva até as 3 fecharem.