hermes verify: Un solo comando que responde «¿este proyecto realmente funciona?»


Cuando te haces cargo de un repositorio — o acabas de clonar algo nuevo — lo primero que haces es teclear el conocido conjuro: instalar dependencias, compilar, ejecutar los tests, arrancar el servidor, comprobar el puerto. Cada proyecto tiene su propia variante: npm para unos, pip para otros, cargo build aquí, docker compose up allá.

hermes verify, que llegó al main de Hermes Agent a principios de agosto de 2026, está construido exactamente para ese momento: un solo comando que responde «¿este proyecto realmente funciona?» Detecta automáticamente la recipe de ejecución del proyecto y hace una pasada completa de smoke test en el orden bootstrap → build → test → start → readiness, y luego devuelve un veredicto estructurado.

$ hermes verify
detected: node (npm, vite)
bootstrap  build  test
start on :5173 ready in 2.1s
VERIFY PASS · evidence recorded

1. Qué hace

El flujo de trabajo central de hermes verify:

  1. Detect — escanea el directorio actual (o una ruta dada) en busca de archivos de firma, averigua qué framework usa el proyecto y construye una recipe;
  2. bootstrap — instala/prepara las dependencias (p. ej. make install o el target de instalación detectado);
  3. build — compila el proyecto (npm run build, go build ./..., cargo build, mvn package, …);
  4. test — ejecuta la suite de tests (npm test, pytest, go test ./..., mvn test, …);
  5. start — arranca la app en segundo plano y hace polling de readiness (timeout de readiness de 60s por defecto, puerto sobreescribible);
  6. teardown — limpia, imprime un resumen de evidencia y un veredicto estructurado de aprobado/fallido.

Si no reconoce el proyecto, lo dice explícitamente y te indica cómo definir una recipe manualmente.

Cómo encaja con lo que Hermes ya tenía

Hermes ya tenía tres capas de verificación (auto-verificación, contratos de finalización, comandos de test canónicos). hermes verify rellena el hueco que dejaban: verificación smoke en tiempo de ejecución — ¿el proyecto realmente compila, realmente arranca, y el puerto realmente responde? Las ejecuciones que pasan se registran en el libro de evidencia de verificación (agent/verification_evidence), compartiendo el mismo almacén de evidencia que el guard de verify-on-stop — un hermes verify que pasa pesa lo mismo que un comando de test canónico que pasa.

Punto de diseño clave: es un comando CLI puro con huella cero de herramientas de modelo — sin nuevas herramientas visibles para el modelo, sin cambios en la superficie de herramientas del agente.

2. Tipos de proyecto soportados

Los detectores reales en agent/verify/recipes.py (cada uno con strings de evidencia):

Project Signature Default build / test / start
Node.js package.json + package manager (npm/pnpm/yarn) npm run build / npm test / npm run dev (vite & friends)
Python (Django) manage.py or django dep — / python manage.py test / python manage.py runserver 0.0.0.0:8000
Python (FastAPI etc.) pyproject/requirements — / pytest (or unittest) / per detection
Go go.mod go build ./... / go test ./... / go run .
Rust Cargo.toml cargo build / cargo test / cargo run
Java (Maven) pom.xml mvn package / mvn test
Java (Gradle) build.gradle(.kts) ./gradlew build / ./gradlew test
Makefile project Makefile auto-picks install/build/test/run targets
docker-compose compose.yml etc. docker compose build / docker compose up

3. Flags completas

hermes verify [path] [options]

  path               project root to verify (default: current directory)

  --detect-only      detect and print the recipe as JSON only; run nothing
  --save             save the recipe as .hermes/environment.json in the project
  --skip-start       run command phases but skip booting the app / readiness poll
  --phase <name>     run only the given phase(s) (bootstrap|build|test|start; repeatable)
  --port <n>         override the port used for the readiness poll
  --timeout <sec>    per-phase timeout (default 600s)
  --ready-timeout <sec>  readiness poll timeout (default 60s)
  --json             emit a machine-readable JSON result

4. Uso típico

Comprobación smoke cotidiana

cd ~/projects/acme-web
hermes verify

Solo detectar — mira si reconoce tu proyecto

hermes verify --detect-only
# {"source": "detected", "recipe": {"kind": "node", ...}}

Fijar la recipe

La detección puede derivar según cambia el contenido del directorio. --save congela la recipe en .hermes/environment.json; a partir de ahí, hermes verify carga primero este manifiesto y los resultados son reproducibles:

hermes verify --save
# Saved manifest: /Users/me/projects/acme-web/.hermes/environment.json

Salida JSON como gate de CI

hermes verify --json
# {"ok": true, "recipe": {...}, "phases": {...}}

Solo la fase de test

hermes verify --phase test

5. Definir una recipe manualmente

Cuando --detect-only falla, el mensaje te remite a crear .hermes/environment.json en el proyecto para definir la recipe a mano. El manifiesto tiene alcance de proyecto, y si .hermes/ entra en .gitignore es decisión tuya — pero ten en cuenta que tiene prioridad sobre la auto-detección, así que una vez guardado, todas las verificaciones posteriores seguirán tu definición.

6. Compensaciones de diseño que vale la pena conocer

  • Huella de modelo cero: verify es un comando CLI, no una herramienta del agente — sirve para que «una persona en la terminal confirme rápido la salud del proyecto» y no cuesta nada del presupuesto de herramientas del agente;
  • La evidencia queda registrada: las ejecuciones que pasan caen en el libro de evidencia de verificación, compartido con el guard de verify-on-stop, cerrando el círculo;
  • Falla rápido: timeout de 600s por fase y 60s de readiness por defecto — un proyecto atascado nunca se queda colgado para siempre.

Resumen

hermes verify automatiza el ritual cotidiano de «clonar y hacer que funcione»: detecta el framework, instala, compila, testea, arranca, sondea — un solo comando, veredicto estructurado. Es especialmente útil si evalúas repositorios desconocidos con frecuencia o quieres un gate de smoke barato en CI.

Más de nuestro sitio: combínalo con nuestra guía completa de automatización de cron en Hermes Agent para ejecutar verify de forma programada, lee cómo Hermes maneja los errores y se recupera, o instala Hermes en cinco minutos.