{
  "schemaVersion": "1.0",
  "document": {
    "id": "ai-upskilling-peter-2026",
    "title": "Plan de Upskilling en IA Aplicada",
    "subtitle": "16 semanas, 8-10 h por semana, para construir Vara —un benchmark abierto de coste y calidad de LLMs en español y portugués— y convertirlo en tu carta de presentación.",
    "eyebrow": "CARRERA / IA APLICADA / 2026",
    "author": "Peter Ciancaglini",
    "date": "2026-09-10",
    "version": "3.0",
    "language": "es",
    "tags": [
      "Plan",
      "16 semanas",
      "v3 final",
      "1-2 h/día",
      "Vara"
    ]
  },
  "theme": {
    "preset": "dark",
    "contentWidth": 1180,
    "fontSize": 16
  },
  "sections": [
    {
      "id": "resumen",
      "title": "Resumen ejecutivo",
      "eyebrow": "EMPEZAR AQUÍ · V3",
      "description": "Versión final para ejecutar mañana: 1-2 h por día, proyecto faro nuevo (Vara), presupuesto de USD 150 en APIs, sin compuertas legales pendientes.",
      "notePrompt": "¿Qué cambiarías de este resumen antes de comprometerte 16 semanas?",
      "blocks": [
        {
          "type": "metrics",
          "id": "m-cabecera",
          "items": [
            {
              "label": "Duración",
              "value": "16 semanas",
              "detail": "Empieza mañana",
              "style": {
                "tone": "accent"
              }
            },
            {
              "label": "Carga",
              "value": "8-10 h/sem",
              "detail": "1-2 h/día, un solo bloque por día",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "label": "Teoría",
              "value": "~35 h",
              "detail": "4 videos Karpathy + 4 clases CS336 + 2 extra",
              "style": {
                "tone": "success"
              }
            },
            {
              "label": "Faro",
              "value": "Vara",
              "detail": "Benchmark abierto de coste y calidad en español/portugués",
              "style": {
                "tone": "accent"
              }
            },
            {
              "label": "APIs",
              "value": "USD 150",
              "detail": "10-12 modelos, 200-300 tareas",
              "style": {
                "tone": "warning"
              }
            },
            {
              "label": "Salida",
              "value": "Leaderboard + CLI + dataset",
              "detail": "+ 3 deep dives, 1 video, 20 contactos",
              "style": {
                "tone": "success"
              }
            }
          ]
        },
        {
          "type": "callout",
          "id": "c-tesis",
          "title": "Tesis del plan",
          "text": "Nadie sabe, con números, **qué modelo hace el trabajo en español y portugués al menor coste**. Todas las evals públicas son en inglés y ninguna mide coste por tarea. Vara mide eso, lo publica, y le da a una ONG o a una startup un comando para medirlo con sus propias tareas. Es tu talento aplicado al hueco correcto: *hacer visible y medible lo que todos sienten y nadie nombra*. Y la infraestructura de evals es, en 2026, la habilidad más buscada en roles de IA aplicada.",
          "style": {
            "tone": "accent"
          }
        },
        {
          "type": "cards",
          "id": "cards-decisiones",
          "columns": 3,
          "items": [
            {
              "title": "Decisión 1",
              "text": "La teoría se reduce a **10 piezas** (~35 h) y cada una alimenta directamente una parte de Vara: tokenización → el impuesto del español; resource accounting → coste por tarea; inferencia → latencia; evaluación → el juez calibrado.",
              "eyebrow": "TEORÍA",
              "badge": "Sin cambios",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "Decisión 2",
              "text": "**Vara** reemplaza al Framework AI como faro. Motivo tuyo, y correcto: el Framework depende de CLIs y cuotas de suscripción (`-p`) que los proveedores van a deprecar; no escala y no se puede publicar como infraestructura. Vara usa APIs vía OpenRouter y modelos locales. Del Framework se rescatan dos ideas: el esquema de telemetría (A2) y los adapters falsos (A3).",
              "eyebrow": "PROYECTO",
              "badge": "Cambio vs. v2",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "Decisión 3",
              "text": "Ritmo sostenible: **1 build-log por semana** (domingo, 20 min), 3 deep dives, 1 video, 20 mensajes dirigidos en las semanas 14-15. Sin compuerta legal: EY confirmado como no-problema; El Espejo ya está en prueba de bajo esfuerzo y no compite por horas.",
              "eyebrow": "DISTRIBUCIÓN",
              "badge": "Simplificado",
              "style": {
                "tone": "warning"
              }
            }
          ]
        },
        {
          "type": "callout",
          "id": "c-riesgo",
          "title": "El riesgo número 1 de Vara (y cómo se ataca en la semana 7, no antes)",
          "text": "Un benchmark vale exactamente lo que vale su **juez**. Si publicás un ranking basado en un LLM-as-a-judge sin medir cuánto coincide con humanos, el primer ingeniero senior que lo lea lo descarta en dos minutos. Por eso la Fase 3 entera es calibración: 60 casos etiquetados por vos, acuerdo juez-humano publicado como número, y ground truth determinista (exact match, F1) en todas las familias donde se pueda. **El número de acuerdo es la primera línea del README.**",
          "style": {
            "tone": "danger"
          }
        },
        {
          "type": "callout",
          "id": "c-primera-accion",
          "title": "Mañana, primer bloque (60-90 min)",
          "text": "1. Crear el repo público `vara` con un README de 10 líneas: qué mide, en qué idiomas, cuándo sale el primer resultado.\n2. Abrir el cuaderno de NotebookLM «Fase 1» y cargar la transcripción del video 1 de Karpathy.\n3. Cambiar el titular de LinkedIn (sección Contribución y marca).\n4. Post de 5 líneas: *«16 semanas midiendo qué LLM hace el trabajo en español al menor coste. En público, a 1-2 h por día. Semana 0.»*",
          "style": {
            "tone": "success"
          }
        },
        {
          "type": "chart",
          "id": "ch-horas",
          "kind": "donut",
          "title": "Asignación semanal objetivo (horas)",
          "labels": [
            "Teoría (video + NotebookLM)",
            "Código y experimentos",
            "Publicación y revisión"
          ],
          "series": [
            {
              "name": "Horas por semana",
              "values": [
                2.5,
                6,
                1.5
              ]
            }
          ],
          "unit": " h",
          "caption": "La cuenta: 5 bloques de 1,5 h entre semana (2 de teoría, 3 de código) + 1,5 h de código el sábado + 1 h el domingo para publicar y revisar. Total 10 h. Piso aceptable: 8 h, sacrificando el sábado."
        }
      ]
    },
    {
      "id": "revision",
      "title": "Qué cambió y por qué",
      "eyebrow": "DE LA V1 A LA V3",
      "description": "Tres rondas de revisión: la v1 fue el plan original, la v2 lo ajustó a tus horas, y esta v3 incorpora tus tres correcciones de hoy.",
      "notePrompt": "¿Queda algo de las versiones anteriores que quieras recuperar?",
      "blocks": [
        {
          "type": "table",
          "id": "t-revision",
          "title": "Historial de correcciones",
          "columns": [
            {
              "key": "n",
              "label": "#",
              "numeric": true
            },
            {
              "key": "tema",
              "label": "Tema"
            },
            {
              "key": "antes",
              "label": "Cómo estaba"
            },
            {
              "key": "ahora",
              "label": "Cómo queda en la v3"
            },
            {
              "key": "origen",
              "label": "Origen"
            }
          ],
          "rows": [
            {
              "n": 1,
              "tema": "Horas",
              "antes": "v1: 19 h/semana",
              "ahora": "8-10 h/semana, un bloque por día",
              "origen": "Tu corrección"
            },
            {
              "n": 2,
              "tema": "Proyecto faro",
              "antes": "v1: router nuevo. v2: publicar el Framework AI",
              "ahora": "**Vara**: benchmark abierto de coste y calidad en español/portugués. El Framework se descarta porque depende de CLIs y cuotas (`-p`) que los proveedores van a deprecar; no es publicable como infraestructura",
              "origen": "Tu corrección de hoy"
            },
            {
              "n": 3,
              "tema": "Cantidad de teoría",
              "antes": "v1: 9 recursos, 40 clases",
              "ahora": "10 piezas, ~35 h. Lo demás es audio en tiempos muertos",
              "origen": "Revisión propia"
            },
            {
              "n": 4,
              "tema": "Compuerta legal (EY)",
              "antes": "v2: semana 0 obligatoria",
              "ahora": "**Eliminada.** Ya lo analizaste: EY espera que un Associate Director sea referente en IA y la exposición pública les conviene. Queda solo la regla de higiene: cero datos ni casos de clientes de la firma",
              "origen": "Tu corrección de hoy"
            },
            {
              "n": 5,
              "tema": "Conflicto con El Espejo",
              "antes": "v2: elegir uno u otro",
              "ahora": "**Sin conflicto.** El Espejo ya pasó el desarrollo fuerte y está en prueba de bajo esfuerzo. Vara ocupa el bloque de las 8-10 h; El Espejo sigue en su ritmo actual",
              "origen": "Tu corrección de hoy"
            },
            {
              "n": 6,
              "tema": "Expectativa de resultado",
              "antes": "v1: «USD 200k en 16 semanas»",
              "ahora": "Semana 16 = evidencia pública + 20 conversaciones + 3 procesos. La oferta es la meta del mes 6-9",
              "origen": "Revisión propia"
            },
            {
              "n": 7,
              "tema": "Presupuesto de APIs",
              "antes": "No existía",
              "ahora": "USD 150: ~30 en desarrollo (semanas 4-6, con adapters falsos para la mayoría de las pruebas), ~90 en la corrida completa (semanas 9-10), ~30 de reserva para re-corridas (semanas 12-13)",
              "origen": "Decisión de hoy"
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "callout",
          "id": "c-porque-vara",
          "title": "Por qué Vara y no otro router ni otra herramienta",
          "text": "Se evaluaron tres candidatos. **Un proxy eval-gated** (elegir el modelo más barato que aprueba tus evals) es útil pero el mercado ya lo tiene (LiteLLM, RouteLLM, OpenRouter) y su diferenciación dependía de publicar exactamente los evals que Vara publica. **Papeleo** (extracción local de documentos para ONGs) tiene impacto social claro pero menor señal de infraestructura para quien contrata y más riesgo de convertirse en producto. Vara es el **instrumento**, no el producto: mide, publica, y deja que el dato hable. Es lo que hiciste en EY con las métricas de delivery, y es lo que tu propia síntesis dijo que sabés hacer mejor que nadie.",
          "style": {
            "tone": "accent"
          }
        },
        {
          "type": "quote",
          "id": "q-instrumento",
          "text": "Un instrumento no se vende: se usa, y después el resultado se vende solo.",
          "attribution": "Tu síntesis de agosto 2026. Vara es el instrumento; el leaderboard es el resultado que se vende solo."
        }
      ]
    },
    {
      "id": "rutacritica",
      "title": "Camino crítico",
      "eyebrow": "SECUENCIA",
      "description": "El orden importa. Cada bloque existe porque el siguiente no funciona sin él.",
      "notePrompt": "¿Hay algún paso que creas que podrías saltarte?",
      "blocks": [
        {
          "type": "diagram",
          "id": "d-ruta",
          "title": "De la mecánica a las conversaciones",
          "nodes": [
            {
              "id": "mec",
              "label": "1. Mecánica",
              "description": "Tokens a mano → impuesto del español",
              "column": 0,
              "row": 0,
              "style": {
                "tone": "accent"
              }
            },
            {
              "id": "ds",
              "label": "2. Tareas + harness",
              "description": "200-300 tareas, 6 familias, coste por llamada",
              "column": 1,
              "row": 0,
              "style": {
                "tone": "accent"
              }
            },
            {
              "id": "jud",
              "label": "3. Juez calibrado",
              "description": "60 etiquetas humanas, acuerdo publicado",
              "column": 2,
              "row": 0,
              "style": {
                "tone": "success"
              }
            },
            {
              "id": "run",
              "label": "4. Corrida + leaderboard",
              "description": "10-12 modelos, Pareto por familia",
              "column": 2,
              "row": 1,
              "style": {
                "tone": "success"
              }
            },
            {
              "id": "cli",
              "label": "5. CLI + dataset",
              "description": "vara bench · Hugging Face",
              "column": 1,
              "row": 1,
              "style": {
                "tone": "warning"
              }
            },
            {
              "id": "con",
              "label": "6. Conversaciones",
              "description": "20 contactos, 2 ONGs, 3 procesos",
              "column": 0,
              "row": 1,
              "style": {
                "tone": "warning"
              }
            }
          ],
          "edges": [
            {
              "from": "mec",
              "to": "ds",
              "label": "vocabulario"
            },
            {
              "from": "ds",
              "to": "jud",
              "label": "qué medir"
            },
            {
              "from": "jud",
              "to": "run",
              "label": "credibilidad"
            },
            {
              "from": "run",
              "to": "cli",
              "label": "algo que usar"
            },
            {
              "from": "cli",
              "to": "con",
              "label": "algo que mostrar"
            }
          ],
          "caption": "Si saltás el bloque 3, el leaderboard es una opinión con gráficos. El 3 es lo que casi nadie publica."
        },
        {
          "type": "callout",
          "id": "c-cuello",
          "title": "El verdadero cuello de botella",
          "text": "No es la matemática ni las horas: es **terminar y exponer**. Tu historial tiene ~15.000 líneas y cero publicaciones con métricas. Cada fase cierra con algo público y la métrica de progreso es «cosas publicadas», no «clases vistas».",
          "style": {
            "tone": "warning"
          }
        }
      ]
    },
    {
      "id": "catalogo",
      "title": "Las 10 piezas de teoría",
      "eyebrow": "RECURSOS · RECORTADO",
      "description": "Solo lo que cabe en ~35 horas y se conecta directo con Vara. Todo abierto y gratuito.",
      "notePrompt": "¿Algún recurso que ya hiciste y podemos marcar como cubierto?",
      "blocks": [
        {
          "type": "table",
          "id": "t-catalogo",
          "title": "Las 10 piezas, en orden de consumo",
          "columns": [
            {
              "key": "n",
              "label": "#",
              "numeric": true
            },
            {
              "key": "pieza",
              "label": "Pieza"
            },
            {
              "key": "fuente",
              "label": "Fuente"
            },
            {
              "key": "dur",
              "label": "Video"
            },
            {
              "key": "sem",
              "label": "Semana"
            },
            {
              "key": "compra",
              "label": "Qué te compra"
            }
          ],
          "rows": [
            {
              "n": 1,
              "pieza": "Karpathy 1 · micrograd (backprop)",
              "fuente": "Zero to Hero",
              "dur": "2 h 25",
              "sem": "1",
              "compra": "Entender qué es un gradiente con las manos. Base de todo lo demás."
            },
            {
              "n": 2,
              "pieza": "Karpathy 2 · makemore (modelado de lenguaje)",
              "fuente": "Zero to Hero",
              "dur": "1 h 57",
              "sem": "1-2",
              "compra": "Qué es un modelo de lenguaje, en 200 líneas."
            },
            {
              "n": 3,
              "pieza": "CS336 L1 · Overview y tokenización",
              "fuente": "Stanford, Spring 2026",
              "dur": "1 h 20",
              "sem": "2",
              "compra": "Por qué dos proveedores cuentan distinto los tokens. Es el impuesto del español."
            },
            {
              "n": 4,
              "pieza": "Karpathy 8 · el tokenizador de GPT",
              "fuente": "Zero to Hero",
              "dur": "2 h 13",
              "sem": "2-3",
              "compra": "BPE implementado por vos. Con él medís el impuesto del español."
            },
            {
              "n": 5,
              "pieza": "Karpathy 7 · GPT desde cero",
              "fuente": "Zero to Hero",
              "dur": "1 h 56",
              "sem": "3",
              "compra": "Atención causal escrita a mano. Cierra la mecánica."
            },
            {
              "n": 6,
              "pieza": "CS336 L2 · PyTorch y resource accounting",
              "fuente": "Stanford, Spring 2026",
              "dur": "1 h 20",
              "sem": "4",
              "compra": "FLOPs y memoria. Coste con números, no con intuición."
            },
            {
              "n": 7,
              "pieza": "CS336 L10 · Inferencia",
              "fuente": "Stanford, Spring 2026",
              "dur": "1 h 20",
              "sem": "5",
              "compra": "KV cache, batching, latencia, throughput. La clase más importante del plan."
            },
            {
              "n": 8,
              "pieza": "CS336 L12 · Evaluación",
              "fuente": "Stanford, Spring 2026",
              "dur": "1 h 20",
              "sem": "7",
              "compra": "Cómo se evalúa un LM de verdad. Convierte tu claim en evidencia."
            },
            {
              "n": 9,
              "pieza": "CS224N · Benchmarking y evaluación",
              "fuente": "Stanford, slides 2026 / video 2024",
              "dur": "1 h 20",
              "sem": "8",
              "compra": "Sesgos de LLM-as-a-judge, contaminación, calibración. Es la clase del juez de Vara."
            },
            {
              "n": 10,
              "pieza": "EfficientML · Cuantización",
              "fuente": "MIT 6.5940",
              "dur": "1 h 20",
              "sem": "12",
              "compra": "Por qué un modelo pequeño cuantizado gana en coste. Base de los 3 modelos locales del leaderboard."
            }
          ],
          "searchable": false,
          "sortable": false,
          "caption": "~17 horas de video. Con pausas para escribir código, ~30-35 horas reales. Es todo lo que cabe."
        },
        {
          "type": "cards",
          "id": "cards-links",
          "columns": 3,
          "items": [
            {
              "title": "CS336",
              "text": "Página del curso: slides, assignments, playlist pública.",
              "link": {
                "label": "cs336.stanford.edu",
                "href": "https://cs336.stanford.edu/"
              }
            },
            {
              "title": "CS336 en YouTube",
              "text": "Las 19 clases de Spring 2026. Vas a ver 4.",
              "link": {
                "label": "Playlist",
                "href": "https://www.youtube.com/playlist?list=PLoROMvodv4rMqXOcazWaTUHhq-yembLCV"
              }
            },
            {
              "title": "Karpathy",
              "text": "Zero to Hero, 8 videos. Vas a hacer 4.",
              "link": {
                "label": "karpathy.ai",
                "href": "https://karpathy.ai/zero-to-hero.html"
              }
            },
            {
              "title": "CS224N",
              "text": "Slides 2026 públicos; los videos completos son los de 2024, enlazados desde la página.",
              "link": {
                "label": "Página del curso",
                "href": "https://web.stanford.edu/class/cs224n/"
              }
            },
            {
              "title": "EfficientML.ai",
              "text": "Curso de MIT sobre eficiencia e inferencia.",
              "link": {
                "label": "hanlab.mit.edu",
                "href": "https://hanlab.mit.edu/course"
              }
            },
            {
              "title": "NotebookLM",
              "text": "Tu multiplicador. Un cuaderno por fase.",
              "link": {
                "label": "notebooklm.google.com",
                "href": "https://notebooklm.google.com"
              }
            }
          ]
        },
        {
          "type": "cards",
          "id": "cards-audio",
          "columns": 2,
          "items": [
            {
              "title": "Tiempos muertos (no cuentan como horas del plan)",
              "text": "Escuchar como podcast, caminando o en el auto: CS25 V6 «Production Inference at Scale» (Modal), CS336 L19 (Dan Fu), CS336 L4 (MoE). Si no llegás, no pasa nada.",
              "eyebrow": "AUDIO",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "title": "Karpathy 3, 4, 5 y 6",
              "text": "MLP, activaciones, backprop ninja, WaveNet. Excelentes, pero no cambian lo que publicás. Volvé a ellos después de la semana 16 si te quedaste con ganas.",
              "eyebrow": "DIFERIDO",
              "style": {
                "tone": "neutral"
              }
            }
          ]
        },
        {
          "type": "callout",
          "id": "c-idioma",
          "title": "Sobre el inglés técnico",
          "text": "Todo el material es en inglés, y está bien: el vocabulario que necesitás *es* inglés. NotebookLM te lo explica en español; vos **escribís y publicás en inglés**.",
          "style": {
            "tone": "neutral"
          }
        }
      ]
    },
    {
      "id": "plan16",
      "title": "Plan de 16 semanas",
      "eyebrow": "CRONOGRAMA · 8-10 H/SEM",
      "description": "Cinco fases. Cada fase termina con algo público. Si una semana se cae, se cae la teoría, nunca el entregable.",
      "notePrompt": "¿Qué semana ves poco realista con tu carga de trabajo?",
      "blocks": [
        {
          "type": "timeline",
          "id": "tl-fases",
          "items": [
            {
              "label": "Sem 1-3",
              "title": "Fase 1 · Mecánica",
              "text": "Karpathy 1, 2, 8, 7 + CS336 L1. Entregable: `tokenlab` y el primer hallazgo publicable: cuánto más caro es el español y el portugués que el inglés en tokens, por proveedor.",
              "status": "current"
            },
            {
              "label": "Sem 4-6",
              "title": "Fase 2 · Tareas y harness",
              "text": "CS336 L2 y L10. Taxonomía de 6 familias, 100 tareas iniciales, harness que corre 3 modelos y registra tokens, coste y latencia. Deep dive 1: el impuesto del español.",
              "status": "upcoming"
            },
            {
              "label": "Sem 7-10",
              "title": "Fase 3 · Juez y corrida",
              "text": "CS336 L12 + CS224N benchmarking. 60 etiquetas humanas, juez calibrado, 200-300 tareas, corrida completa de 10-12 modelos. Deep dive 2: leaderboard v1 con Pareto por familia.",
              "status": "upcoming"
            },
            {
              "label": "Sem 11-13",
              "title": "Fase 4 · CLI, locales y empaquetado",
              "text": "EfficientML cuantización. Modelos locales en la RTX 3050, `vara bench` para tareas propias, README, `make bench`, dataset en Hugging Face, video. Deep dive 3: dónde fallan los modelos baratos.",
              "status": "upcoming"
            },
            {
              "label": "Sem 14-16",
              "title": "Fase 5 · Conversar",
              "text": "2 ONGs corren `vara bench` con sus tareas. 20 mensajes dirigidos, 3 procesos abiertos, propuesta de charla, perfiles alineados.",
              "status": "upcoming"
            }
          ]
        },
        {
          "type": "table",
          "id": "t-semanas",
          "title": "Semana a semana",
          "columns": [
            {
              "key": "sem",
              "label": "Sem",
              "numeric": true
            },
            {
              "key": "fase",
              "label": "Fase"
            },
            {
              "key": "teoria",
              "label": "Teoría (2 bloques de 1,5 h)"
            },
            {
              "key": "codigo",
              "label": "Código (3-4 bloques de 1,5 h)"
            },
            {
              "key": "publico",
              "label": "Salida pública (domingo)"
            }
          ],
          "rows": [
            {
              "sem": 0,
              "fase": "Arranque",
              "teoria": "Ninguna",
              "codigo": "Repo `vara` con README de 10 líneas; cuaderno NotebookLM Fase 1; perfiles",
              "publico": "Post 0: qué vas a medir y a qué ritmo"
            },
            {
              "sem": 1,
              "fase": "1 Mecánica",
              "teoria": "Karpathy 1 (micrograd)",
              "codigo": "Reescribir micrograd sin mirar",
              "publico": "Build log: por qué empiezo por backprop a los 25 años de carrera"
            },
            {
              "sem": 2,
              "fase": "1 Mecánica",
              "teoria": "Karpathy 2 + CS336 L1",
              "codigo": "Tokenizador BPE propio (primera mitad)",
              "publico": "Build log: el primer conteo de tokens"
            },
            {
              "sem": 3,
              "fase": "1 Mecánica",
              "teoria": "Karpathy 8 + Karpathy 7 (a 1.5x)",
              "codigo": "BPE terminado; el mismo texto en es/pt/en contra 4 tokenizadores reales; tabla del «impuesto del español»",
              "publico": "Build log: el español cuesta X% más tokens que el inglés, por proveedor"
            },
            {
              "sem": 4,
              "fase": "2 Harness",
              "teoria": "CS336 L2 (resource accounting)",
              "codigo": "Taxonomía de 6 familias de tareas; esquema del dataset (tarea, familia, idioma, input, ground truth, tipo de métrica)",
              "publico": "Build log: las 6 familias y por qué esas"
            },
            {
              "sem": 5,
              "fase": "2 Harness",
              "teoria": "CS336 L10 (inferencia)",
              "codigo": "Harness v0: OpenRouter, 3 modelos, registro de tokens in/out, coste por tabla de precios, latencia p50/p95; adapters falsos para no gastar",
              "publico": "Build log: una llamada, desarmada en coste y latencia"
            },
            {
              "sem": 6,
              "fase": "2 Harness",
              "teoria": "NotebookLM: repaso socrático de L2+L10",
              "codigo": "100 tareas cargadas (extracción y clasificación primero, con ground truth determinista); primera corrida real (~USD 20)",
              "publico": "**Deep dive 1**: el impuesto del español, con números"
            },
            {
              "sem": 7,
              "fase": "3 Juez",
              "teoria": "CS336 L12 (evaluación)",
              "codigo": "Rúbricas por familia; diseño del juez; 30 casos etiquetados a mano",
              "publico": "Build log: por qué el juez es el 80% del benchmark"
            },
            {
              "sem": 8,
              "fase": "3 Juez",
              "teoria": "CS224N benchmarking",
              "codigo": "30 etiquetas más (60 en total); acuerdo juez-humano medido; ajuste de rúbricas",
              "publico": "Build log: la matriz de acuerdo del juez"
            },
            {
              "sem": 9,
              "fase": "3 Corrida",
              "teoria": "Ninguna (semana de código)",
              "codigo": "Dataset completo (200-300 tareas); corrida completa 10-12 modelos, semilla fija, ids anclados (~USD 60)",
              "publico": "Build log: primeros resultados crudos"
            },
            {
              "sem": 10,
              "fase": "3 Corrida",
              "teoria": "Ninguna (semana de código)",
              "codigo": "Repeticiones para modelos baratos (~USD 30); Pareto coste-latencia-calidad por familia; sección «dónde pierde cada uno»",
              "publico": "**Deep dive 2**: leaderboard v1"
            },
            {
              "sem": 11,
              "fase": "4 Empaquetar",
              "teoria": "Ninguna",
              "codigo": "`vara bench mis-tareas.jsonl`: un comando para que otro corra sus tareas; README definitivo",
              "publico": "Build log: el README, pidiendo feedback"
            },
            {
              "sem": 12,
              "fase": "4 Empaquetar",
              "teoria": "EfficientML cuantización",
              "codigo": "3 modelos locales cuantizados en la RTX 3050 sumados al leaderboard; `make bench` regenera cada gráfico",
              "publico": "Build log: qué rinde un modelo local de 7B contra la nube"
            },
            {
              "sem": 13,
              "fase": "4 Empaquetar",
              "teoria": "Ninguna",
              "codigo": "Dataset en Hugging Face; video de 60 s; release v1.0; reserva de USD 30 para re-corridas",
              "publico": "**Deep dive 3** + video: dónde fallan los modelos baratos"
            },
            {
              "sem": 14,
              "fase": "5 Conversar",
              "teoria": "Ninguna",
              "codigo": "2 ONGs corren `vara bench` con sus tareas (vos acompañás 1 h a cada una)",
              "publico": "10 mensajes dirigidos (plantilla D)"
            },
            {
              "sem": 15,
              "fase": "5 Conversar",
              "teoria": "Ninguna",
              "codigo": "Ajustes por feedback",
              "publico": "10 mensajes más + propuesta de charla"
            },
            {
              "sem": 16,
              "fase": "5 Conversar",
              "teoria": "Simulacro de entrevista con NotebookLM",
              "codigo": "Página personal de una sola pantalla",
              "publico": "Retro pública de las 16 semanas"
            }
          ],
          "searchable": true,
          "sortable": true,
          "filters": [
            {
              "column": "fase",
              "label": "Fase"
            }
          ]
        },
        {
          "type": "metrics",
          "id": "m-presupuesto",
          "items": [
            {
              "label": "Sem 4-6",
              "value": "~USD 30",
              "detail": "Desarrollo; adapters falsos para casi todo",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "label": "Sem 9-10",
              "value": "~USD 90",
              "detail": "Corrida completa + repeticiones",
              "style": {
                "tone": "warning"
              }
            },
            {
              "label": "Sem 12-13",
              "value": "~USD 30",
              "detail": "Reserva para re-corridas y locales",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "label": "Total",
              "value": "USD 150",
              "detail": "Tope acordado",
              "style": {
                "tone": "accent"
              }
            }
          ],
          "caption": "Regla: ninguna corrida completa antes de que el juez esté calibrado (semana 8). Correr antes es tirar plata."
        },
        {
          "type": "callout",
          "id": "c-buffer",
          "title": "Reglas de las semanas caídas",
          "text": "Vas a perder semanas: está previsto. **Nunca dos seguidas.** Las semanas 9, 11 y 14-15 no tienen teoría y funcionan como colchón.",
          "style": {
            "tone": "warning"
          }
        }
      ]
    },
    {
      "id": "cs336",
      "title": "CS336: las 4 clases críticas",
      "eyebrow": "CURSO EJE · RECORTADO",
      "description": "Stanford CS336, Language Modeling from Scratch, Spring 2026. Diecinueve clases públicas; vas a ver cuatro con atención y tres como audio.",
      "notePrompt": "¿Alguna clase que quieras subir o bajar de prioridad?",
      "blocks": [
        {
          "type": "table",
          "id": "t-cs336",
          "title": "Las 19 clases, clasificadas",
          "columns": [
            {
              "key": "n",
              "label": "L",
              "numeric": true
            },
            {
              "key": "tema",
              "label": "Tema"
            },
            {
              "key": "prio",
              "label": "Prioridad"
            },
            {
              "key": "sem",
              "label": "Semana"
            },
            {
              "key": "uso",
              "label": "Uso directo en Vara"
            }
          ],
          "rows": [
            {
              "n": 1,
              "tema": "Overview, tokenización",
              "prio": "Crítica",
              "sem": "2",
              "uso": "Por qué dos proveedores cuentan distinto. Base del argumento de coste."
            },
            {
              "n": 2,
              "tema": "PyTorch (einops), resource accounting",
              "prio": "Crítica",
              "sem": "4",
              "uso": "FLOPs y memoria a mano. Justificar coste con números."
            },
            {
              "n": 3,
              "tema": "Arquitecturas e hiperparámetros",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "No cambia lo que publicás."
            },
            {
              "n": 4,
              "tema": "Alternativas de atención y MoE",
              "prio": "Audio",
              "sem": "Tiempos muertos",
              "uso": "Explica por qué ciertos modelos son baratos y buenos. Explica por qué algunos modelos medios rinden como frontier a menor coste."
            },
            {
              "n": 5,
              "tema": "GPUs, TPUs",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "Interesante; no medís GPUs propias."
            },
            {
              "n": 6,
              "tema": "Kernels, Triton",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "Agujero sin fondo."
            },
            {
              "n": 7,
              "tema": "Paralelismo I",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "No aplica a tu escala."
            },
            {
              "n": 8,
              "tema": "Paralelismo II",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "No aplica a tu escala."
            },
            {
              "n": 9,
              "tema": "Leyes de escalado I",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "Vocabulario, no acción."
            },
            {
              "n": 10,
              "tema": "Inferencia",
              "prio": "Crítica",
              "sem": "5",
              "uso": "KV cache, batching, latencia, throughput. Latencia p50/p95 es uno de los tres ejes de Vara."
            },
            {
              "n": 11,
              "tema": "Leyes de escalado II",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "-"
            },
            {
              "n": 12,
              "tema": "Evaluación",
              "prio": "Crítica",
              "sem": "7",
              "uso": "La que convierte tu claim en evidencia."
            },
            {
              "n": 13,
              "tema": "Datos: fuentes",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "-"
            },
            {
              "n": 14,
              "tema": "Datos: filtrado, dedup, datos sintéticos",
              "prio": "Audio",
              "sem": "Tiempos muertos",
              "uso": "Ideas para generar tareas sintéticas de Vara."
            },
            {
              "n": 15,
              "tema": "Mid/post-training (SFT, RLHF)",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "No entrenás nada en este plan."
            },
            {
              "n": 16,
              "tema": "Post-training RLVR",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "-"
            },
            {
              "n": 17,
              "tema": "Alineamiento y multimodalidad",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "-"
            },
            {
              "n": 18,
              "tema": "Invitado: Daniel Selsam",
              "prio": "Ignorar",
              "sem": "-",
              "uso": "-"
            },
            {
              "n": 19,
              "tema": "Invitado: Dan Fu",
              "prio": "Audio",
              "sem": "Tiempos muertos",
              "uso": "Eficiencia consciente del hardware. Alineado a tu tesis."
            }
          ],
          "searchable": false,
          "sortable": true,
          "filters": [
            {
              "column": "prio",
              "label": "Prioridad"
            }
          ],
          "caption": "Críticas: 1, 2, 10 y 12. Los assignments del curso quedan fuera: tu «assignment» es Vara."
        },
        {
          "type": "callout",
          "id": "c-cs336-porque",
          "title": "Por qué este curso y no otro",
          "text": "Es el único curso abierto que va de la tokenización a la **inferencia** y la **evaluación** con código real. Sus clases 10 y 12 son, literalmente, el contenido de tu proyecto. Ver 4 clases bien vale más que ver 19 a medias.",
          "style": {
            "tone": "success"
          }
        }
      ]
    },
    {
      "id": "karpathy",
      "title": "Karpathy: 4 de 8 videos",
      "eyebrow": "FASE 1",
      "description": "Ocho horas y media de video que valen más que un semestre. Sin slides, todo código en vivo: el formato que tu cabeza tolera.",
      "notePrompt": "¿Cuáles ya viste y con cuáles te trabaste?",
      "blocks": [
        {
          "type": "table",
          "id": "t-karpathy",
          "title": "Neural Networks: Zero to Hero, recortado",
          "columns": [
            {
              "key": "n",
              "label": "N",
              "numeric": true
            },
            {
              "key": "video",
              "label": "Video"
            },
            {
              "key": "dur",
              "label": "Duración"
            },
            {
              "key": "dec",
              "label": "Decisión"
            },
            {
              "key": "tarea",
              "label": "Tarea de código obligatoria"
            }
          ],
          "rows": [
            {
              "n": 1,
              "video": "Intro a redes neuronales y backpropagation: micrograd",
              "dur": "2 h 25",
              "dec": "Hacer · sem 1",
              "tarea": "Reescribir micrograd de memoria al día siguiente."
            },
            {
              "n": 2,
              "video": "Intro al modelado de lenguaje: makemore",
              "dur": "1 h 57",
              "dec": "Hacer · sem 1-2",
              "tarea": "Entrenar el bigrama con nombres argentinos."
            },
            {
              "n": 3,
              "video": "makemore parte 2: MLP",
              "dur": "1 h 15",
              "dec": "Diferir",
              "tarea": "-"
            },
            {
              "n": 4,
              "video": "makemore parte 3: activaciones, gradientes, BatchNorm",
              "dur": "1 h 55",
              "dec": "Diferir",
              "tarea": "-"
            },
            {
              "n": 5,
              "video": "makemore parte 4: backprop ninja",
              "dur": "1 h 55",
              "dec": "Diferir",
              "tarea": "-"
            },
            {
              "n": 6,
              "video": "makemore parte 5: WaveNet",
              "dur": "56 min",
              "dec": "Diferir",
              "tarea": "-"
            },
            {
              "n": 7,
              "video": "Construyamos GPT desde cero",
              "dur": "1 h 56",
              "dec": "Hacer · sem 3 (a 1.5x)",
              "tarea": "Ejecutar nanoGPT con un corpus en español; no hace falta reescribirlo entero."
            },
            {
              "n": 8,
              "video": "Construyamos el tokenizador de GPT",
              "dur": "2 h 13",
              "dec": "Hacer · sem 2-3",
              "tarea": "Implementar BPE y comparar el mismo texto en es/pt/en contra tokenizadores reales. Es el primer hallazgo de Vara."
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "callout",
          "id": "c-karpathy-regla",
          "title": "Regla de oro",
          "text": "Nunca mirés un video sin el editor abierto. Pausá cada vez que él escribe código y escribilo vos antes. Duplica el tiempo y multiplica por diez lo que retenés. Con 1,5 h por bloque, un video de 2 h son dos bloques: está previsto.",
          "style": {
            "tone": "accent"
          }
        }
      ]
    },
    {
      "id": "cs224n",
      "title": "CS224N: una sola clase",
      "eyebrow": "COMPLEMENTO",
      "description": "Los slides 2026 son públicos; los videos completos son de la edición 2024. Solo entra la clase de evaluación.",
      "notePrompt": "¿Te sirve más el marco académico o preferís ir directo al código?",
      "blocks": [
        {
          "type": "cards",
          "id": "cards-cs224n",
          "columns": 2,
          "items": [
            {
              "title": "Benchmarking y evaluación",
              "text": "Semana 8. Sesgos de LLM-as-a-judge, contaminación de benchmarks, calibración. Complemento directo de CS336 L12: juntas son tu Fase 3.",
              "eyebrow": "ENTRA",
              "badge": "Sem 8",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "Todo lo demás",
              "text": "Historia del NLP, word vectors, RNNs, transformers formales, pretraining, post-training, agentes, interpretabilidad, multimodalidad. Ninguna te acerca a publicar en 16 semanas.",
              "eyebrow": "NO ENTRA",
              "style": {
                "tone": "neutral"
              }
            }
          ]
        }
      ]
    },
    {
      "id": "complementos",
      "title": "Herramientas de Vara",
      "eyebrow": "STACK · LO MÍNIMO",
      "description": "Lo mínimo para que el benchmark sea creíble y reproducible. Todo lo que ya usás, más una librería de evals.",
      "notePrompt": "¿Ya usás alguna de estas?",
      "blocks": [
        {
          "type": "table",
          "id": "t-stack",
          "title": "Stack",
          "columns": [
            {
              "key": "tool",
              "label": "Herramienta"
            },
            {
              "key": "para",
              "label": "Para qué"
            },
            {
              "key": "rol",
              "label": "Rol en Vara"
            }
          ],
          "rows": [
            {
              "tool": "OpenRouter (ya lo usás)",
              "para": "Un solo endpoint para 10-12 modelos de API, con precios por token",
              "rol": "Todo el acceso a modelos cloud. La tabla de precios se ancla por fecha."
            },
            {
              "tool": "LM Studio o llama.cpp (ya lo usás)",
              "para": "Modelos locales cuantizados en la RTX 3050",
              "rol": "3 modelos locales en el leaderboard (semana 12)."
            },
            {
              "tool": "DeepEval o Inspect (elegir uno en la semana 7)",
              "para": "Estructura de evals, métricas, reportes",
              "rol": "Esqueleto de scoring. No agregues más de uno."
            },
            {
              "tool": "Tokenizadores reales (tiktoken, sentencepiece, los de HF)",
              "para": "Contar tokens exactamente como cada proveedor",
              "rol": "El impuesto del español (semana 3)."
            },
            {
              "tool": "Plotly (ya lo usás) + HTML estático",
              "para": "Pareto y leaderboard",
              "rol": "`make bench` los regenera. Sin dashboards nuevos."
            },
            {
              "tool": "Adapters falsos (idea rescatada del Framework)",
              "para": "Correr la suite sin gastar",
              "rol": "Modo `--fake` para desarrollo y CI."
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "callout",
          "id": "c-no-herramientas",
          "title": "Lo que NO se agrega",
          "text": "Ni Langfuse, ni Ragas, ni un framework de agentes, ni un proxy, ni los cursos de Hugging Face. Cada herramienta nueva es una semana. Vara es un harness, un juez y un gráfico.",
          "style": {
            "tone": "danger"
          }
        }
      ]
    },
    {
      "id": "notebooklm",
      "title": "Prompt pack para NotebookLM",
      "eyebrow": "TU MULTIPLICADOR",
      "description": "Copiar y pegar. Tres cuadernos, no uno. Cargás transcripciones y slides como fuentes.",
      "notePrompt": "¿Qué prompt te funcionó mejor y cuál no?",
      "blocks": [
        {
          "type": "callout",
          "id": "c-nlm-setup",
          "title": "Montaje: 3 cuadernos",
          "text": "**Cuaderno 1 · Mecánica**: transcripciones de Karpathy 1, 2, 7, 8 y slides de CS336 L1. **Cuaderno 2 · Coste e inferencia**: CS336 L2 y L10, más tus notas de diseño de Vara. **Cuaderno 3 · Evals**: CS336 L12, CS224N benchmarking, docs de DeepEval y tus deep dives. Un cuaderno con 40 fuentes responde peor que uno con 6 bien elegidas.",
          "style": {
            "tone": "accent"
          }
        },
        {
          "type": "code",
          "id": "code-nlm-1",
          "title": "Prompt 1 · Traductor de mecánica (uso diario)",
          "language": "text",
          "code": "Actúa como un ingeniero senior explicándole a un arquitecto de sistemas con 25 años de experiencia en negocio pero sin matemática reciente.\n\nExplica [CONCEPTO] en tres capas:\n1. La analogía de sistemas: qué problema de ingeniería resuelve, en términos de memoria, ancho de banda o coste.\n2. La mecánica: qué ocurre paso a paso con los números, con un ejemplo concreto de dimensiones pequeñas.\n3. La matemática: la ecuación, y qué representa cada símbolo, uno por uno.\n\nNo uses metáforas de cerebros ni de neuronas. Usa metáforas de infraestructura, caches y colas.\nTermina con: 'dónde falla esto en producción'."
        },
        {
          "type": "code",
          "id": "code-nlm-2",
          "title": "Prompt 2 · Puente teoría a Vara (antes de cada bloque de código)",
          "language": "text",
          "code": "De las fuentes de este cuaderno, extrae los 3 conceptos que se pueden aplicar hoy a un benchmark que mide coste, latencia y calidad de LLMs por tarea en español y portugués, con un juez calibrado.\n\nPara cada uno:\n- Nombre del concepto y en qué clase/minuto aparece.\n- Pseudocódigo de 10 líneas máximo.\n- Qué métrica de mi benchmark debería moverse si lo aplico bien.\n- Cómo sabría que lo apliqué mal.\n\nOrdena por relación entre impacto y esfuerzo. Descarta lo que necesite entrenar un modelo."
        },
        {
          "type": "code",
          "id": "code-nlm-3",
          "title": "Prompt 3 · Tutor socrático (viernes o domingo, 20 minutos)",
          "language": "text",
          "code": "Hazme 5 preguntas de dificultad creciente sobre [TEMA DE LA SEMANA], del estilo que haría un staff engineer en una entrevista técnica.\n\nReglas:\n- Una pregunta por vez. Espera mi respuesta.\n- Después de cada respuesta, califica mi rigor de 1 a 5 y di exactamente qué faltó.\n- Si respondo con vaguedad de consultor, señálalo sin diplomacia.\n- La última pregunta debe ser un caso de diseño de sistema con restricción de coste."
        },
        {
          "type": "code",
          "id": "code-nlm-4",
          "title": "Prompt 4 · Guion de Audio Overview (para tiempos muertos)",
          "language": "text",
          "code": "Genera un resumen en audio de 12 minutos sobre [TEMA], con este formato:\n- Minutos 0 a 2: por qué esto le cuesta dinero a una empresa que sirve modelos.\n- Minutos 2 a 8: la mecánica, con un ejemplo numérico que se pueda seguir de memoria.\n- Minutos 8 a 11: los tres errores típicos de quien lo implementa por primera vez.\n- Minutos 11 a 12: tres preguntas para que el oyente se responda a sí mismo.\n\nTono: dos ingenieros discutiendo, no un profesor dictando. Sin introducciones largas."
        },
        {
          "type": "code",
          "id": "code-nlm-5",
          "title": "Prompt 5 · Detector de agujeros (domingo, cierre de semana)",
          "language": "text",
          "code": "Voy a pegarte lo que entendí esta semana. Compara mi resumen contra las fuentes del cuaderno.\n\nDevuelve:\n1. Lo que dije bien (una línea por punto).\n2. Lo que dije mal o impreciso, con la cita exacta de la fuente que me corrige.\n3. Lo que ni mencioné y debería haber mencionado, ordenado por importancia.\n4. Una sola cosa para revisar el lunes.\n\nMI RESUMEN:\n[pegar aquí]"
        },
        {
          "type": "code",
          "id": "code-nlm-6",
          "title": "Prompt 6 · Esqueleto de deep dive",
          "language": "text",
          "code": "A partir de estas fuentes y de mis notas de experimento, ayúdame a estructurar un artículo técnico para ingenieros.\n\nEstructura:\n- El problema, en números de coste real.\n- La hipótesis que probé.\n- El montaje experimental, lo bastante detallado para reproducirlo.\n- Los resultados, incluyendo dónde el sistema falló.\n- Qué no probé y por qué (limitaciones honestas).\n\nMarca con [VERIFICAR] cada afirmación que no esté respaldada por mis datos.\nNo escribas el artículo: dame el esqueleto con las preguntas que aún no puedo responder."
        },
        {
          "type": "callout",
          "id": "c-nlm-regla",
          "title": "La regla que hace que esto funcione",
          "text": "NotebookLM solo responde sobre las fuentes que le cargás. Es una **ventaja**: no alucina teoría de internet. El trabajo real es curar las fuentes: 15 minutos al inicio de cada fase.",
          "style": {
            "tone": "success"
          }
        }
      ]
    },
    {
      "id": "proyecto",
      "title": "Proyecto faro: Vara",
      "eyebrow": "TU CARTA DE PRESENTACIÓN",
      "description": "Un benchmark abierto que dice, con números, qué modelo hace el trabajo en español y portugués al menor coste. Y un comando para que cualquiera lo mida con sus propias tareas.",
      "notePrompt": "¿Te convence el pitch? ¿Cambiarías alguna familia de tareas?",
      "blocks": [
        {
          "type": "callout",
          "id": "c-pitch",
          "title": "El pitch de una línea (en inglés, porque la audiencia es esa)",
          "text": "*Vara: an open benchmark and CLI that tells Spanish- and Portuguese-speaking organizations which LLM does their work at the lowest cost — measured with a human-calibrated judge, not claimed.* La palabra que hace el trabajo es **calibrated**: el acuerdo juez-humano es la primera línea del README.",
          "style": {
            "tone": "accent"
          }
        },
        {
          "type": "cards",
          "id": "cards-familias",
          "columns": 3,
          "items": [
            {
              "title": "1 · Extracción de facturas y recibos",
              "text": "JSON estructurado desde texto de facturas, recibos y comprobantes en es/pt. Métrica: exact match por campo + F1. Ground truth determinista.",
              "eyebrow": "FAMILIA",
              "badge": "Determinista",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "2 · Clasificación de tickets de soporte",
              "text": "Categoría y urgencia de mensajes de clientes en español rioplatense, mexicano y portugués brasileño. Métrica: accuracy y F1 macro.",
              "eyebrow": "FAMILIA",
              "badge": "Determinista",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "3 · Formularios y trámites",
              "text": "Completar o resumir formularios administrativos y cartas formales. Métrica: juez con rúbrica.",
              "eyebrow": "FAMILIA",
              "badge": "Juez",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "4 · Resumen de documentos largos",
              "text": "Actas, informes y contratos de 3-10 páginas a un resumen ejecutivo. Métrica: juez con rúbrica + cobertura de puntos clave.",
              "eyebrow": "FAMILIA",
              "badge": "Juez",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "5 · Preguntas sobre normativa con contexto",
              "text": "Q&A sobre un texto normativo provisto (sin RAG, el contexto va en el prompt). Métrica: exact match para hechos + juez para razonamiento.",
              "eyebrow": "FAMILIA",
              "badge": "Mixta",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "6 · Traducción es ↔ pt",
              "text": "Traducción de textos operativos entre español y portugués. Métrica: chrF + juez.",
              "eyebrow": "FAMILIA",
              "badge": "Mixta",
              "style": {
                "tone": "accent"
              }
            }
          ],
          "caption": "Seis familias, no más. Dos deterministas, dos de juez, dos mixtas: así el acuerdo del juez se puede contrastar contra métricas duras."
        },
        {
          "type": "diagram",
          "id": "d-vara",
          "title": "Arquitectura de Vara",
          "nodes": [
            {
              "id": "tasks",
              "label": "Tareas",
              "description": "JSONL: familia, idioma, input, ground truth",
              "column": 0,
              "row": 0,
              "style": {
                "tone": "accent"
              }
            },
            {
              "id": "harn",
              "label": "Harness",
              "description": "OpenRouter + locales; adapters falsos",
              "column": 1,
              "row": 0,
              "style": {
                "tone": "accent"
              }
            },
            {
              "id": "tel",
              "label": "Telemetría",
              "description": "tokens · coste · latencia (esquema A2)",
              "column": 2,
              "row": 0
            },
            {
              "id": "score",
              "label": "Scoring",
              "description": "exact/F1/chrF + juez calibrado",
              "column": 2,
              "row": 1,
              "style": {
                "tone": "success"
              }
            },
            {
              "id": "board",
              "label": "Leaderboard",
              "description": "Pareto por familia · HTML estático",
              "column": 1,
              "row": 1,
              "style": {
                "tone": "success"
              }
            },
            {
              "id": "clib",
              "label": "vara bench",
              "description": "El mismo pipeline sobre tus tareas",
              "column": 0,
              "row": 1,
              "style": {
                "tone": "warning"
              }
            }
          ],
          "edges": [
            {
              "from": "tasks",
              "to": "harn",
              "label": "corre"
            },
            {
              "from": "harn",
              "to": "tel",
              "label": "registra"
            },
            {
              "from": "tel",
              "to": "score",
              "label": "puntúa"
            },
            {
              "from": "score",
              "to": "board",
              "label": "publica"
            },
            {
              "from": "board",
              "to": "clib",
              "label": "reutiliza"
            }
          ]
        },
        {
          "type": "table",
          "id": "t-hitos",
          "title": "Hitos",
          "columns": [
            {
              "key": "v",
              "label": "Hito"
            },
            {
              "key": "sem",
              "label": "Semana"
            },
            {
              "key": "alcance",
              "label": "Alcance"
            },
            {
              "key": "prueba",
              "label": "Prueba de que está hecho"
            }
          ],
          "rows": [
            {
              "v": "Impuesto del español",
              "sem": "3",
              "alcance": "El mismo corpus en es/pt/en contra 4 tokenizadores reales",
              "prueba": "Una tabla con el % extra de tokens por idioma y proveedor, reproducible"
            },
            {
              "v": "Harness v0",
              "sem": "5-6",
              "alcance": "3 modelos vía OpenRouter, 100 tareas, telemetría completa, adapters falsos",
              "prueba": "`vara run --fake` corre la suite entera sin gastar un centavo"
            },
            {
              "v": "Juez calibrado",
              "sem": "7-8",
              "alcance": "Rúbricas por familia, 60 etiquetas humanas, acuerdo medido",
              "prueba": "El acuerdo juez-humano es un número publicado, con intervalo"
            },
            {
              "v": "Leaderboard v1",
              "sem": "9-10",
              "alcance": "10-12 modelos, 200-300 tareas, Pareto por familia, «dónde pierde cada uno»",
              "prueba": "Cada gráfico se regenera con `make bench`"
            },
            {
              "v": "CLI + locales",
              "sem": "11-12",
              "alcance": "`vara bench tus-tareas.jsonl`; 3 modelos locales cuantizados en el ranking",
              "prueba": "Un desconocido mide sus tareas en menos de 10 minutos"
            },
            {
              "v": "v1.0",
              "sem": "13",
              "alcance": "Dataset en Hugging Face, README, video, release",
              "prueba": "Alguien que no sos vos lo cita"
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "cards",
          "id": "cards-rigor",
          "columns": 2,
          "items": [
            {
              "title": "Modelos: 10-12, no 30",
              "text": "4 frontier (los que todos comparan), 4 medios (los que una ONG pagaría), 2-3 baratos, 3 locales cuantizados. Ids de versión anclados. Un leaderboard con 30 modelos es ruido; con 12 bien elegidos es una decisión.",
              "eyebrow": "ALCANCE",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "Estadística mínima honesta",
              "text": "3 repeticiones para modelos baratos, 1 para los caros (presupuesto). Intervalos por bootstrap. Mostrar siempre el N. La palabra «mejor» solo cuando el intervalo no se solapa.",
              "eyebrow": "RIGOR",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Datos: sintéticos + públicos, nunca privados",
              "text": "Facturas y formularios generados con plantillas reales y variaciones; documentos públicos (boletines oficiales, normativa). Ni un dato de EY ni de clientes. Las ONGs que prueben `vara bench` corren con sus datos en su máquina.",
              "eyebrow": "PRIVACIDAD",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "Honestidad como estrategia",
              "text": "La sección «dónde pierde cada modelo» y la de «limitaciones del juez» generan más confianza que cualquier ranking. Los senior contratan a quien sabe dónde falla su propio instrumento.",
              "eyebrow": "CONTRAINTUITIVO",
              "style": {
                "tone": "success"
              }
            }
          ]
        },
        {
          "type": "code",
          "id": "code-readme",
          "title": "Esqueleto del README (el archivo más importante del repo)",
          "language": "markdown",
          "code": "# Vara\n\nAn open benchmark and CLI that tells Spanish- and Portuguese-speaking organizations\nwhich LLM does their work at the lowest cost — measured, not claimed.\n\n**Judge-human agreement: [X]% (n=60, [interval]).** Everything below depends on that number.\n\n## 60-second quickstart\n\n```\npipx install vara\nvara bench examples/invoices.jsonl --fake     # runs the full pipeline, no API keys, no cost\nvara bench my-tasks.jsonl --models cheap      # your tasks, real models, shows cost before running\n```\n\n## Leaderboard (v1, [fecha])\n\n| Model | Cost / 1k tasks | p95 latency | Quality (es) | Quality (pt) | Best at |\n|---|---|---|---|---|---|\n| ... | ... | ... | ... | ... | ... |\n\nReproduce: `make bench`. Dataset: [Hugging Face link].\n\n## The Spanish token tax\n\n[Una tabla. Tu primer hallazgo.]\n\n## Where each model loses\n\n[Sé honesto aquí. Es la sección que te contrata.]\n\n## Limitations of the judge\n\n[Qué no mide bien, y por qué igual sirve.]"
        },
        {
          "type": "callout",
          "id": "c-rescate",
          "title": "Lo que se rescata del Framework AI",
          "text": "Dos ideas, no el código: el **esquema de telemetría** coste × modelo × tarea (A2) se convierte en el esquema de registro de Vara; los **adapters falsos** (A3) son el modo `--fake` que permite desarrollar y correr CI sin gastar. El resto del Framework queda como está: funcionó, te enseñó, y no se publica.",
          "style": {
            "tone": "neutral"
          }
        }
      ]
    },
    {
      "id": "mundo",
      "title": "Impacto: ONGs, startups y comunidad",
      "eyebrow": "EL PROYECTO CON ALMA",
      "description": "Vara sirve a tres audiencias con el mismo artefacto. Ninguna requiere horas extra.",
      "notePrompt": "¿Qué ONG o startup conocés que correría `vara bench` en la semana 14?",
      "blocks": [
        {
          "type": "cards",
          "id": "cards-mundo",
          "columns": 3,
          "items": [
            {
              "title": "ONGs de LATAM",
              "text": "Hoy eligen modelo por intuición o por lo que usa el voluntario que sabe. Con Vara ven qué modelo hace *su* tarea al menor coste, y con `vara bench` lo miden con sus datos, en su máquina. Dos ONGs lo prueban en la semana 14, con vos al lado una hora.",
              "eyebrow": "IMPACTO DIRECTO",
              "badge": "Sem 14",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "Startups",
              "text": "Cualquier startup que sirva en español o portugués tiene el mismo problema: ¿qué modelo, a qué coste? Vara les ahorra semanas de pruebas. Y quien construye evals así es exactamente el perfil que contratan.",
              "eyebrow": "QUIEN TE CONTRATA",
              "badge": "Sem 14-16",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "Comunidad abierta",
              "text": "El dataset en Hugging Face y el leaderboard reproducible son un aporte real: no existe uno de coste por tarea en español. Se cita solo.",
              "eyebrow": "COMUNIDAD",
              "badge": "Sem 13",
              "style": {
                "tone": "warning"
              }
            }
          ]
        },
        {
          "type": "paragraph",
          "text": "El curso de LinkedIn sigue siendo lo único del portafolio con resultado verificado en la vida de otras personas. No lo toques, no lo escondas: es una línea del perfil que dice «lo que enseño funciona»."
        }
      ]
    },
    {
      "id": "publicacion",
      "title": "Calendario de publicación",
      "eyebrow": "DISTRIBUCIÓN · SOSTENIBLE",
      "description": "Publicás con nombre y apellido. Ritmo fijo, bajo, sostenible: no depende de que tengas algo espectacular.",
      "notePrompt": "¿Qué ritmo de publicación creés que podés sostener de verdad?",
      "blocks": [
        {
          "type": "metrics",
          "id": "m-publicacion",
          "items": [
            {
              "label": "Build logs",
              "value": "1 / semana",
              "detail": "Domingo, 20 min, plantilla A",
              "style": {
                "tone": "accent"
              }
            },
            {
              "label": "Deep dives",
              "value": "3",
              "detail": "Semanas 6, 10 y 13",
              "style": {
                "tone": "success"
              }
            },
            {
              "label": "Video",
              "value": "1",
              "detail": "Semana 13, 60 segundos",
              "style": {
                "tone": "warning"
              }
            },
            {
              "label": "Mensajes dirigidos",
              "value": "20",
              "detail": "Semanas 14-15, plantilla D",
              "style": {
                "tone": "neutral"
              }
            }
          ]
        },
        {
          "type": "table",
          "id": "t-canales",
          "title": "Qué va en cada canal",
          "columns": [
            {
              "key": "canal",
              "label": "Canal"
            },
            {
              "key": "formato",
              "label": "Formato"
            },
            {
              "key": "frec",
              "label": "Frecuencia"
            },
            {
              "key": "objetivo",
              "label": "Objetivo real"
            }
          ],
          "rows": [
            {
              "canal": "GitHub",
              "formato": "Harness, dataset, leaderboard, README impecable",
              "frec": "Commits 3-4 veces por semana",
              "objetivo": "La prueba. Es lo único que un ingeniero senior revisa de verdad."
            },
            {
              "canal": "LinkedIn",
              "formato": "El build log con una imagen o tabla",
              "frec": "1 por semana",
              "objetivo": "Recruiters y directores. Tu perfil de gestión suma acá, no resta."
            },
            {
              "canal": "X",
              "formato": "El mismo build log, más técnico y sin corbata",
              "frec": "1 por semana (copiar y pegar)",
              "objetivo": "Fundadores e ingenieros. Donde se descubre talento técnico."
            },
            {
              "canal": "Blog propio o Substack",
              "formato": "Deep dive de 1.500-2.000 palabras",
              "frec": "3 en 16 semanas",
              "objetivo": "Profundidad. Lo que leen antes de escribirte."
            },
            {
              "canal": "Hugging Face",
              "formato": "Dataset de tareas + resultados",
              "frec": "1 vez, semana 13",
              "objetivo": "Credibilidad en el ecosistema abierto."
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "details",
          "id": "det-plantillas",
          "title": "Plantillas (abrir y copiar)",
          "open": false,
          "blocks": [
            {
              "type": "code",
              "id": "code-pl-a",
              "title": "Plantilla A · Build log (20 minutos, domingo)",
              "language": "text",
              "code": "Week [N] of 16, building Vara in public at 1-2 h/day.\n\nThis week: [UNA COSA que construiste o mediste]\nThe surprise: [algo que no esperabas, con un número]\nNext: [una sola cosa]\n\n[imagen: gráfico, tabla o captura de terminal]\nRepo: [link]"
            },
            {
              "type": "code",
              "id": "code-pl-b",
              "title": "Plantilla B · Títulos de deep dive que funcionan",
              "language": "text",
              "code": "1. \"Spanish costs [X]% more tokens than English. Here is the table, per provider.\"\n2. \"Which LLM does Spanish paperwork cheapest? [N] real tasks, [M] models, one chart.\"\n3. \"A calibrated LLM judge for Spanish tasks: [X]% agreement with humans (n=60)\"\n4. \"Where the cheap models fail: [N] failure modes from a Spanish/Portuguese benchmark\"\n\nRegla: el título lleva un número medido o un fallo admitido. Nunca 'The ultimate guide to...'."
            },
            {
              "type": "code",
              "id": "code-pl-c",
              "title": "Plantilla C · Video de 60 segundos",
              "language": "text",
              "code": "0-5 s: el problema, en dinero.\n5-15 s: un comando corriendo. La cámara en la terminal.\n15-45 s: el gráfico apareciendo. Sin cortes.\n45-55 s: dónde falla. Una frase.\n55-60 s: el link.\n\nSin intro. Sin música. Terminal con fuente grande."
            },
            {
              "type": "code",
              "id": "code-pl-d",
              "title": "Plantilla D · Mensaje dirigido (semanas 14-15)",
              "language": "text",
              "code": "Hi [NOMBRE],\n\nI saw [ALGO ESPECÍFICO de su producto que muestra que lo usaste].\n\nI built Vara, an open benchmark of [M] LLMs on [N] real Spanish/Portuguese tasks: cost, latency and quality with a human-calibrated judge ([Y]% agreement). Leaderboard, dataset and CLI: [link].\n\nBefore this I ran the AI transformation program at a Big Four, so I care as much about the invoice as the architecture.\n\nHappy to run it against your workload if useful — it takes one command.\n\n[NOMBRE]"
            }
          ]
        },
        {
          "type": "callout",
          "id": "c-empleador",
          "title": "Higiene de publicación mientras trabajás donde trabajás",
          "text": "**Cero datos, nombres o casos de tu empleador.** Todo el código en tu tiempo y tu hardware, con commits fechados. Ninguna comparación pública con lo que hace tu firma. Tu narrativa es *lo que construyo por mi cuenta*, nunca *lo que mi empresa hace mal*. Nada más: EY ya está analizado y no es un problema.",
          "style": {
            "tone": "danger"
          }
        }
      ]
    },
    {
      "id": "comunidad",
      "title": "Contribución y marca",
      "eyebrow": "PERTENENCIA · LO MÍNIMO",
      "description": "Con 1-2 h/día, contribuir es oportunista: lo que sale gratis de lo que ya hacés.",
      "notePrompt": "¿Con qué forma de contribuir te sentís más cómodo?",
      "blocks": [
        {
          "type": "cards",
          "id": "cards-perfiles",
          "columns": 2,
          "items": [
            {
              "title": "LinkedIn · semana 0",
              "text": "Titular nuevo: *«Applied AI — LLM evaluation & cost engineering | Building Vara, an open Spanish/Portuguese LLM benchmark | 25 yrs leading delivery»*. Tu perfil de gestión es diferencial, no vergüenza. El «About» en 5 líneas con el link al repo.",
              "eyebrow": "HOY",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "GitHub · semana 0",
              "text": "Foto real, bio de una línea con lo que medís, el repo `vara` anclado primero, README de perfil con el pitch.",
              "eyebrow": "HOY",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "X · semana 1",
              "text": "Bio con el proyecto y el link. Seguir a 30 personas que construyen infraestructura de inferencia y evals. Responder con sustancia, no con aplausos. 10 minutos por semana.",
              "eyebrow": "SEMANA 1",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "title": "Página propia · semana 16",
              "text": "Una sola pantalla: quién sos, el proyecto con sus números, cómo contactarte. Dos horas, ni un minuto antes.",
              "eyebrow": "SEMANA 16",
              "style": {
                "tone": "success"
              }
            }
          ]
        },
        {
          "type": "table",
          "id": "t-comunidad",
          "title": "Contribuir sin horas extra",
          "columns": [
            {
              "key": "acc",
              "label": "Acción"
            },
            {
              "key": "cuando",
              "label": "Cuándo"
            },
            {
              "key": "como",
              "label": "Cómo"
            }
          ],
          "rows": [
            {
              "acc": "Issue bien documentado",
              "cuando": "Cuando algo te falle en DeepEval o en un SDK de proveedor",
              "como": "Reproducción mínima. Los maintainers recuerdan a quien reporta bien. 20 minutos."
            },
            {
              "acc": "Dataset en Hugging Face",
              "cuando": "Semana 13",
              "como": "Subproducto de la Fase 3. Un dataset útil se cita solo."
            },
            {
              "acc": "Responder 1 pregunta por semana",
              "cuando": "Domingo, junto con el build log",
              "como": "Solo sobre lo que ya probaste. En el foro de HF o en el Discord de DeepEval."
            },
            {
              "acc": "Charla de 20 minutos",
              "cuando": "Propuesta en semana 15, charla después de la 16",
              "como": "Un meetup de IA en Buenos Aires o uno online en LATAM. «Qué LLM hace el trabajo en español al menor coste: lo que 250 tareas reales me enseñaron»."
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "quote",
          "id": "q-narrativa",
          "text": "No sos un program manager que quiere ser ingeniero. Sos alguien que hace visible y medible lo que una organización siente pero no puede nombrar, y que además sabe leer un P&L. Eso es lo que hiciste en EY con las métricas de delivery, y es exactamente lo que Vara hace con el coste y la calidad de los LLMs en español.",
          "attribution": "La narrativa, tomada de tu propia síntesis"
        }
      ]
    },
    {
      "id": "metricas",
      "title": "Métricas y control",
      "eyebrow": "SEGUIMIENTO",
      "description": "Lo que se mide, y sobre todo lo que no.",
      "notePrompt": "¿Qué métrica te motiva más mirar cada domingo?",
      "blocks": [
        {
          "type": "table",
          "id": "t-metricas",
          "title": "Tablero semanal (30 segundos los domingos)",
          "columns": [
            {
              "key": "met",
              "label": "Métrica"
            },
            {
              "key": "obj",
              "label": "Objetivo"
            },
            {
              "key": "porque",
              "label": "Por qué está"
            }
          ],
          "rows": [
            {
              "met": "Bloques cumplidos",
              "obj": "5 de 7",
              "porque": "La única métrica de esfuerzo. Un bloque es 1-1,5 h con una sola tarea."
            },
            {
              "met": "Días con commit",
              "obj": "3 de 7",
              "porque": "Progreso real. No horas de video."
            },
            {
              "met": "Build log publicado",
              "obj": "1",
              "porque": "El forzante. Si no publicás, el proyecto vuelve a ser privado."
            },
            {
              "met": "Tareas en el dataset",
              "obj": "200 en la semana 9",
              "porque": "Tu activo real. Vale más que el código. Y el acuerdo del juez vale más que las tareas."
            },
            {
              "met": "Conversaciones entrantes",
              "obj": "Primera en la semana 12",
              "porque": "La señal de que la estrategia funciona."
            },
            {
              "met": "Semanas perdidas seguidas",
              "obj": "Nunca 2",
              "porque": "El único límite duro del plan."
            }
          ],
          "searchable": false,
          "sortable": false
        },
        {
          "type": "metrics",
          "id": "m-semana16",
          "items": [
            {
              "label": "Leaderboard",
              "value": "1",
              "detail": "Reproducible en un comando",
              "style": {
                "tone": "success"
              }
            },
            {
              "label": "Deep dives",
              "value": "3",
              "detail": "Publicados",
              "style": {
                "tone": "success"
              }
            },
            {
              "label": "Conversaciones",
              "value": "20 iniciadas",
              "detail": "3 procesos abiertos",
              "style": {
                "tone": "accent"
              }
            },
            {
              "label": "Oferta",
              "value": "Mes 6-9",
              "detail": "No en la semana 16",
              "style": {
                "tone": "warning"
              }
            }
          ],
          "caption": "Meta honesta de la semana 16: la evidencia, no la oferta."
        },
        {
          "type": "callout",
          "id": "c-vanidad",
          "title": "Métricas de vanidad, prohibidas",
          "text": "Estrellas, likes, seguidores, horas de estudio, videos marcados como vistos, cursos completados. Ninguna predice una oferta.",
          "style": {
            "tone": "danger"
          }
        }
      ]
    },
    {
      "id": "ignorar",
      "title": "Ignorar por ahora",
      "eyebrow": "LO QUE NO HACÉS",
      "description": "Tan importante como el plan. Todo lo de aquí es bueno y te va a tentar. Con 1-2 h/día, cada cosa de esta lista es una semana perdida.",
      "notePrompt": "¿Algo de esta lista que creas que no debería estar?",
      "blocks": [
        {
          "type": "cards",
          "id": "cards-ignorar",
          "columns": 3,
          "items": [
            {
              "title": "El Framework AI como faro",
              "text": "Decidido hoy: depende de CLIs y cuotas que se van a deprecar. Se rescatan dos ideas (telemetría, adapters falsos), no el código.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Convertir Vara en producto o proxy",
              "text": "Vara es el instrumento. Si aparece la tentación de «hacerle un SaaS», es el módulo 23 con otro nombre.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Más de 6 familias o más de 12 modelos",
              "text": "Un leaderboard grande es ruido. Uno chico y calibrado es una decisión.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "CS229 y CS149",
              "text": "60 horas de ML clásico y paralelismo. Cero impacto en lo que publicás.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "CS336 completo",
              "text": "15 de las 19 clases. Ver 4 bien vale más que 19 a medias.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Karpathy 3-6",
              "text": "Diferidos. Volvé después de la semana 16 si te quedaste con ganas.",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "Cursos de Hugging Face",
              "text": "Buenos, con certificado, y son exactamente el «módulo 23» en formato curso.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "CS25, nanochat, EfficientML (salvo 1 clase)",
              "text": "Solo como audio en tiempos muertos.",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "Ragas, Langfuse, frameworks de agentes",
              "text": "Cada herramienta nueva es una semana.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Fine-tuning de cualquier cosa",
              "text": "Vara mide modelos; no los entrena. Aunque el resultado diga que un modelo chico afinado ganaría, eso es un proyecto para después de la semana 16.",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "arXiv y certificaciones de nube",
              "text": "Sin afiliación, arXiv no mueve la aguja; Azure/AWS no son señal para estos roles.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "2 posts por semana",
              "text": "No caben. Uno bueno el domingo vale más que dos flojos.",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "Empezar un segundo proyecto",
              "text": "La tentación más peligrosa para tu cabeza. Un faro, no cinco velas. El Espejo sigue en su ritmo actual y no cuenta como segundo proyecto.",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Matemática desde cero",
              "text": "La matemática llega cuando el código la pide. Nunca antes.",
              "style": {
                "tone": "neutral"
              }
            },
            {
              "title": "Rediseñar tu web",
              "text": "Semana 16, una pantalla, dos horas.",
              "style": {
                "tone": "neutral"
              }
            }
          ]
        }
      ]
    },
    {
      "id": "protocolo",
      "title": "Protocolo de ejecución",
      "eyebrow": "CÓMO NO ABANDONAR · 1-2 H/DÍA",
      "description": "Diseñado para cómo funciona tu atención y para un trabajo demandante, no para un estudiante full-time.",
      "notePrompt": "¿Qué parte de este protocolo sabés que no vas a cumplir? Cambiémosla ahora.",
      "blocks": [
        {
          "type": "cards",
          "id": "cards-protocolo",
          "columns": 2,
          "items": [
            {
              "title": "Un bloque por día, una sola cosa",
              "text": "Teoría **o** código, nunca ambos el mismo día. El cambio de contexto en 90 minutos te cuesta 30. Martes y jueves teoría; lunes, miércoles, viernes y sábado código.",
              "eyebrow": "LA REGLA CENTRAL",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "Código primero, teoría después",
              "text": "Intentá aplicar el concepto a Vara antes de entenderlo. Cuando chocás, vas al video con una pregunta concreta. La pregunta concreta es lo que hace que la clase se te quede.",
              "eyebrow": "ORDEN INVERTIDO",
              "style": {
                "tone": "accent"
              }
            },
            {
              "title": "El TODO de mañana",
              "text": "Cada bloque termina escribiendo en el repo una línea con la próxima acción exacta. Mañana no decidís qué hacer: lo leés y arrancás. Es la defensa contra el arranque en frío.",
              "eyebrow": "ANTIFRICCIÓN",
              "style": {
                "tone": "success"
              }
            },
            {
              "title": "Domingo, 1 hora, sagrado",
              "text": "Build log (20 min), tablero (5 min), prompt 5 de NotebookLM (20 min), TODO de la semana (15 min). Si el domingo se cae, la semana siguiente se desordena entera.",
              "eyebrow": "REVISIÓN",
              "style": {
                "tone": "warning"
              }
            },
            {
              "title": "Publicar aunque sea feo",
              "text": "El build log del domingo sale aunque la semana haya sido mala. «Esta semana no avancé; esto es lo que me trabó» es un post válido y de los que más conectan.",
              "eyebrow": "LA REGLA DURA",
              "style": {
                "tone": "danger"
              }
            },
            {
              "title": "Aburrimiento como señal",
              "text": "Si un tema te aburre tres bloques seguidos, no es falta de disciplina: es que no está conectado a Vara. Saltalo.",
              "eyebrow": "TU DIAGNÓSTICO",
              "style": {
                "tone": "neutral"
              }
            }
          ]
        },
        {
          "type": "timeline",
          "id": "tl-dia",
          "items": [
            {
              "label": "Lun · Mié · Vie · 1,5 h",
              "title": "Código",
              "text": "Un bloque, una tarea del TODO. Termina con commit y el TODO de mañana.",
              "status": "current"
            },
            {
              "label": "Mar · Jue · 1,5 h",
              "title": "Teoría",
              "text": "Un video con el editor abierto, o NotebookLM sobre lo de ayer. Si el video dura 2 h, son dos bloques.",
              "status": "current"
            },
            {
              "label": "Sáb · 1,5 h",
              "title": "Código",
              "text": "El bloque que absorbe lo que no salió entre semana. Si la semana fue brutal, este se cae primero.",
              "status": "upcoming"
            },
            {
              "label": "Dom · 1 h",
              "title": "Publicar y revisar",
              "text": "Build log, tablero, prompt socrático, TODO de la semana.",
              "status": "upcoming"
            },
            {
              "label": "Tiempos muertos",
              "title": "Audio",
              "text": "CS25, CS336 L4/L14/L19 como podcast. No cuenta, no se mide, no genera culpa.",
              "status": "upcoming"
            }
          ]
        },
        {
          "type": "callout",
          "id": "c-hora",
          "title": "A qué hora",
          "text": "Vos sabés cuándo rendís. Lo único que importa es que sea **el mismo horario todos los días**, y que el bloque de código no sea después de las 22:30: la calidad cae y el sueño también, y el plan se paga con sueño.",
          "style": {
            "tone": "neutral"
          }
        },
        {
          "type": "callout",
          "id": "c-cierre",
          "title": "Lo único que hay que recordar",
          "text": "En 16 semanas nadie te va a preguntar cuántas clases viste. Te van a preguntar **qué mediste, cómo, y dónde falla**. Todo este documento existe para que tengas esas tres respuestas en un link.",
          "style": {
            "tone": "success"
          }
        }
      ]
    }
  ],
  "notes": {}
}