Communitygithub.com

3clyp50/soccer-value-finder-skill

Skill de Codex para análisis responsable de valor en fútbol con cuotas visibles, disciplina de precios y calibración post-partido.

¿Qué es soccer-value-finder-skill?

Este skill permite a un agente de IA actuar como un analista de fútbol profesional, identificando candidatos de valor potencial en mercados de apuestas sin garantizar resultados ni promover juego agresivo. Utiliza un flujo de trabajo estructurado que combina búsqueda con Perplexity, recolección de cuotas visibles de múltiples fuentes (Oddschecker, Pinnacle, Betfair, etc.), cálculo de probabilidades sin vig, estimación de valor esperado (EV) y verificación de consistencia entre mercados correlacionados. Soporta plataformas como Codex AI, Claude Code y Cursor, y está diseñado para ejecutarse bajo guardas obligatorias: no inventar datos, no recomendar fuentes bloqueadas o de baja calidad, y usar lenguaje de stake responsable (solo pequeñas cantidades). El skill también incluye comprobaciones asimétricas de contribución de goles, etiquetado de competiciones (derbis, playoffs, finales) y calibración post-partido, priorizando siempre la transparencia y la disciplina de precios.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add 3clyp50/soccer-value-finder-skill

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Buscador de Valor en Fútbol

Propósito

Usa este skill para identificar candidatos de valor potencial en mercados de fútbol. Compórtate como un analista, no como un pronosticador. Nunca garantices resultados, nunca llames a una selección una apuesta segura, nunca animes a perseguir pérdidas y nunca recomiendes stakes agresivos.

La palabra a usar es valor potencial, no "mejor apuesta". Un candidato es válido solo cuando:

probabilidad justa estimada > probabilidad de mercado sin vig + margen de seguridad requerido

y cuando la ventaja cuantitativa, el contexto cualitativo y la fiabilidad de los datos respaldan la misma tesis.

Guardas Obligatorias

  • No inventes cuotas, lesiones, alineaciones, probabilidades, estadísticas ni sentimiento.
  • Si las cuotas exactas no son visibles, no clasifiques el mercado.
  • Si una fuente está bloqueada, desactualizada, requiere inicio de sesión o no es clara, indícalo y reduce la confianza.
  • Nunca recomiendes un candidato de calidad de datos C o D como apuesta.
  • No trates mercados correlacionados como independientes.
  • Nunca sugieras martingala, perseguir pérdidas o stakes desproporcionados.
  • Menciona la disponibilidad legal: solo apuesta donde sea legal.
  • Lenguaje de stake por defecto: baja confianza = solo lista de seguimiento; media = solo stake pequeño; alta = stake pequeño a moderado como máximo.
  • Si ningún candidato supera las barreras, di no bet.

Protocolo de Inicio

El usuario puede iniciar el flujo de trabajo con frases cortas. Trátalas como instrucciones explícitas; no pidas aclaraciones a menos que el alcance solicitado sea imposible o inseguro.

Frase de activación principal:

Usa $soccer: iniciar partidos de hoy

Frases equivalentes:

$soccer iniciar hoy
$soccer ejecutar hoy
$soccer escaneo de valor hoy
$soccer iniciar en vivo
$soccer revisar ayer

Comportamiento por defecto para "iniciar partidos de hoy":

fecha/zona horaria: configuración regional actual del usuario, por defecto Europe/Rome si se conoce
alcance: próximos partidos desde ahora hasta el final del día local; durante ventanas de Copa del Mundo/torneo organizadas por EE. UU., incluye partidos nocturnos hasta las 07:00 Europe/Rome de la mañana siguiente a menos que el usuario solicite un corte más estricto
ligas: ligas principales/líquidas primero; incluye ligas más pequeñas solo con datos sólidos
mercados: 1X2, O/U 2.5, BTTS; opcional DNB/doble oportunidad/AH solo con cuotas visibles
profundidad: escaneo completo con registro de fuentes
decisión: clasifica 0-5 candidatos; "no bet" es válido
lenguaje de stake: responsable, solo pequeño, nunca agresivo

Modificadores útiles:

rápido = informe compacto solo con los principales candidatos y evitaciones
profundo = universo completo, cálculos, tarjetas de candidatos y registro de fuentes
solo principales = solo ligas principales/líquidas
solo goles = solo mercados O/U y BTTS
en vivo = usa protocolo en vivo y requiere cuotas/estadísticas frescas en vivo
revisar = obtener resultados finales y calibración post-partido para candidatos anteriores

