Contrato canônico do produto

Cada sinal de progresso com um significado

Classificação, XP, dificuldade e posição semanal respondem a perguntas diferentes. Estas são as regras que o app e o servidor devem compartilhar.

01

Classificação inspirada no Elo

A classificação começa em 1000, tem piso 100 e usa fatores K 32, 24 e 16. Acerto, dificuldade do desafio e tempo afetam cada variação. Não existe adversário humano, e a classificação não controla a dificuldade adaptativa.

02

XP e níveis por skill

Um desafio resolvido concede a cada skill inferida um único prêmio: 60/100/140/180/220 XP nas dificuldades 1–5. As dez skills têm níveis 1–5; o próximo marco é round(100 × nível^1.5), e o nível 5 exibe 100%.

03

Dificuldade adaptativa

A dificuldade usa o resultado recente e o progresso da skill relevante para escolher o próximo passo. Ela não concede XP novamente nem lê a classificação inspirada no Elo.

04

Ranking semanal

O ranking semanal conta soluções finalizadas pelo servidor desde segunda-feira UTC. Somente o campo canônico solved_count determina a posição pública; progresso informado pelo cliente nunca a altera.

05

Sequências e conquistas

O primeiro evento válido de prática em cada dia local pode avançar a sequência uma vez. Conquistas reconhecem marcos alcançáveis; o campo legado xpReward não é uma recompensa aplicada ou utilizável.

06

Armazenamento e sincronização

O progresso principal é persistido e sincronizado, quando possível, para usuários autenticados. O estado local pode continuar disponível durante falhas; por isso, uma sincronização pendente não promete replicação perfeita em tempo real.