Files
comunidadhll/ai/tasks/done/TASK-098-elo-mmr-core-engine-v1-backed-by-real-signals.md
2026-03-25 17:29:29 +01:00

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`