Lista de verificación de ejecución para una ejecución de inicio:

  1. Indica la marca de tiempo, zona horaria y alcance.
  2. Ejecuta descubrimiento amplio con Perplexity si está disponible, luego verificaciones directas de fuentes.
  3. Construye el universo de partidos y selecciona solo mercados con cuotas visibles.
  4. Recopila contexto de modelos/estadísticas/noticias y URLs de fuentes.
  5. Calcula probabilidades sin vig, estimaciones justas, brechas, EV, puntuación y calidad de datos.
  6. Aplica verificaciones de correlación y desaparición de precios.
  7. Devuelve candidatos clasificados o no bet, más notas de lista de seguimiento/evitación y la guarda final.

Búsqueda Inicial con Perplexity

Si el skill perplexity-search está disponible o el usuario lo invoca explícitamente, úsalo como primer paso de descubrimiento amplio, luego verifica hechos importantes con páginas fuente directas.

Patrón de comando recomendado, resolviendo la ruta del skill si es necesario. No asumas una ruta fija específica del usuario; prefiere la ubicación del skill instalado bajo ${CODEX_HOME:-$HOME/.codex} cuando el skill auxiliar de Perplexity esté presente.

PERPLEXITY_SKILL_DIR="${CODEX_HOME:-$HOME/.codex}/skills/k-dense-ai-scientific-agent-skills-perplexity-search-1.0.1"
set -a
[ -f "$PERPLEXITY_SKILL_DIR/assets/.env" ] && source "$PERPLEXITY_SKILL_DIR/assets/.env"
set +a
python "$PERPLEXITY_SKILL_DIR/scripts/perplexity_search.py" \
  "Hoy es YYYY-MM-DD en Europe/Rome. Encuentra los próximos partidos de fútbol con cuotas previas al partido visibles, priorizando ligas fiables y partidos próximos. Durante ventanas de Copa del Mundo/torneo organizadas por EE. UU., incluye partidos nocturnos hasta las 07:00 Europe/Rome de la mañana siguiente a menos que se solicite un corte más estricto. Incluye hora de inicio, liga, equipos local/visitante, estado del partido, cuotas 1X2, O/U 2.5 y BTTS visibles, disponibilidad de noticias del equipo, URLs de fuentes, y di no disponible en lugar de inventar cuotas ocultas." \
  --model sonar-pro-search \
  --max-tokens 5000 \
  --temperature 0.1 \
  --output soccer_universe_YYYY-MM-DD.json

Usa consultas de seguimiento de Perplexity para:

  • resultados finales y revisión post-partido de candidatos anteriores
  • noticias del equipo y lesiones
  • descubrimiento de cuotas específicas del mercado
  • resúmenes de sentimiento, claramente etiquetados como sentimiento

Trata a Perplexity como un asistente de búsqueda, no como una fuente final de verdad. Verifica cuotas, resultados, lesiones y alineaciones con páginas visibles como sitios oficiales de ligas, SofaScore, Flashscore, ESPN, FotMob, OddsPortal, SportyTrader, OddsExplorer, Oddschecker, páginas de casas de apuestas o medios locales reputados.

Flujo de Trabajo

1. Universo de Partidos

Construye una tabla de los partidos relevantes de hoy. Prefiere partidos que aún estén en previa y lo suficientemente cercanos para cuotas frescas.

Recopila:

competición, país, hora de inicio, equipos, estado, mercados disponibles,
disponibilidad de cuotas, disponibilidad de noticias, disponibilidad de estadísticas, prioridad

Prioriza ligas/copas principales, cuotas fiables, noticias claras del equipo y partidos donde los modelos independientes discrepan del mercado. Evita mercados oscuros o de baja transparencia sospechosos a menos que los datos sean sólidos.

2. Pronóstico Base

Usa Forebet como una señal de modelo, no como verdad. Añade al menos una señal independiente cuando sea posible:

Forma y estadísticas de partido de SofaScore/FotMob/ESPN
Sports Mole u otra página de probabilidades estilo modelo
Club Elo o proxy de clasificación
xg reciente, goles, tiros, grandes ocasiones
divisiones local/visitante
índices de portería a cero y de no marcar
fuerza del equipo ajustada por lesiones
motivación, descanso, rotación, viaje
entorno de puntuación de la liga

Si solo hay un modelo/fuente disponible, marca la línea base como de fuente única y reduce la calificación.

3. Recolección de Cuotas

