Cuando terminas de definir un proyecto y llega el momento de implementarlo con IA, aparece una pregunta que cuesta dinero responder mal: ¿qué modelo elijo? Si tiro de uno muy potente para una tarea sencilla, estoy pagando por una capacidad que el proyecto no va a usar. Y si elijo uno demasiado justo para algo exigente, no consigo el resultado: pago igual y encima no me sirve.
He construido una herramienta para resolver exactamente esa decisión, y la he publicado como open source para que cualquiera pueda usarla y mejorarla. Se llama SpecJudge, y en este artículo te cuento qué hace, la idea que hay detrás y cómo usarla paso a paso.
El problema: elegir modelo a ciegas sale caro
En el desarrollo dirigido por especificaciones (Spec-Driven Development, o SDD), primero defines tu proyecto —su constitución, su especificación y sus tareas— y solo después empiezas a implementar. Ese momento, justo antes de escribir la primera línea con IA, es donde se cometen dos errores caros:
| Error | Lo que te cuesta |
|---|---|
| Modelo demasiado potente para el trabajo | Pagas por potencia que el proyecto nunca aprovecha |
| Modelo demasiado limitado para el trabajo | No produce el resultado: pagas y no consigues nada |
La gracia de SDD es que, cuando llegas a este punto, ya existe una descripción muy rica de lo que hay que hacer. SpecJudge aprovecha esa descripción para responder a la pregunta del modelo en el único momento en que es barato hacerlo: cuando los specs existen pero aún no has gastado ni un token implementando.
Qué es SpecJudge
SpecJudge es una herramienta de línea de comandos, local-first y open source (licencia MIT), que lee los artefactos de Spec-Driven Development de tu proyecto y te dice qué modelo de IA encaja mejor con el trabajo, con su valoración y su precio, para que veas de un vistazo cuál es la mejor opción calidad/precio.
Lo importante: el análisis se ejecuta en tu máquina. El «juez» que evalúa tu proyecto es un modelo local que corre a través de Ollama, así que tus specs —tu lógica de negocio, tus decisiones de diseño— no salen de tu ordenador, y decidir qué modelo contratar no te cuesta ni una llamada de API.
La idea clave: ni el más barato ni el más potente, el que «encaja»
Este es el matiz que más me importa de SpecJudge, y el que lo diferencia de «pregúntale a una tabla de benchmarks».
SpecJudge no te recomienda el modelo más barato. Tampoco el más potente. Te recomienda el que está bien dimensionado para tu proyecto: ni se queda corto, ni te sobra potencia por la que estarías pagando de más. A esto lo llamo right-sizing.
El podio (🥇🥈🥉) ordena los modelos por lo bien que encajan con la complejidad real de tu proyecto. El precio se muestra siempre, para cada modelo, pero solo desempata entre opciones que encajan igual de bien. Un modelo más barato nunca gana a uno que hace mejor el trabajo, porque recomendar algo que no da la talla es el error más caro de todos.
Cómo funciona por dentro
El flujo es sencillo y transparente:
- SpecJudge lee tu constitución, especificación y tareas.
- El juez local (tu modelo de Ollama) estima cómo de exigente es tu proyecto en varias dimensiones (razonamiento, tamaño, especialización…).
- Esa exigencia se cruza, mediante reglas declarativas, contra la capacidad declarada de cada modelo de un catálogo mantenido por la comunidad.
- Gana el que mejor encaja, y cada veredicto viene con una razón que puedes leer. Sin caja negra.
El catálogo de modelos, capacidades y precios vive en ficheros de datos legibles (YAML), separados del código a propósito. Eso es lo que permite mantenerlo al día sin tocar la lógica del programa —volveré sobre esto al hablar de cómo contribuir.
Instalación paso a paso
Requisitos previos:
- Python 3.11 o superior
- Ollama con, al menos, un modelo local descargado
Primero, descarga un modelo que hará de juez (si no tienes ya uno):
ollama pull llama3.1:8b
Después, instala SpecJudge. Como ya está publicado en PyPI, es tan simple como:
pip install specjudge
Si trabajas con uv o [pipx], también puedes usar
uvx specjudge(sin instalar nada de forma permanente) opipx install specjudge.

Cómo se usa
Con todo listo, lanzas SpecJudge apuntando a la carpeta de tu proyecto:
specjudge /ruta/a/tu/proyecto
O, si ya estás dentro de la carpeta del proyecto, simplemente:
specjudge .
En unos segundos tienes una tabla en la terminal con cada modelo, su valoración y su precio, y el podio con la recomendación.

La matriz visual en el navegador
Si quieres comparar con más detalle, añade la opción --open (o -o):
specjudge . --open
Se abre en tu navegador una matriz visual de todos los modelos, filtrable por familia (Claude, GPT, Qwen…) y por si son open source. Es un fichero HTML autocontenido que no carga nada de la red, coherente con la filosofía de privacidad de la herramienta.

