68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
# TASK-098-elo-mmr-core-engine-v1-backed-by-real-signals
|
|
|
|
## Goal
|
|
Implementar una primera versión operativa del motor de MMR persistente + MonthlyRankScore mensual usando únicamente señales reales o aproximaciones justificadas por la telemetría disponible hoy.
|
|
|
|
## Context
|
|
Esta task debe apoyarse en la especificación y capabilities de la task anterior.
|
|
|
|
La implementación debe seguir el espíritu del PDF:
|
|
- validar matches
|
|
- factor de calidad Q
|
|
- OutcomeScore
|
|
- ImpactScore por rol
|
|
- DeltaMMR
|
|
- MatchScore
|
|
- MonthlyRankScore
|
|
Pero sin fingir precisión donde no existe.
|
|
|
|
## Steps
|
|
1. Implementar la validación de partida y el factor de calidad Q con las señales disponibles reales.
|
|
2. Implementar la lógica de bucket mínima viable:
|
|
- rol principal
|
|
- modo si está disponible
|
|
- tramo de duración
|
|
3. Implementar los subíndices soportables hoy:
|
|
- OutcomeScore
|
|
- CombatIndex
|
|
- UtilityIndex cuando haya señal
|
|
- LeadershipIndex cuando haya señal
|
|
- DisciplineIndex con teamkills / abandonos / AFK si la fuente real lo permite
|
|
- ObjectiveIndex exacto o aproximado solo si está realmente soportado
|
|
4. Implementar `ImpactScore` con pesos por rol inspirados en el PDF.
|
|
5. Implementar actualización de `MMR` persistente.
|
|
6. Implementar `MatchScore` mensual.
|
|
7. Implementar agregación mensual de `MonthlyRankScore` con:
|
|
- Confidence
|
|
- Activity
|
|
- Consistency
|
|
- StrengthOfSchedule
|
|
- PenaltyPoints
|
|
8. Marcar explícitamente en el resultado de cada cálculo:
|
|
- qué partes se calcularon con señal exacta
|
|
- qué partes fueron aproximadas
|
|
- qué partes quedaron no disponibles
|
|
9. Exponer una API o endpoints internos/backend claros para consultar:
|
|
- rating persistente del jugador
|
|
- leaderboard mensual Elo/MMR
|
|
- metadata de cálculo/capabilities
|
|
10. Mantener MVP V1/V2 existentes sin romperse.
|
|
|
|
## Constraints
|
|
- No vender esta V1 del motor como “idéntica al PDF” si hay aproximaciones.
|
|
- No usar valores mágicos sin documentarlos.
|
|
- No romper endpoints históricos actuales.
|
|
- No rehacer toda la UI en esta task.
|
|
|
|
## Validation
|
|
- Existe cálculo persistente de MMR para jugadores soportados.
|
|
- Existe cálculo mensual visible de ranking/score.
|
|
- El resultado expone metadata de exactitud/aproximación.
|
|
- La repo queda consistente.
|
|
- La documentación queda alineada con lo realmente implementado.
|
|
|
|
## Expected Files
|
|
- archivos backend nuevos o modificados bajo `backend/app/` para engine/storage/routes/payloads Elo
|
|
- `backend/README.md`
|
|
- `docs/elo-mmr-monthly-ranking-design.md`
|