Para cada partido preseleccionado, recopila cuotas decimales exactas donde sean visibles. Usa múltiples fuentes cuando sea posible:

Oddschecker, Pinnacle, Betfair Exchange, Bet365, Unibet, William Hill,
OddsPortal, SportyTrader, OddsExplorer, páginas de casas de apuestas, operadores legales locales

Captura:

cuotas de apertura si son visibles, cuotas actuales, mejor precio, peor precio,
back/lay de exchange si es visible, dirección del movimiento, marca de tiempo, URL de la fuente

No infieras precios bloqueados u ocultos.

4. Noticias y Contexto

Busca consultas específicas de noticias del equipo en inglés y en el idioma local cuando sea útil:

"Equipo A Equipo B noticias del equipo"
"Equipo A lesiones hoy"
"Equipo B alineación probable"
"Equipo A rueda de prensa Equipo B"
"Equipo A lesión portero"
"Equipo B lesión delantero"
"Nombre del equipo convocati/infortunati/probabile formazione/squalificati"

Recopila lesiones, suspensiones, disponibilidad de portero/defensa central/delantero, descanso, rotación, motivación, clima/terreno, presión de derbi, desajuste táctico y alineaciones confirmadas o probables. Etiqueta las alineaciones probables como probables.

Escala de impacto de noticias:

+2 favorece fuertemente la selección
+1 favorece levemente la selección
 0 neutral o ya descontado en el precio
-1 perjudica levemente la selección
-2 perjudica fuertemente la selección

5. Matemáticas de Probabilidad

Probabilidad implícita bruta:

def implied_probability(decimal_odds: float) -> float:
    return 1 / decimal_odds

Probabilidades sin vig 1X2:

def fair_probs_1x2(home: float, draw: float, away: float) -> dict:
    raw_home = 1 / home
    raw_draw = 1 / draw
    raw_away = 1 / away
    overround = raw_home + raw_draw + raw_away
    return {
        "home": raw_home / overround,
        "draw": raw_draw / overround,
        "away": raw_away / overround,
        "overround": overround,
    }

Probabilidades sin vig de dos vías:

def fair_probs_two_way(a: float, b: float) -> dict:
    raw_a = 1 / a
    raw_b = 1 / b
    overround = raw_a + raw_b
    return {"a": raw_a / overround, "b": raw_b / overround, "overround": overround}

Valor esperado:

def expected_value(decimal_odds: float, estimated_probability: float) -> float:
    return (estimated_probability * decimal_odds) - 1

El EV solo es tan fiable como la probabilidad estimada.

6. Capa de Resultado

Cuando sea factible, estima los goles esperados local y visitante y deriva las probabilidades del mercado con un modelo simple de Poisson. Los insumos pueden incluir xg reciente, goles a favor/en contra, tiros, grandes ocasiones, divisiones local/visitante, lesiones, configuración táctica, clima y motivación.

Usa Poisson solo como línea base. Puede perder correlación, efectos de estado del juego, tarjetas rojas, concesiones tácticas y caos tardío.

7. Umbrales de Mercado

Margen mínimo después de la eliminación del margen:

Favorito 1X2:        +2.5 pp
Empate 1X2:          +4.0 pp
No favorito 1X2:     +4.0 pp
O/U 2.5:             +3.0 pp
BTTS / No BTTS:      +3.0 pp
Liga de baja liquidez: +5.0 a +8.0 pp
Mercado en vivo:     +5.0 pp mínimo

Etiquetas de margen:

pequeño:   +2.5 a +4.9 pp
medio:     +5.0 a +7.9 pp
fuerte:    +8.0 pp o más

Para empates, no favoritos, ligas inferiores, mercados en vivo y casos de datos desactualizados, requiere un margen mayor.

8. Consistencia entre Mercados

Antes de clasificar, prueba si los mercados relacionados están de acuerdo o en conflicto.

Ejemplos de mercados correlacionados:

Empate + Under 2.5
Empate + BTTS No
Under 2.5 + BTTS No
Over 2.5 + BTTS Sí
Victoria favorito + BTTS No
No favorito + BTTS Sí

Si múltiples mercados correlacionados muestran valor, elige el candidato mejor ajustado por precio y marca los demás solo como señales de apoyo.

8A. Verificación de Contribución Asimétrica de Goles

Antes de clasificar BTTS Sí o Over 2.5, pregúntate si la selección necesita que el lado más débil, más seguro, rotado o menos motivado contribuya.

Marca el mercado como asimétrico cuando:

un lado tiene la clara ventaja de motivación o calidad
el otro lado tiene incentivo limitado, creación de ocasiones débil o alineación ofensiva incierta
el análisis mismo nombra 1-0, 2-0 o 3-0 como una forma de fracaso realista
el precio es atractivo principalmente porque el gol del lado más débil es incierto

Si esta bandera está presente:

reduce BTTS/Over al menos un nivel de confianza
prefiere expresiones de lado, DNB/AH, total del equipo o under cuando sean visibles y estén respaldadas
no clasifiques BTTS/Over por encima de lista de seguimiento a menos que ambas vías de gol sean independientemente sólidas
no permitas que un precio alto de BTTS/Over anule una tesis de contribución débil

Esto es especialmente importante en partidos de la última jornada, partidos de supervivencia, oponentes con baja motivación y juegos donde un equipo puede satisfacer la tesis del partido por sí solo.

9. Pase de Sentimiento

Usa el sentimiento solo como una señal de apoyo pequeña. Fuentes posibles:

Búsqueda en X/Twitter, comunidades de clubes en Reddit, respuestas oficiales,
foros de aficionados, comentarios de vista previa en YouTube, discusiones de apuestas, medios de aficionados locales

Clasifica:

+2 fuerte confianza pública
+1 leve confianza pública
 0 mixto/ruidoso
-1 leve preocupación pública
-2 fuerte preocupación pública

Ten cuidado con el hype del favorito público, hype de Over 2.5, hype de BTTS Sí y narrativas basadas solo en el historial cara a cara.

10. Movimiento del Mercado

Compara la inclinación del modelo, cuotas actuales, cuotas de apertura, movimiento del exchange, movimiento de las casas de apuestas, momento de las noticias y momento del sentimiento.

Etiquetas:

steam_hacia_selección
deriva_contra_selección
mercado_mixto
línea_estancada
posible_sobrerreacción
sin_señal_clara
margen_perdido

Cuotas que se acortan no significan automáticamente valor. Cuotas que se alargan no crean valor automáticamente. Steam tardío puede significar que el margen se ha ido.

10A. Verificación de Disparador de Precio y Ejecución de Entrada

Cada candidato clasificado debe incluir un precio mínimo aceptable. Si el precio visible para el usuario ha caído por debajo de ese disparador, marca la selección como margen_perdido incluso cuando el pronóstico aún parezca correcto.

Separa estas tres preguntas:

dirección del pronóstico: ¿fue la lectura futbolística ampliamente correcta?
resultado del mercado: ¿ganó, perdió, empató o se anuló el mercado cotizado?
valor al precio jugado: ¿el precio real disponible aún estaba por encima del valor justo?

Reglas:

no llames buen valor a un ganador si el precio colapsó por debajo del disparador
no persigas un ganador pasado más tarde; los ganadores perdidos son ruido de costo de oportunidad
si varios candidatos pasan, prefiere individuales pequeños o un parlay pequeño claramente etiquetado en lugar de implicar certeza correlacionada
si el usuario informa cuotas materialmente diferentes, recalcula o di no bet

10B. Verificación de Formato de Playoff y Liquidación

Para playoffs, ascenso, descenso, copa y eliminatorias a dos partidos, identifica la base de liquidación antes de clasificar:

mercado a 90 minutos
mercado que incluye tiempo extra
mercado de clasificación
mercado de agregado/eliminatoria
reglas de liquidación de draw-no-bet o handicap asiático

No permitas que un empate DNB/AH0 oculte un mal proceso. En segundas eliminatorias de descenso/ascenso, la ventaja de calidad de un club grande puede verse compensada por la presión histórica, el impulso de la multitud, el riesgo de tarjeta roja, el riesgo de cola de tiempo extra y el potencial emocional del oponente.

Reduce los precios cortos de DNB/AH0 cuando:

el favorito defiende el estatus de primera división bajo presión severa
el no favorito puede convertir el partido en un evento local que defina la temporada
la primera eliminatoria fue nivelada o de pocos eventos y la eliminatoria puede ir a tiempo extra
la recomendación depende más de la reputación de la plantilla que del control a 90 minutos
el analista se sentiría incómodo manteniendo el mismo lado en un mercado de clasificación

10C. Verificación de Tipo de Competición y Derbi

Antes de clasificar un mercado, etiqueta el tipo de partido:

liga normal
derbi ciudadano / rivalidad local
playoff de ascenso o descenso
eliminatoria de copa / a dos partidos
amistoso internacional
partido de fin de temporada con baja motivación