Cómo leer las valoraciones
Cada modelo recibe una valoración en una escala fija:
| Valoración | Qué significa |
|---|---|
good | Capaz de sobra para el trabajo: el punto dulce |
overkill | Capaz, pero pagas por un margen de potencia que no vas a usar |
fair | Se queda algo corto |
poor | No da la talla |
El podio prioriza los good que mejor se ajustan, y usa el precio solo para desempatar.
Cuando no hay información suficiente
Una recomendación de gasto basada en datos pobres es peor que ninguna recomendación. Por eso SpecJudge es explícito sobre cuánto puedes fiarte de su respuesta, y distingue tres situaciones:
- Suficiente — están la constitución, la especificación y las tareas: recomendación fiable.
- Escasa — falta algún artefacto o hay poco detalle: te da la recomendación, pero con un aviso.
- Insuficiente — no hay tareas que evaluar: no da recomendación en absoluto.
Además, si ningún modelo del catálogo es capaz suficiente para tu proyecto, SpecJudge te lo dice en lugar de recomendarte uno igualmente.

Opciones útiles
Para quien quiera exprimirla, estas son las opciones disponibles:
| Opción | Para qué sirve |
|---|---|
--open, -o | Abre también la matriz visual en el navegador |
--judge <modelo> | Fuerza el modelo juez solo para esta ejecución |
--set-judge | Vuelve a elegir y guardar el modelo juez |
--catalog <ruta> | Usa un catálogo de modelos alternativo |
--json | Devuelve el resultado en JSON (ideal para automatizar) |
--no-color | Desactiva el color y el resaltado |
La opción --json, junto con los códigos de salida diferenciados, permite integrar SpecJudge en un pipeline de CI para, por ejemplo, avisar automáticamente si un proyecto no tiene specs suficientes.
Por qué es open source (y cómo contribuir)
Los modelos y sus precios cambian cada pocas semanas. Esa es, precisamente, la razón por la que este proyecto necesita comunidad: si mantenerlo al día exigiera tocar código, quedaría obsoleto en cuanto yo dejara de actualizarlo.
La contribución más valiosa no requiere saber Python. Añadir un modelo nuevo es un bloque de YAML en data/models.yaml:
- id: mi-nuevo-modelo
name: Mi Nuevo Modelo
family: MiFamilia
open_source: false
provider: AlgunaAI
capabilities:
reasoning: high # low | medium | high | top
size: high
domain_specialization: medium
price:
input_per_million: 1.50
output_per_million: 6.00
currency: USD
pricing_date: 2026-07-20 # obligatorio: hace verificable la vigencia
¿No estás de acuerdo con la valoración de un modelo? Eso es una contribución, no una queja: el catálogo es opinión hecha inspeccionable. Abre un pull request con tu razonamiento.
Tienes el proyecto completo aquí:
- Repositorio en GitHub: github.com/JoaquinRuiz/SpecJudge
- Paquete en PyPI: pypi.org/project/specjudge
Si SpecJudge te ahorra pagar de más por un modelo, dale una ⭐ en GitHub: ayuda a que llegue a más gente.
Preguntas frecuentes
¿SpecJudge implementa el proyecto por mí?
No. SpecJudge recomienda el modelo que mejor encaja, pero no ejecuta la implementación ni llama a los modelos que evalúa. Su salida es un juicio informado para que tú elijas con fundamento.
¿Mis specs se envían a algún servidor?
No. El juez corre en tu máquina a través de Ollama y el informe del navegador es un HTML autocontenido. Tus especificaciones no tocan ningún servicio de terceros. Es el primer principio del proyecto, no un añadido opcional.
¿Necesito pagar algo para usarlo?
No. El núcleo de SpecJudge no requiere ninguna clave de API de pago ni suscripción. El único requisito de peso es tener Ollama con un modelo local. Una herramienta cuyo fin es ahorrarte dinero no debería obligarte a gastarlo para funcionar.
¿Vale para cualquier proyecto o solo para los que usan Spec-Driven Development?
SpecJudge está pensado para proyectos definidos con SDD, porque necesita constitución, especificación y tareas para juzgar la exigencia del trabajo. Si tu proyecto no tiene esos artefactos, la herramienta te avisará de que no hay información suficiente.
¿Por qué recomienda un modelo local barato en lugar del más potente del mercado?
Porque busca el mejor encaje, no la máxima potencia. Si tu proyecto no exige un modelo de gama alta, pagar por uno sería tirar dinero. Cuando el trabajo sí lo requiere, SpecJudge lo detecta y lo recomienda.
Conclusión
Elegir el modelo de IA adecuado no debería ser una corazonada. Con Spec-Driven Development ya tienes toda la información necesaria para decidir con criterio; SpecJudge solo la pone a trabajar para ti, de forma privada, transparente y sin coste, justo antes de empezar a implementar.
Pruébalo en tu próximo proyecto, y si le encuentras utilidad, súmate a mejorarlo: añade un modelo, corrige un precio o afina una valoración. Cuanta más gente lo cuide, mejor recomienda para todos.
¡Que la IA te acompañe! 🚀
