CARD_SELECTION_LOGIC
🔢 Algoritmo de Selección de la Carta del Día
OBJETIVO
Seleccionar automáticamente la Carta del Día para el Desayuno Astral, garantizando:
- No repetición del mismo planeta‑signo en los últimos 3 días.
- Prioridad a las conjunciones con estrellas fijas (menor distancia angular).
- Rigor del Tarot Molins (solo “Planeta en Signo” o “Estrella Fija (con Planeta)”).
📦 ENTRADAS
1. Datos astrológicos (JSON)
{
"planets": [
{"name": "Sun", "sign": "Pisces"},
{"name": "Moon", "sign": "Aries"},
…
],
"fixedstars": [
{
"name": "Spica",
"aspects": [
{"aspect": "Conjunction", "point_name": "Sun", "distance": 0.8}
]
},
…
]
}
- planets: Lista de objetos con
name(planeta en inglés) ysign(signo en inglés). - fixedstars: Lista de estrellas fijas, cada una con
nameyaspects(array de aspectos). Solo se consideran aspectos de tipo"Conjunction".
2. Fecha objetivo
Formato YYYY‑MM‑DD. Por defecto, la fecha actual.
3. Historial de cartas usadas
Se leen los archivos memory/[[daily_spica]]/YYYY‑MM‑DD.md de los últimos 3 días (excluyendo la fecha objetivo) y se extrae la línea:
# 🃏 La Carta del Día: TEXTO (Tarot Molins)
⚙️ ALGORITMO (paso a paso)
Paso 1 – Recoger candidatos
- Candidatos A (planetas en signos): Para cada planeta en
planets, generar"PLANETA EN SIGNO"(traducido al español). - Candidatos B (estrellas fijas): Para cada estrella con conjunción, generar
"ESTRELLA (con PLANETA)". Se almacena ladistancedel aspecto.
Paso 2 – Consultar historial
- Leer los archivos
[[daily_spica]]de los últimos 3 días y extraer las cartas usadas (used_cards).
Paso 3 – Filtrar repetidos
- Eliminar de la lista de candidatos aquellos cuya representación textual (en mayúsculas) esté en
used_cards.
Paso 4 – Priorizar estrellas fijas
- Ordenar los candidatos de tipo estrella por
distanceascendente (menor distancia = más exacta). - Asignar prioridad 1 a estrellas fijas, prioridad 2 a planetas‑signos.
Paso 5 – Combinar y ordenar
- Crear lista única: primero todas las estrellas fijas (ordenadas por distancia), luego los planetas‑signos (orden original).
Paso 6 – Seleccionar
- Si hay candidatos no repetidos → elegir el primero de la lista (ya priorizado).
- Si todos están repetidos → elegir el candidato que lleve más días sin usarse (en la práctica, el primero de la lista original, porque el filtro los eliminó a todos). Esto garantiza que nunca se repita más de 3 días seguidos.
Paso 7 – Generar interpretación
- Buscar en el diccionario de interpretaciones predefinidas (
INTERPRETATIONS). - Si no existe, para estrellas fijas usar
FIXED_STAR_INTERPRETATIONS. - Si no existe, generar interpretación genérica combinando palabras clave de planeta y signo.
- Último recurso: texto genérico.
Paso 8 – Generar image_key
- Para planeta‑signo:
sol‑en‑piscis(minúsculas, sin tildes, con guiones). - Para estrella fija:
estrella‑algol‑luna(nombre de la estrella en minúsculas + planeta).
📤 SALIDA (JSON)
{
"card": "SOL EN PISCIS",
"interpretation": "El Sol en Piscis representa…",
"type": "planet_sign",
"image_key": "sol-en-piscis",
"used_cards": ["SOL EN PISCIS", "LUNA EN ARIES"]
}
- card: Texto de la carta (listo para insertar en
{{PLANETA_EN_SIGNO}}). - interpretation: Texto listo para
{{INTERPRETACION_TAROT}}. - type:
"planet_sign"o"fixed_star". - image_key: Clave para construir la URL de la imagen en
campus‑astrologia.es. - used_cards: Lista de cartas usadas en los últimos 3 días (solo para depuración).
🔗 INTEGRACIÓN CON EL FLUJO DEL DESAYUNO ASTRAL
En el proceso de Venus (generación del [[daily]] Spica)
- Obtener datos astrológicos (via API de AstroSpica o cálculo local) en formato JSON.
- Ejecutar script:
python3 scripts/select_daily_card.py --date 2026‑02‑21 --data chart.json > carta_seleccionada.json - Leer resultado y rellenar plantilla:
{{PLANETA_EN_SIGNO}}←result["card"]{{INTERPRETACION_TAROT}}←result["interpretation"]
- Verificar imagen: Si
typees"fixed_star", asegurar que existehttps://www.campus‑astrologia.es/wp‑content/uploads/2019/08/estrella‑{star}-{planet}.jpg(o patrón similar). Si no existe, usar imagen de respaldo (ej. planeta‑signo correspondiente).
En la UI del Segundo Cerebro
- El componente
page.tsxya extrae la carta del archivo[[daily_spica]]; no necesita modificarse.
🧪 PRUEBAS
Casos de prueba incluidos
- Con estrella fija no repetida → selecciona la conjunción más exacta.
- Sin estrellas fijas, planetas no repetidos → selecciona el primer planeta‑signo no usado.
- Todos los candidatos repetidos → fallback al candidato más antiguo (máximo 3 días de repetición).
Ejecución manual
# Con datos de ejemplo
python3 scripts/select_daily_card.py --date 2026‑02‑21 --data test_data.json
# Usando entrada estándar
cat chart.json | python3 scripts/select_daily_card.py --date 2026‑02‑21
📁 ARCHIVOS RELACIONADOS
| Archivo | Propósito |
|:---|:---|
| scripts/select_daily_card.py | Implementación principal del algoritmo. |
| memory/CARD_SELECTION_LOGIC.md | Esta documentación. |
| memory/[[PROTOCOL_RIGOR]].md | Actualizado con la regla de no‑repetición. |
| workers/fixed_stars_worker.py | Interpretaciones tradicionales de estrellas fijas (referencia). |
| carta_elias.json | Ejemplo de estructura de datos astrológicos completa. |
⚠️ LIMITACIONES Y MEJORAS FUTURAS
Limitaciones actuales
- Interpretaciones predefinidas limitadas a Sol y Luna en todos los signos; para otros planetas se usa texto genérico.
- Imágenes de estrellas fijas no están todas en
campus‑astrologia.es; requiere verificación previa. - Solo conjunciones de estrellas fijas; otros aspectos (oposición, trígono) no se consideran.
Mejoras posibles
- Diccionario completo de interpretaciones para los 12 planetas × 12 signos (144 combinaciones).
- Cache de imágenes verificadas, con URLs alternativas.
- Extensión a otros aspectos (ej. “Estrella en oposición a Planeta”).
- Integración directa con API de AstroSpica para obtener datos en tiempo real.
- Modo verboso para depuración, mostrando lista completa de candidatos y filtros.
🔗 Enlaces relacionados
- [[PROTOCOL_RIGOR]] - Procedimiento de verificación de datos
📜 REGISTRO DE CAMBIOS
- 2026‑02‑21: Implementación inicial (Venus). Incluye no‑repetición de 3 días, prioridad a estrellas fijas y diccionario básico de interpretaciones.
✨ Algoritmo diseñado por Venus para el Segundo Cerebro de Elías.