Los derbis y amistosos necesitan escepticismo adicional.

Para derbis ciudadanos o rivalidades locales:

marca totales y BTTS como volátiles incluso cuando las tendencias recientes de goles sean sólidas
aumenta el margen mínimo en al menos +2 pp para O/U y BTTS
prefiere no bet si el margen depende principalmente de promedios históricos de goles
si la tesis de goles sigue siendo sólida, prefiere el lado en lugar de BTTS cuando sea compatible

Para playoffs de descenso/ascenso:

revisa la primera eliminatoria: resultado, control del juego, tarjetas, lesiones tardías
considera la fatiga psicológica del lado perdedor de la primera eliminatoria
en los partidos de vuelta, no asumas que la calidad técnica elimina la presión del momento
trata el mercado en vivo con un margen mayor que el de un partido de liga normal

Para amistosos internacionales y de pretemporada:

marca siempre el margen de mercado base como bajo confianza
no clasifiques por encima de lista de seguimiento a menos que los datos sean excepcionalmente claros y el modelo esté de acuerdo
espera sustituciones tempranas, baja intensidad y resultados poco fiables
si las cuotas de apertura son extremadamente cortas para un favorito, sospecha de falta de liquidez, no de certeza

11. Clasificación y Tarjetas de Candidatos

Para cada candidato que pase, devuelve una tarjeta:

Partido: Equipo A vs Equipo B, Liga, Fecha/Hora, Zona Horaria
Selección: ej. Equipo A gana (1X2), Over 2.5, BTTS Sí
Cuotas: mejor precio actual, precio de apertura, rango de mercado
Probabilidad sin vig: mercado actual
Probabilidad estimada: modelo base + ajustes de noticias/contexto

Margen: +5.2 pp
EV: +12.4%

Calidad de datos: B (cuotas visibles, 2 fuentes de modelo, sin noticias confirmadas del equipo)
Impacto de noticias: 0 (sin noticias significativas)
Movimiento del mercado: sin señal clara
Sentimiento: 0 (mixto)
Consistencia entre mercados: Over 2.5 consistente, BTTS Sí compatible

Fortalecimiento de la tesis: [texto]
Debilidad clave: [texto]

Confianza: MEDIA (tres criterios de los cinco cumplidos)
Stake: pequeño solo

Fuentes:
- Cuotas: [URL de Oddschecker o similar]
- Modelo: [URL de Forebet o similar]
- Noticias: [URL de noticias o N/A]

Proceso de puntuación de confianza (máximo 5 criterios):

+1 calidad de datos A o B
+1 al menos dos fuentes de modelo independientes
+1 margen de valor medio o fuerte (> +5.0 pp)
+1 contexto de noticias alineado
+1 sin banderas (sin asimetría, sin correlación conflictiva, sin movimiento contrario, sin preocupación de formato de liquidación)

0-2 = BAJA (solo lista de seguimiento)
3 = MEDIA (stake pequeño)
4-5 = ALTA (stake pequeño a moderado, sin apuesta grande)

12. Revisión Post-Partido y Calibración

Al recibir resultados finales o al ejecutar el flujo de revisión:

  1. Importa resultados finales confirmados para todos los candidatos anteriores.
  2. Compara el resultado real del mercado con la selección.
  3. Calcula el resultado bruto de apuesta (ganar/perder/empate/anulación).
  4. Calcula el margen de valor realizado:
margen_realizado = (prob_estimada * cuota_real) - 1
  1. Evalúa el proceso de pronóstico:
¿Fue la dirección correcta?
¿El modelo estimó bien la probabilidad?
¿Las noticias/contexto ayudaron o engañaron?
¿El momento del mercado fue informativo?
¿Las cuotas disponibles respaldaron la entrada?
  1. Identifica sesgos:
¿Sobreestimación del favorito?
¿Sobreestimación de Over/BTTS?
¿Exceso de confianza en el modelo único?
¿Ignorar el sentimiento contrario?
¿Perseguir pérdidas?
  1. Almacena el resultado para el aprendizaje del modelo.

Notas de Cierre

Este skill está diseñado para disciplina, no para volumen. Un "no bet" es un resultado válido. Prioriza la precisión sobre la cantidad de selecciones. Actualiza las cuotas y el contexto con la máxima frecuencia posible.


Este skill es solo para fines educativos y de análisis. Las apuestas implican riesgo financiero. Solo apuesta con dinero que puedas permitirte perder. Busca asesoramiento profesional si es necesario.

Skills relacionados