80 lines
2.9 KiB
Markdown
80 lines
2.9 KiB
Markdown
# TASK-067-monthly-mvp-ranking-backend-calculation
|
|
|
|
## Goal
|
|
Implementar en backend el cálculo base de la V1 del ranking mensual MVP usando la fórmula y reglas definidas en docs/monthly-mvp-ranking-scoring-design.md, apoyándose únicamente en métricas ya persistidas y fiables.
|
|
|
|
## Context
|
|
La auditoría y el diseño de scoring ya están cerrados. La V1 del ranking mensual MVP debe construirse con:
|
|
- kills
|
|
- support
|
|
- time played
|
|
- KPM derivado
|
|
- KDA derivado
|
|
- umbrales de elegibilidad
|
|
- penalización por teamkills opcional
|
|
- desempates deterministas
|
|
|
|
Antes de exponerlo en snapshots o UI, hace falta implementar el cálculo mensual real en backend de forma clara, trazable y compatible con servidor individual y all-servers.
|
|
|
|
## Steps
|
|
1. Revisar docs/monthly-player-ranking-data-audit.md y docs/monthly-mvp-ranking-scoring-design.md.
|
|
2. Implementar la lógica de cálculo del ranking mensual MVP según la fórmula aprobada.
|
|
3. Aplicar correctamente:
|
|
- métricas incluidas
|
|
- pesos
|
|
- normalización
|
|
- mínimos de elegibilidad
|
|
- penalización por teamkills si así quedó definida
|
|
- desempates
|
|
4. Soportar cálculo para:
|
|
- un servidor concreto
|
|
- all-servers
|
|
5. Dejar el resultado estructurado para poder serializarlo después en snapshots o payloads.
|
|
6. Mantener clara la separación entre:
|
|
- ranking mensual MVP V1
|
|
- leaderboards mensuales simples por métrica ya existentes
|
|
7. No exponer todavía UI nueva en esta task.
|
|
8. Documentar brevemente la parte backend necesaria.
|
|
9. Al completar la implementación:
|
|
- dejar el repositorio consistente
|
|
- hacer commit
|
|
- hacer push al remoto si el entorno lo permite
|
|
|
|
## Files to Read First
|
|
- AGENTS.md
|
|
- docs/monthly-player-ranking-data-audit.md
|
|
- docs/monthly-mvp-ranking-scoring-design.md
|
|
- backend/README.md
|
|
- backend/app/historical_storage.py
|
|
- backend/app/historical_models.py
|
|
- backend/app/payloads.py
|
|
- backend/app/routes.py
|
|
- backend/app/historical_snapshots.py
|
|
|
|
## Expected Files to Modify
|
|
- backend/app/historical_storage.py
|
|
- backend/app/payloads.py
|
|
- opcionalmente nuevos módulos si mejoran claridad, por ejemplo:
|
|
- backend/app/monthly_mvp.py
|
|
- backend/app/monthly_mvp_scoring.py
|
|
- backend/README.md
|
|
- opcionalmente docs/decisions.md si hace falta fijar una decisión técnica menor
|
|
|
|
## Constraints
|
|
- No incluir métricas no persistidas o no confirmadas.
|
|
- No romper los rankings mensuales ya existentes por kills, muertes, soporte y 100+ kills.
|
|
- No crear todavía UI en esta task.
|
|
- No hacer cambios destructivos.
|
|
- Mantener el trabajo centrado en el cálculo backend del monthly MVP V1.
|
|
|
|
## Validation
|
|
- Existe un cálculo mensual MVP funcional en backend.
|
|
- Soporta servidor individual y all-servers.
|
|
- Respeta la fórmula y elegibilidad definidas en el diseño.
|
|
- No rompe los leaderboards mensuales existentes.
|
|
- Los cambios quedan committeados y se hace push si el entorno lo permite.
|
|
|
|
## Change Budget
|
|
- Preferir menos de 6 archivos modificados o creados.
|
|
- Preferir menos de 260 líneas cambiadas.
|