Respondes una sola pregunta, qué columna quieres predecir, y la app reconoce la tarea por ti. Puede ser un sí o no, de 3 a 20 categorías o una cantidad, como un precio. Si no hay nada que predecir, te ofrece agrupar filas parecidas.
Pick the column and the app spots the task: here, yes or noConstruye un modelo que puedas defender, sin código y sin maquillaje.
Traes una tabla en CSV o Excel, eliges qué quieres predecir y Probeta hace competir una liga de modelos dentro de tu navegador. Después te dice de frente si el ganador le gana a una regla simple, por cuánto y por qué. Si prefieres ir paso a paso, Protocolo DS te lleva por diez etapas con compuertas hasta una ficha del modelo que se escribe sola. Sin código y sin subir tus datos.
The text of this brochure is in Spanish.
Pick the column and the app spots the task: here, yes or noThe league trains in your browser, model by model, in plain sightThe verdict: the winner beats the baseline, with the number
Funcionalidades: Contadas contra docs/MANUAL-DE-USO.md (58 de Probeta y 19 de Protocolo DS); el pie de docs/BROCHURE.html declara el mismo número (export de la app en 988489c, 2026-10-28). Las 37 de la VISION están construidas y ninguna está descartada: nada se descarta sin una decisión escrita del usuario.Etapas del Protocolo: Las diez etapas con compuerta de Protocolo DS, construidas (src/engine/protocolo/etapa1.ts a etapa10.ts); cada una con su criterio de salida verificado por código. Lo recuenta tests/unit/brochure-export.test.ts.Filas de datos del usuario que salen del navegador: Veinticuatro specs e2e vigilan las peticiones de red (contadas el 2026-10-28 sobre 988489c: las de Probeta, también la pregunta a tus datos, y las de las etapas 4 a 10 del Protocolo): fallan si una lleva valores del dataset o, sin consentimiento, una petición de narración. Lo único que sale con contenido del usuario es la narración con IA, a petición y solo con agregados: 652 B medidos.Pruebas unitarias y de integración: Salida del 2026-10-28 sobre el árbol final del S21 (988489c): `pnpm test` 3114 pruebas en 174 archivos + `pnpm test:integration` 347 en 25 archivos (con Pyodide real; 10 más se saltan a propósito: las mediciones con `MEDIR=1` y el emisor del fixture del S6). Aparte, 23 pruebas de Python en CPython 3.14.0 que corre el job `integration` (el servicio, la receta y el SQL).Cobertura de líneas: v8 sobre engine, lib, components y workers; 12169 de 12762 líneas (salida de `pnpm test` del 2026-10-28 sobre 988489c: imprime 95,35 %). Los motores puros de engine/ llevan umbral propio más alto.
01 · What changes
Who it is for, and why
Para analistas, financieros, ingenieros e investigadores aplicados que saben pensar con datos pero no son científicos de datos, y que tienen que defender un modelo ante su jefe o su comité, no ganar una competencia de puntajes.
Entrenar un modelo ya no es lo difícil; lo difícil es saber si se le puede creer. Probeta te muestra la pantalla en la que tu modelo pierde: si no le gana a una regla simple de referencia, dice «NO supera», con la cifra. La prueba nunca contamina el entrenamiento: la preparación de los datos, como rellenar vacíos, aprende solo de la parte de entrenamiento, y la interfaz no ofrece otro camino. El ganador se elige con validación cruzada, sin mirar la prueba, y la prueba se usa después, para el veredicto. Y si una columna adivina el resultado casi a la perfección, el titular dice «sospechoso» en vez de celebrar. En Protocolo DS la honestidad además detiene: ninguna etapa abre sin cumplir la anterior, la prueba queda sellada antes de entrenar y se abre una sola vez, y «no usarlo» es un resultado válido que queda escrito.
02 · The map
One chapter per group: what it solves, when it fits, how it works, its screens and its cards.
2.1 · El veredicto honesto★ The starUna liga de modelos entrena con tu tabla y te dice, con la cifra exacta, si el ganador sirve o no. · 14 features
What it solves
Una liga de modelos entrena con tu tabla y te dice, con la cifra exacta, si el ganador sirve o no.
Its pieces 14
Ves en todo momento qué modelo está compitiendo y cuánto falta, con una barra de avance y el tiempo estimado. Todo el cálculo corre dentro de tu navegador, sin pantallas en blanco.
The league trains in your browser, model by model, in plain sightSabes de un vistazo si tu modelo vale la pena: ▲ supera, = empata o ▼ NO supera a la línea base, una regla simple de referencia, con la diferencia exacta. Si el modelo no aporta, la app lo dice de frente.
The verdict: the winner beats the baseline, with the numberTe protege del espejismo más caro: si una columna predice el resultado casi a la perfección, el titular dice «Posible fuga de datos: sospechoso» en vez de «supera». Casi siempre es un dato que no tendrías al momento de predecir.
One column guesses too well: the headline says «suspicious»Sabes exactamente qué columna revisar: la app nombra la que podría estar delatando el resultado y te dice qué hacer, quitarla y volver a entrenar. Con varias categorías, nombra también la categoría que esa columna delata.
Before training, the alert names the column that gives the answer awayCada cifra se calcula sobre la cuarta parte de tus filas que el modelo nunca vio al entrenar. Con dos categorías ves exactitud, precisión, sensibilidad, F1 y AUC; con varias, la exactitud balanceada; al estimar, el error en las unidades de tu columna.
When estimating, the error reads in kWh, on unseen dataVes no solo cuánto acierta el modelo, sino en qué se equivoca. Una tabla cruza lo real con lo predicho y muestra cuántos casos confundió en cada dirección, para que sepas qué error comete más.
The confusion matrix: hits and misses, on the test setVes contra quién compite tu modelo y con qué cifras: al clasificar, responder siempre lo más frecuente y una regresión logística; al estimar, la mediana y una regresión lineal. Ganarle al mejor de ellos es la condición para servir.
Here no model beats the reference regression, and it says soObtienes al mejor de hasta 14 modelos sin inflar el resultado: compiten con validación cruzada, que los mide rotando partes del entrenamiento, y la prueba se reserva para el veredicto. Si prefieres otro, lo eliges y queda marcado «elegido por ti».
The league: eleven models cross-validated, test set untouchedSi quieres predecir un número, como un precio o un consumo, compiten 11 modelos y el veredicto dice cuánto se equivoca en promedio, en las unidades de tu columna. Un gráfico enfrenta lo estimado con lo real.
Estimated vs. actual: each dot is a test-set rowSi tu respuesta tiene de 3 a 20 categorías, como un plan o una región, el veredicto usa la exactitud balanceada, que pesa igual cada categoría. La matriz marca los aciertos con ✓ y una frase nombra la confusión más frecuente.
Five categories: the matrix marks the hits with ✓Cuando una columna tiene pocos números distintos, como una nota del 1 al 5, la app no adivina si son categorías o una cantidad: te pregunta, con la lectura más probable marcada. Las dos respuestas entrenan.
Categories or a quantity? The app asks instead of guessingVuelves al inicio con un solo botón para probar otra tabla u otra pregunta, sin recargar la página. El siguiente experimento arranca desde cero.
One button to start another experiment from scratch, here in focusSabes cuánto podría moverse la cifra del veredicto con otra muestra de las mismas filas: la app remuestrea mil veces la prueba y te da un intervalo del 95 %. Con la misma semilla, repetirlo da lo mismo.
The margin of error: a 95% interval around the number2.2 · Datos reales, tratados de frenteCSV o Excel con huecos, basura y filas repetidas: se limpian a la vista y cada paso te lo cuentan. · 12 features
What it solves
CSV o Excel con huecos, basura y filas repetidas: se limpian a la vista y cada paso te lo cuentan.
Its pieces 12
Arrastras tu archivo o lo eliges con un clic, y empiezas a trabajar al instante. El archivo se lee dentro de tu navegador: tus filas no se suben a ningún servidor.
Drag your file in; it is read in your browser, never uploadedRecorres la app entera sin traer nada tuyo: siete tablas sintéticas, de una campaña de marketing al consumo de energía de una casa, cada una pensada para mostrar algo, como una fuga plantada o datos sucios.
Seven synthetic examples to tour the app without your own dataAntes de entrenar ves tu tabla y el tipo de cada columna, numérica o de categorías, con sus valores vacíos. Si una columna parece una fecha, la app te avisa, porque las fechas no entran al entrenamiento.
The preview, with each column's typeSabes desde el inicio hasta dónde llega: archivos de hasta 5 MB o 50 000 filas. Si el tuyo es más grande, la app te avisa en lugar de colgarse fingiendo que trabaja.
A file over 50,000 rows: the app says so instead of hangingTu tabla llega limpia y sabes qué se le hizo: se quitan filas duplicadas, se apartan columnas que identifican o no cambian y se vacían celdas basura, cada cosa con su conteo. Si venía limpia, te dice «nada que sanear».
Cleaning, counted: duplicates, set-aside columns and junk cellsTe enteras de los riesgos antes de entrenar: una columna que huele a fuga, otra que parece un identificador, un resultado desbalanceado y, al estimar, un objetivo muy sesgado o con valores extremos. Cada alerta lleva símbolo y texto, nunca solo color.
Before training: a possible leak and a skewed target, with a symbolSi tu CSV viene separado con punto y coma, como lo guarda Excel en español, la app te dice cuál es el separador y cómo volver a guardarlo. No lo adivina, porque una mala lectura convertiría tus columnas de números en categorías sin avisarte.
A semicolon CSV: the app names the real separatorTraes tu libro de Excel tal cual y la app lo lee en tu navegador, con los mismos límites que un CSV, y te dice qué hoja leyó. Uno con contraseña, uno antiguo (.xls) o uno dañado se rechaza explicando por qué.
An Excel file comes in: the app says which sheet it readTe enteras de si tu tabla trae datos personales, como correos, teléfonos, documentos o nombres: la app te dice la columna, el tipo y, si lo vio en las celdas, qué parte tiene esa forma, nunca un valor. Es un aviso aproximado, no un bloqueo.
Personal-data warning: column, type and share of cells, no valuesRecibes hasta doce pasos de limpieza, cada uno con lo que hace, cuántas celdas toca y cómo se deshace. Tú apruebas o rechazas cada paso: lo que no apruebas no se aplica, y tu decisión queda en la ficha y en el archivo del modelo.
The cleaning plan: approve or reject each stepEntiendes tu tabla antes de modelarla: cómo se reparte cada columna, qué números se mueven juntos y qué categorías van de la mano, con un resumen escrito. Cada cifra del resumen se recalcula aparte desde tu tabla antes de mostrarse.
Explore your data: a summary checked against your numbersObtienes respuestas de tu tabla escribiendo la pregunta, como «ventas del último trimestre por región»: tabla, gráfico y una frase verificada. Antes de calcular ves cómo la entendió y qué comprobó, y lo dudoso te lo pregunta. Sin IA: tu pregunta no sale del navegador.
You type the question and, before it runs, see how it was read and checked2.3 · El porqué, contado honestoQué columnas pesan, hacia dónde empujan, cuánto aguanta el modelo y una explicación en palabras llanas. · 7 features
What it solves
Qué columnas pesan, hacia dónde empujan, cuánto aguanta el modelo y una explicación en palabras llanas.
Its pieces 7
Ves qué columnas pesan más en las predicciones y hacia dónde empujan, medido al desordenar cada una sobre la prueba. Si el modelo no se apoya en una columna, no se le pinta una flecha que la medición no respalda.
Which columns weigh in and which way they push, on the test setLees en palabras llanas el veredicto, qué mide la métrica principal y qué columnas pesan más. La escribe la propia app con los números de tu experimento, sin IA ni internet, así que siempre está ahí.
The app's own explanation, no AI, checked against your numbersSi quieres una narración más natural, la pides con un botón y llega marcada «✓ verificada con los números». Si la IA cita una cifra o una columna que no existe, se descarta antes de mostrarse. Hoy cubre las tareas de dos categorías.
If the AI narration doesn't match your numbers, it's not shown, and it says soSi la narración con IA no llega, la app te dice el motivo: el proveedor no respondió, no pasó la verificación o no está configurada. Un botón te deja intentarlo de nuevo, y la explicación de la app sigue ahí.
If the narration fails, it says why and lets you retryTe llevas en un documento la constancia completa de tu experimento, su ficha o «model card»: los datos, cómo se partieron, el método, las métricas, el veredicto y sus límites. Se arma en tu navegador, en tu idioma.
The experiment's model card, ready to downloadSabes cuánto de tu veredicto sobrevive si los datos cambian: el mismo modelo se mide con ruido, con una columna revuelta y con un corrimiento como el del paso del tiempo. Al final dice si todavía le gana a su rival sin modelo.
Stress it: how far the score drops with noise and if it still winsCada explicación escrita pasa una comprobación antes de mostrarse: sus cifras tienen que ser las de tu resultado y las columnas, en el orden en que pesaron. Si no cuadra, ves solo las cifras. Comprueba el texto, no la calidad del modelo.
When estimating, the explanation passes the check too2.4 · El modelo sale a trabajarPuntúa tablas nuevas, simula decisiones, vigila su desempeño y se va contigo fuera de Probeta. · 18 features
What it solves
Puntúa tablas nuevas, simula decisiones, vigila su desempeño y se va contigo fuera de Probeta.
Its pieces 18
Subes otra tabla con las mismas columnas y obtienes la predicción de cada fila, sin volver a entrenar. No hace falta la columna que predices: aquí es el modelo el que responde.
Scoring new data: every row comes out with its prediction and probabilitySi a tu archivo nuevo le falta alguna columna que el modelo necesita, la app se niega a puntuar y te dice exactamente cuáles faltan. Nunca rellena en silencio para darte un resultado a medias.
A column is missing: the app refuses to score and names itSabes en qué parte de tus filas nuevas el modelo adivina: la app cuenta los valores que nunca vio al entrenar, como categorías nuevas o números fuera de rango, y te dice en qué porcentaje de filas aparecen.
The novelty warning: in how many new rows the model is guessingAntes de descargar nada ves cómo se reparten las predicciones y una vista previa de tu tabla con las columnas nuevas. Así detectas una sorpresa antes de que llegue a tu hoja de cálculo.
How the predictions spread, before you downloadDescargas tu tabla completa con la predicción y, si el modelo la da, su probabilidad. Si ya tenías una columna con ese nombre, la nueva sale con un sufijo, y una celda que parece fórmula se escribe como texto.
A «prediccion» column already existed: the new one becomes prediccion_2Guardas el modelo en un solo archivo para usarlo otro día o en otro computador. Lleva lo que aprendió y su constancia, no tus filas; la excepción son los vecinos más cercanos, que guardan filas de entrenamiento, y la app lo dice.
Export the model: what the file carries, said up frontCuando abres un modelo guardado, la app comprueba primero que sea de Probeta y que esté íntegro, con una huella digital de su contenido. Un archivo ajeno, dañado o manipulado se rechaza con la razón exacta, sin llegar a abrirse.
A tampered file is rejected with the exact reasonAntes de usar un modelo importado ves con qué datos nació, qué predice, qué cifra sacó en su prueba, cómo se eligió y qué advertencias trae. Decides con conocimiento, no a ciegas.
Before using an imported model, its honest summaryOtro día y en otro computador, abres el archivo del modelo y puntúas tablas nuevas directamente. No necesitas los datos con que se entrenó ni esperar a que vuelva a entrenar.
An imported model scores 300 new rows without retrainingTe llevas un archivo de Python con versiones fijas que, con tu CSV, repite el experimento paso a paso y dice si reproduce las mismas métricas. No lleva ni una fila de tus datos.
Take it with you: what each file carries and the recipeCompartes tu modelo como una sola página web: quien la abre arrastra un CSV y su propio navegador lo puntúa, sin servidor y sin costo. La primera vez necesita internet para bajar el motor de cálculo.
The portable scorer: a page that scores in your browserSi otro sistema necesita consultar tu modelo, descargas un servicio web en Python, con versiones fijas y una guía para mantener el costo predecible. Probeta no despliega nada ni guarda credenciales: tú decides dónde corre.
The service template, to call the model from another systemSimulas un cambio, como subir una columna un 10 % en un segmento, y ves cuántas decisiones del modelo se mueven y su costo esperado por cada 100 decisiones, con tus costos. Es una simulación con las probabilidades del modelo, no una medición.
What if?: decisions that change and their expected costTe llevas tu modelo como unas pocas reglas «si… entonces», en texto y en SQL, para usarlo donde no corre Python. La pantalla mide cuánto se parecen al modelo; por debajo de 0,90 de coincidencia no las llama «el modelo en reglas».
The model as rules, with how closely they match itCon filas nuevas que traen lo que de verdad pasó, comparas la cifra de hoy, con su margen del 95 %, contra la que sacó el modelo en su prueba. El veredicto es claro: sigue, revisar o reentrenar. Los resultados los subes tú.
Monitoring: today's score against the test-set scoreCon una fecha y un número, como las ventas de cada mes, ves qué viene en los próximos periodos, con bandas del 80 y del 95 %. Seis métodos compiten y el veredicto dice si el ganador le gana al mejor método simple.
A series forecast, against the best simple methodCompartes una muestra sin compartir a las personas: una tabla nueva con la forma de la tuya, que vuelve a sacar toda fila idéntica a una tuya y deja fuera datos personales, identificadores y fechas. Un informe mide el parecido y puede decir «no compartir».
The synthetic twin and its report: «safe to share»También un modelo importado, o el ganador del Protocolo, se vuelve reglas: el árbol se arma con las filas de un archivo que subes. Si ese archivo trae el resultado real, fuera del Protocolo las reglas se miden también contra la verdad.
Rules built from the rows of a file of yours2.5 · Grupos, sin nada que predecirCuando no hay nada que predecir, encuentra grupos de filas parecidas y te dice si existen de verdad. · 5 features
What it solves
Cuando no hay nada que predecir, encuentra grupos de filas parecidas y te dice si existen de verdad.
Its pieces 5
Descubres si tus clientes, productos o casos forman grupos: cuatro agrupadores, como K-Means, buscan los grupos y eligen cuántos con un criterio medido. Cada uno dice cómo eligió, y gana el número de grupos en que más coinciden.
The clusterers compete and each one says how it choseSabes si tus grupos son un hallazgo o solo una forma de partir la tabla: la app los compara con datos al azar y repite el agrupamiento sobre partes de tus filas. La lectura es ● existen, ⚠ frágiles u ○ sin estructura.
The reading: the groups exist, checked against chanceCada grupo llega con su tamaño y las columnas que más lo separan, en las unidades de tu tabla y frente al promedio de todos. Las filas que no caen en ningún grupo aparecen aparte, sin forzarlas.
What sets each group apart, in your table's unitsDescargas tu tabla entera con una columna más que dice a qué grupo pertenece cada fila. Se arma en tu navegador en el momento y no se guarda en ningún otro lado.
Your rows with their group, built in your browserClasificas filas nuevas en los grupos que ya encontraste, con una regla dicha, como el centro más cercano o «fuera de todo grupo». El archivo del modelo lleva esa regla y ninguna de tus filas.
New rows assigned to a group, with the rule stated2.6 · Protocolo DS: diez etapas sin atajosEl camino lento, con tus propios datos: compuertas que no se saltan y una ficha del modelo que se escribe sola. · 19 features
What it solves
El camino lento, con tus propios datos: compuertas que no se saltan y una ficha del modelo que se escribe sola.
Its pieces 19
Avanzas solo cuando cumples: ninguna etapa se abre sin el criterio de salida de la anterior, verificado por código o por tu respuesta escrita. No existe un botón para saltar; una etapa se cumple o se corrige.
Ten stages: each opens only when you complete the previous oneCada etapa cumplida deja su evidencia en un cuaderno que vive en tu navegador, atado a la huella de tu archivo, un código que sale de su contenido exacto. Lo exportas y lo importas sin una sola fila de tus datos.
The notebook: each stage's evidence, without your data rowsAprendes por qué existe cada etapa viendo, en tus propios datos, la trampa que acabas de evitar, como «tu unidad se repite: 361 filas para 100 unidades». No es un curso con datos ajenos.
«In your data»: the trap the stage just avoidedCada término técnico de una etapa enlaza a una definición breve y propia, al pie de la página. Donde existe, también te lleva a la entrada del glosario de aprendizaje automático de Google.
The glossary, one click from every termEmpiezas por el negocio, no por el modelo: nombras la decisión, quién la toma y cuánto cuesta cada error. De ahí sale desde qué probabilidad conviene actuar, que no siempre es 0,5.
The decision and its costs: from what probability to actDefines qué es una fila, qué predices y en qué momento se conoce. La app lo comprueba en tus datos, cuenta cuántas filas tiene cada unidad y, si una fecha es ambigua, te pregunta en vez de adivinar.
Target, unit and timing, checked against your dataSi lo que buscas es una causa, el Protocolo se detiene y te lo dice: eso pide un experimento, no un modelo predictivo. Puedes reformular tu pregunta como una predicción y seguir.
Looking for a cause? The Protocol reminds you that takes an experimentEscribes la población, el periodo y las exclusiones, y la app calcula cuántas filas hacen falta para tus variables, diciendo qué supone. Si no te alcanzan, no te frena: te pide un aviso escrito que queda en el cuaderno.
How many rows you need, with what the math assumesDeclaras, columna por columna, quién la produce y si se conoce antes o después de decidir. Lo que se llena después solo se puede excluir, y lo que no sabes no entra al modelo.
Column by column: who produces it and when it is knownAntes de ver lo que encontró la app, apuestas qué columnas crees que filtran el resultado. Al revelar, tu apuesta queda fija y una comparación te muestra qué acertaste y qué te sorprendió.
Your bet against what the app foundMides lo que ya se logra sin modelo, en costo por cada 100 decisiones, y la regla que tu gente aplica hoy, medida en tus filas. Es la vara que cualquier modelo tendrá que superar.
The no-model baseline and today's rule, in costLa app aparta tu prueba según tu caso, por tiempo, por grupo o al azar estratificado, y te explica por qué. Verifica que nada se cruce entre lados y sella la prueba con una huella antes de entrenar.
A test set split by time and by group, with its gap and no overlapLos modelos compiten solo dentro del entrenamiento, con pliegues que respetan tu partición y heredan tus decisiones. El ganador se compara con la línea base, con un intervalo del 95 %, y la prueba sigue cerrada.
The league inside training, with the test set closedSabes si el modelo encontró estructura o solo azar: una prueba de permutación baraja las etiquetas muchas veces y vuelve a validar al ganador. Te da el valor p con su resolución, que depende de cuántas veces barajó.
Signal or chance? The permutation test with its p-valueLa prueba se abre una sola vez y ves dónde falla el modelo: el peor segmento, si sus probabilidades dicen la verdad y los diez casos más caros. Con eso escribes el patrón de fallo, y cada apertura distinta queda contada.
The test set opened once: error by segmentEl modelo se traduce a tu decisión: alertas y falsas alarmas por cada 100 casos, costo y beneficio frente a lo que haces hoy. Decides usarlo, iterar o no usarlo; «no usarlo» es un resultado válido y queda escrito.
Fit for the decision? Alerts, cost and benefit per 100Te llevas la ficha del modelo, armada sola desde el cuaderno, con la etapa y la huella de cada línea. Si decides usarlo, trae el plan de vigilancia, quién responde, cada cuánto se reentrena y un chequeo de si las entradas cambian.
The model sheet, assembled from the notebookEn la etapa de la decisión simulas cambios con tus costos usando solo las filas de entrenamiento, así que la prueba no se vuelve a abrir. Lo simulado informa tu decisión, pero no entra al cuaderno ni a la compuerta.
What if? at stage 9, without reopening the test setSi decides usarlo, guardas el ganador como un archivo que Probeta abre para puntuar filas nuevas y vigilar su desempeño. Lleva la cifra de su prueba, se reajusta solo con el entrenamiento y, salvo con vecinos más cercanos, no lleva filas tuyas.
The Protocol's winner, saved to score and monitor2.7 · En toda la appLo que acompaña a cada pantalla: dos idiomas completos y un diccionario para cada término. · 2 features
What it solves
Lo que acompaña a cada pantalla: dos idiomas completos y un diccionario para cada término.
Its pieces 2
Usas toda la interfaz en español o en inglés, con un conmutador en la esquina superior. Hay pruebas automáticas que fallan si un texto existe en un idioma y falta en el otro.
It runs through the whole app.Cuando una palabra te frena, el manual de uso la explica en una línea: línea base, veredicto, fuga, desbalance, importancia, novedad y cada métrica de clasificar, estimar y agrupar.
It runs through the whole app.03 · Un modelo que se pueda defender
The whole path. No swimlanes: every box says who does it, and the ones with the screen icon show it.
- Start · Quien defiende el modelo: Un dataset y una pregunta
- Step · Quien defiende el modelo: Carga el dataset en el navegador
- Step · Probeta · en el navegador: Perfila y sanea los datos
- Step · Quien defiende el modelo: Elige qué quiere predecir
- Step · Probeta · en el navegador: Parte en entrenamiento y prueba
- Step · Probeta · en el navegador: Ajusta el preprocesamiento con entrenamiento
- Step · Probeta · en el navegador: Entrena y compara con el baseline
- Decision · Probeta · en el navegador: ¿Supera?
- Step · Quien defiende el modelo: Lee el veredicto honesto
- Step · Probeta · en el navegador: Cuenta el porqué, con cifras de prueba
- Step · Quien defiende el modelo: Usa el modelo y lo defiende
- End
Process notes
- 1Un dataset y una pregunta. ¿Prefiere el camino lento? Protocolo DS recorre lo mismo en diez etapas con compuertas que no se saltan.
- 2Carga el dataset en el navegador. El dataset nunca se sube: perfilado, entrenamiento y scoring corren en el navegador con Pyodide.
- 3Ajusta el preprocesamiento con entrenamiento. La prueba no contamina el entrenamiento: el preprocesamiento aprende solo de él y la interfaz no ofrece otro camino.
- 4¿Supera?. Cuatro veredictos: ▲ supera, = empata, ▼ NO supera y ⚠ sospechoso, cuando una columna adivina demasiado bien.
04 · Built with method
Every figure says where it comes from. And what the app does not do is spelled out too.
The figures, with their source
Where does it come from?
Contadas contra docs/MANUAL-DE-USO.md (58 de Probeta y 19 de Protocolo DS); el pie de docs/BROCHURE.html declara el mismo número (export de la app en 988489c, 2026-10-28). Las 37 de la VISION están construidas y ninguna está descartada: nada se descarta sin una decisión escrita del usuario.
Where does it come from?
StartScreen, ConfigScreen, TrainingScreen, ResultsScreen y ScoreScreen en src/components/. ErrorScreen no cuenta: es un estado de error, no un paso. Probeta es un solo espacio de trabajo (un page.tsx); Protocolo DS vive aparte en /protocolo. La ruta /conoce sirve el brochure y no es una pantalla del producto.
Where does it come from?
Las diez etapas con compuerta de Protocolo DS, construidas (src/engine/protocolo/etapa1.ts a etapa10.ts); cada una con su criterio de salida verificado por código. Lo recuenta tests/unit/brochure-export.test.ts.
Where does it come from?
Salida del 2026-10-28 sobre el árbol final del S21 (988489c): `pnpm test` 3114 pruebas en 174 archivos + `pnpm test:integration` 347 en 25 archivos (con Pyodide real; 10 más se saltan a propósito: las mediciones con `MEDIR=1` y el emisor del fixture del S6). Aparte, 23 pruebas de Python en CPython 3.14.0 que corre el job `integration` (el servicio, la receta y el SQL).
Where does it come from?
Salida de la suite e2e entera el 2026-10-28 sobre 988489c, en el build de producción y con `--retries=0`: 41 specs de Playwright sobre 2 dispositivos, con axe en los dos temas; 183 pasan y 13 se omiten a propósito (Tab no aplica al teléfono; el puntuador se prueba una vez en escritorio; las dos mediciones del S21 solo corren con `MEDIR=1`). Cero fallos y cero reintentos.
Where does it come from?
v8 sobre engine, lib, components y workers; 12169 de 12762 líneas (salida de `pnpm test` del 2026-10-28 sobre 988489c: imprime 95,35 %). Los motores puros de engine/ llevan umbral propio más alto.
Where does it come from?
next, react, react-dom, zod, pino, @sentry/nextjs, @sentry/browser (el cliente liviano de la misma versión, ADR 018), ai y @ai-sdk/groq. El motor de ciencia de datos (pandas y scikit-learn) no está aquí: viaja como WebAssembly y corre en el navegador. Lo recuenta tests/unit/brochure-export.test.ts contra package.json.
Where does it come from?
Veinticuatro specs e2e vigilan las peticiones de red (contadas el 2026-10-28 sobre 988489c: las de Probeta, también la pregunta a tus datos, y las de las etapas 4 a 10 del Protocolo): fallan si una lleva valores del dataset o, sin consentimiento, una petición de narración. Lo único que sale con contenido del usuario es la narración con IA, a petición y solo con agregados: 652 B medidos.
Where does it come from?
Regla dura del producto: 100 % CPU. Árboles y boosting sobre scikit-learn en WebAssembly; prohibidos los modelos fundacionales tabulares, el backend WebGPU y el entrenamiento pesado de deep learning.
Where does it come from?
Suma de los servicios contratados: Vercel Hobby (US$0), GitHub repo público (US$0), Sentry free tier (US$0) y Groq dentro de su cuota gratuita (la narración es opt-in y cuesta ~US$0.0005 por uso, registrado por Pino). No hay base de datos que facturar.
Where does it come from?
`wc -c docs/BROCHURE.html` en 988489c, 2026-10-28 (lo recuenta tests/unit/brochure-export.test.ts). Archivo autocontenido: cero CDN y cero peticiones de red, verificado instrumentando el navegador.
Where does it come from?
Archivos de decisions/ en 988489c, 2026-10-28 (001–030): el 023 y el 024 son la prueba de estrés y lo que el usuario se lleva; el 025 y el 026, el lector de Excel y el plan de limpieza; el 027, del modelo a la decisión; el 028, pronosticar una serie; el 029, el gemelo sintético; el 030, preguntarle a tus datos. Lo recuenta tests/unit/brochure-export.test.ts.
What it is built with
- Next.js + TypeScriptla app, en modo estricto y bilingüe desde el primer día
- Pyodide (WebAssembly)pandas y scikit-learn corriendo dentro del navegador, en un Web Worker, self-hosteados
- scikit-learnel pipeline anti-fuga, la liga de modelos candidatos y los baselines contra los que se juzga
- IndexedDBel cuaderno del Protocolo vive en el navegador de quien lo usa, nunca en un servidor
- Vitest y Playwrightlas pruebas, incluidas las que fallan si alguien ajusta el preprocesamiento fuera de la parte de entrenamiento
- Groqla narración del porqué: opt-in, con guardrails y fallback determinista si falla
- Sentry y Pinoobservabilidad de metadatos — nunca contenido del dataset
Your data
- Probeta se sirve desde la web, pero tus datos se quedan en tu equipo: el perfilado, la limpieza, el entrenamiento y la puntuación corren en tu navegador, y tu tabla nunca se sube a un servidor.
- Solo sale algo si pides la narración con IA: los nombres de tus columnas y cifras agregadas (652 bytes en una medición real), jamás filas.
- Los errores reportan solo metadatos, como cuántas filas y columnas hay, nunca valores.
- El cuaderno de Protocolo DS vive en el almacenamiento de tu navegador y sale solo si tú lo exportas; ese modo es todo código determinista, sin IA generativa.
What it never does
- Sube tu tabla a un servidor.
- Ajusta el preprocesamiento con las filas de prueba.
- Maquilla un veredicto: si no le gana a la regla simple, dice «NO supera».
- Rellena en silencio una columna que falta para poder puntuar.
- Necesita una tarjeta gráfica.
Its limits, stated
- Archivos de hasta 5 MB o 50 000 filas, y todo en CPU dentro del navegador: una liga grande puede tardar minutos.
- El chequeo de fuga atrapa los casos evidentes, una columna a la vez: es una ayuda honesta, no una garantía.
- No es una app local: se sirve desde la web, con una sola ruta de servidor para la narración con IA, que nunca recibe filas.
- Explica qué pesa en el modelo, no qué causa qué: una causa pide un experimento, y el Protocolo se detiene si la buscas.























