{
  "ts": "2026-08-13T07:23:07.613Z",
  "motor": "bucle_darwiniano_v1",
  "umbrales": {
    "MIN_SIGNAL": 3,
    "ROJO_RET_D1": 0.05,
    "VERDE_RET_D1": 0.3,
    "VERDE_KFACTOR": 1,
    "AMARILLO_MIN_N": 20,
    "AMARILLO_KFACTOR_MAX": 0.5
  },
  "apps": [
    {
      "app": "youtube-test",
      "total": 12,
      "sessions": 5,
      "returning_sessions": 0,
      "retention_d1_proxy": null,
      "retention_nota": "PROXY: sesiones que reaparecen en otro día / sesiones totales (el esquema no guarda alta de usuario)",
      "likes_total": 4,
      "shares_total": 6,
      "kfactor_total": 1.5,
      "videos": [
        {
          "videoId": "dQw4w9WgXcQ",
          "n": 7,
          "likes": 3,
          "shares": 3,
          "kfactor": 1,
          "verdict": "VERDE",
          "reason": "k-factor >= 1: viral, el mercado lo aprueba solo"
        },
        {
          "videoId": "metrics-domain",
          "n": 3,
          "likes": 1,
          "shares": 1,
          "kfactor": 1,
          "verdict": "VERDE",
          "reason": "k-factor >= 1: viral, el mercado lo aprueba solo"
        },
        {
          "videoId": "e2e-prod",
          "n": 2,
          "likes": 0,
          "shares": 2,
          "kfactor": 0,
          "verdict": "NEUTRO",
          "reason": "señal insuficiente (n < 3)"
        }
      ],
      "verdict": "VERDE",
      "reason": "k-factor >= 1: viral, el mercado lo aprueba solo → bancarrota técnica",
      "action": {
        "tipo": "bancarrota_tecnica",
        "comando_sugerido": "Redactar specs y andamiaje de youtube-test en stack central (React + FastAPI + PostgreSQL)",
        "detalle": "Congelar mutaciones del trash code; reescribir bajo Clean Architecture."
      }
    },
    {
      "app": "hub",
      "total": 1,
      "sessions": 1,
      "returning_sessions": 0,
      "retention_d1_proxy": null,
      "retention_nota": "PROXY: sesiones que reaparecen en otro día / sesiones totales (el esquema no guarda alta de usuario)",
      "likes_total": 0,
      "shares_total": 0,
      "kfactor_total": 0,
      "videos": [],
      "verdict": "NEUTRO",
      "reason": "sin señal (total < 3)",
      "action": {
        "tipo": "esperar",
        "comando_sugerido": "Sembrar tráfico a hub y medir 72h antes de decidir",
        "detalle": "Sin datos no hay veredicto. El QA es el mercado."
      }
    }
  ]
}