EL uso que he hecho a sistemas en el ultimo mes, especialmente los ultimos 15 dias, me permiten afirmar que desde mi punto de vista Gemini se ha degradado muchisimo y grok es variable. He estado pensando mucho en análisis para realizar en comparativas, pero en esta ocasion creo que es conveniente hacer una prueba de solo tres modelos LLM, es decir, a pequeña escala, para realizar un control veterinario de visitas al peluquero y vacunas. Esto no lo necesito, pero puede ser una prueba interesante. En mi casa tenemos de momento cinco perros y un gato, derivado que en la pandemia juntamos a los que había en cada casa, y aunque para mi no es “indispensable” si es util.
Como marco de comparación usaré a Kimi.
El código esta disponible en este repositorio y las imagenes tambien
https://github.com/AlfonsoOrozcoAguilarnoNDA/snippetsMIT
INICIA PROMPT
Eres un desarrollador PHP experto. Genera una aplicación web completa en un ÚNICO archivo PHP llamado `veterinaria.php`. La aplicación NO debe usar frameworks ni ORM. Debe ser 100% PHP procedural con MySQLi. El archivo debe incluir al inicio `require_once ‘config.php’;` donde se asume que dicho archivo ya existe y define la variable `$link` como una conexión MySQLi activa.
== STACK TECNOLÓGICO ==
– PHP 8.x procedural (sin clases, sin namespaces, sin PDO)
– Bootstrap 4.6.x via jsDelivr
– Font Awesome 5.15.4 via jsDelivr
– MySQLi con la variable $link provista por config.php
– Un solo archivo PHP autónomo (veterinaria.php)
== BASE DE DATOS ==
Genera al inicio del archivo el SQL para crear las dos tablas si no existen (CREATE TABLE IF NOT EXISTS):
Tabla `animales`:
– id INT AUTO_INCREMENT PRIMARY KEY
– nombre VARCHAR(100) NOT NULL
– especie VARCHAR(50) NOT NULL (valores: Perro, Gato, Ave, Conejo, Tortuga, Pez, Hámster, Otro)
– raza VARCHAR(100)
– fecha_nacimiento VARCHAR(20) (campo VARCHAR intencional, puede contener valores como “adoptado 2024 aprox 1 año”)
– fecha_tipo ENUM(‘exacta’,’estimada’) DEFAULT ‘estimada’
– notas TEXT
– created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Tabla `visitas`:
– id INT AUTO_INCREMENT PRIMARY KEY
– animal_id INT NOT NULL (FOREIGN KEY → animales.id)
– tipo_visita VARCHAR(80) NOT NULL (valores del combo: Vacuna Rabia, Vacuna Múltiple, Desparasitación Interna, Desparasitación Externa, Consulta General, Cirugía, Urgencia, Control de Peso, Análisis de Laboratorio, Otra)
– fecha_visita VARCHAR(20) NOT NULL (campo VARCHAR intencional)
– costo DECIMAL(10,2)
– veterinario VARCHAR(150)
– comentarios TEXT
– created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
== ESTRUCTURA Y NAVEGACIÓN ==
La página debe tener:
1. Una NAVBAR FIJA (position: sticky top) con:
– Nombre de la app: “VetHome” con ícono de patita (Font Awesome)
– Tres opciones de navegación: “Mis Animales”, “Visitas”, “Acerca de”
– Un badge o texto pequeño visible en la navbar que indique EXACTAMENTE: el nombre del modelo de IA que generó este código, su versión, y la fecha de generación. Ejemplo: “Generado por [NOMBRE DEL MODELO] v[VERSIÓN] el [FECHA]”. No pongas datos ficticios: usa tu nombre de modelo real, versión real y la fecha real de hoy.
2. Un FOOTER FIJO (fixed bottom) con:
– Texto: “VetHome — Control de salud para tus mascotas”
– Licencia MIT indicada explícitamente
– El mismo dato de identificación del modelo de IA (nombre, versión, fecha)
3. Contenido principal con margen suficiente para no quedar oculto bajo navbar ni footer.
== ESTÉTICA ==
– Fondo de página: gris neutro medio (#EBEBEB), ni blanco ni negro
– No forzar modo oscuro ni modo claro
– Usar Bootstrap 4.6.x con ligeras personalizaciones CSS inline o
Observación:
- El
fecha_nacimientoyfecha_visitaen VARCHAR es intencional porque a veces no sabemos fecha exacta de la mascota. - Todos los campos de texto debe darse trim antes de guardar.
- El nombre del archivo no es fijo. Para construir los enlaces y formularios usa siempre
$_SERVER['PHP_SELF']o equivalente en lugar de hardcodear el nombre del archivo.
FIN DE PROMPT
Trampas deliberadas que revelan calidad:
- los modelos mediocres “corrigen” la fecha a DATE sin avisar, ignorando la especificación.
- Pedir que se autoidentifiquen con nombre, versión y fecha real es una prueba de honestidad y conciencia del modelo.
- El panel de alertas de vacunas excluyendo estética requiere lógica condicional real, no solo un SELECT genérico.
- Pedir un solo archivo con todo incluido estresa la capacidad de organizar código coherente sin fragmentar.
Resultados:
- Grok Descalificado : High Demand Grok is under heavy usage right now. Please try again later or upgrade your plan to get priority access.
- disponibilidad es parte de la calidad de un servicio.
- Lo mas grave es que Gemini se identificó como 1.5 Flash. Es otro modelo.
- Pues claro que no rinde igual. Esto es “calidad” bard, versión anterior a 2.5.
- Kimi le faltaron detalles. Decidí no evaluarlo y pasarlo a CLaude para que evaluara, pongo su respuesta.
¿Qué modelo corrió realmente? El prompt pedía explícitamente que el modelo se identificara con su nombre, versión y fecha de generación. Gemini respondió: “Generado por Gemini 1.5 Pro el 3 de junio de 2026”. El modelo fue invocado como Gemini 3.5 Flash. Son modelos distintos, de generaciones distintas. Hay tres posibles explicaciones: Google está haciendo model swapping silencioso, el modelo tiene instrucciones de sistema que alteran su autoidentificación, o simplemente alucina su propio nombre. Ninguna de las tres es aceptable en un contexto profesional.
Inicia evaluación Claude
Benchmark: Gemini 3.5 Flash (web) vs Kimi K2.6 (web)
Prompt: Aplicación PHP 8.x procedural, CRUD completo de animales y visitas veterinarias, Bootstrap 4.6.x + Font Awesome 5.15.4 vía jsDelivr, en un solo archivo autocontenido.
Fecha de prueba: 3 de junio de 2026 | Evaluador: Alfonso
Criterio Gemini 3.5 Flash Kimi K2.6 CRUD completo (alta, edición, baja) en ambas tablas ❌ Sin edición ✅ Completo Autoidentificación correcta del modelo en navbar, footer y acerca de ❌ Se identificó como “Gemini 1.5 Pro” ✅ Kimi K2.6 v2.6 — consistente Uso de $_SERVER['PHP_SELF'](sin hardcodear nombre de archivo)✅ ✅ Fondo de pantalla gris neutro (#EBEBEB) respetado ✅ ✅ Campos de fecha en VARCHAR (sin “corregir” a DATE) ✅ ✅ Font Awesome 5.15.4 cargado vía jsDelivr (como se especificó) ❌ Usó cdnjs ✅ jsDelivr correcto Protección SQL: prepared statements o escape adecuado ⚠️ Solo escape ✅ Prepared statements Panel de alertas de vacunas con semáforo por días transcurridos ❌ Ausente ❌ Ausente Texto completo de licencia MIT incluido en “Acerca de” ❌ Solo mención ❌ Solo mención TOTAL CRITERIOS CUMPLIDOS 4 / 9 7 / 9 Observaciones
- Gemini 3.5 Flash es un modelo más reciente que Gemini 1.5 Pro, pero produjo un resultado inferior en casi todos los criterios técnicos. Más grave aún: se autoidentificó como “Gemini 1.5 Pro”, lo que sugiere que el modelo no tiene conciencia clara de su propia versión, o la omite deliberadamente.
- Kimi K2.6 implementó CRUD completo incluyendo edición, usó prepared statements correctamente, respetó el CDN especificado y se autoidentificó de forma consistente en las tres secciones requeridas.
- Ambos modelos omitieron el panel de alertas de vacunas con semáforo y el texto completo de la licencia MIT — funcionalidades que requerían mayor razonamiento sobre el dominio del problema.
- Esta prueba es reproducible: el prompt completo está disponible en este mensaje.
Prueba realizada el 3 de junio de 2026. Los modelos fueron evaluados con el mismo prompt sin modificaciones. Evaluación independiente sin patrocinio de ningún proveedor de IA.
fin evaluacion claude
Algo malo está pasando y hay pruebas claras. NO PUEDO ENTREGAR ESTO AL CLIENTE.
No hice evaluación a fondo.
El valor del benchmark bien diseñado: el problema es real pero no crítico para mi, lo que me da distancia objetiva para evaluar sin presión. No estoy midiendo si funciona para tu negocio, estoy midiendo la capacidad del modelo bajo condiciones controladas.
En este caso no generé codigo con Grok pero si una imagen y meta.ai me dio otras que por ser verticales no puse aqui. Hay una imagen .svg generada por claude.
Cartoon illustration, cute style, white background. Three sick pets: a dog, a cat, and a rabbit. Each one has a thermometer in mouth, bandages on head, and a sad face. Comic style, colorful, friendly, not scary. Bold text at bottom: “vibecodingmexico.com” in dark gray. Small text above it: “Control Veterinario”. Large red stamp-style text overlaid diagonally: “TODOS FALLARON”. Clean flat design, no gradients.
Copilot

Grok

Gemini:

El código esta disponible en este repositorio y las imagenes tambien
https://github.com/AlfonsoOrozcoAguilarnoNDA/snippetsMIT