hermes verify: Ein Befehl, der beantwortet, ob dieses Projekt wirklich läuft


Wenn man ein Repository übernimmt — oder gerade etwas frisch geklont hat —, tippt man als Erstes die vertraute Beschwörung: Abhängigkeiten installieren, bauen, Tests laufen lassen, den Server starten, den Port prüfen. Jedes Projekt braucht seine eigene Variante: npm für die einen, pip für andere, cargo build hier, docker compose up dort.

hermes verify, das Anfang August 2026 auf main von Hermes Agent landete, ist genau für diesen Moment gebaut: ein Befehl, der beantwortet, ob dieses Projekt wirklich läuft. Er erkennt das Run-Recipe des Projekts automatisch und führt einen vollständigen Smoke-Pass in der Reihenfolge bootstrap → build → test → start → readiness aus, dann gibt es ein strukturiertes Urteil.

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

1. Was es tut

Der Kern-Workflow von hermes verify:

  1. Detect — das aktuelle Verzeichnis (oder einen angegebenen Pfad) nach Signaturdateien durchsuchen, herausfinden, welches Framework das Projekt verwendet, und ein recipe bauen;
  2. bootstrap — Abhängigkeiten installieren/vorbereiten (z. B. make install oder das erkannte Install-Target);
  3. build — das Projekt kompilieren (npm run build, go build ./..., cargo build, mvn package, …);
  4. test — die Testsuite ausführen (npm test, pytest, go test ./..., mvn test, …);
  5. start — die App im Hintergrund booten und auf readiness pollen (standardmäßig 60 s Ready-Timeout, Port überschreibbar);
  6. teardown — aufräumen, eine Evidence-Zusammenfassung und ein strukturiertes pass/fail-Urteil ausgeben.

Wenn das Projekt nicht erkannt wird, sagt es das explizit und erklärt, wie man ein recipe manuell definiert.

Wie es zu dem passt, was Hermes schon hat

Hermes hatte bereits drei Verifikations-Ebenen (Selbstverifikation, Completion-Contracts, kanonische Testbefehle). hermes verify füllt die Lücke, die sie hinterlassen: Runtime-Smoke-Verifikation — baut das Projekt wirklich, bootet es wirklich, und antwortet der Port wirklich? Erfolgreiche Läufe werden im Verification-Evidence-Ledger (agent/verification_evidence) verbucht und teilen sich den Evidence-Store mit dem Verify-on-Stop-Guard — ein bestandener hermes verify wiegt so viel wie ein bestandener kanonischer Testbefehl.

Wichtiger Designpunkt: Es ist ein reiner CLI-Befehl mit null Modell-Tool-Footprint — keine neuen modellsichtbaren Tools, keine Änderung an der Tool-Oberfläche des Agenten.

2. Unterstützte Projekttypen

Die echten Detektoren in agent/verify/recipes.py (jeder mit Evidence-Strings):

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. Alle Flags

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. Typische Verwendung

Täglicher Smoke-Check

cd ~/projects/acme-web
hermes verify

Nur erkennen — sieh, ob dein Projekt erkannt wird

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

Das recipe fixieren

Die Erkennung kann driften, wenn sich der Verzeichnisinhalt ändert. --save friert das recipe in .hermes/environment.json ein; danach lädt hermes verify zuerst dieses Manifest, und die Ergebnisse sind reproduzierbar:

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

JSON-Ausgabe als CI-Gate

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

Nur die Test-Phase

hermes verify --phase test

5. Ein recipe manuell definieren

Wenn --detect-only fehlschlägt, verweist die Meldung darauf, .hermes/environment.json im Projekt anzulegen, um das recipe von Hand zu definieren. Das Manifest ist projektspezifisch, und ob .hermes/ in die .gitignore kommt, ist deine Entscheidung — beachte aber: Es hat Vorrang vor der Auto-Erkennung, sodass alle späteren Verifikationen deiner Definition folgen, sobald es gespeichert ist.

6. Design-Abwägungen, die man kennen sollte

  • Null Modell-Footprint: verify ist ein CLI-Befehl, kein Agent-Tool — er dient „einem Menschen im Terminal, der schnell die Projekthygiene bestätigt“ und kostet kein Agent-Tool-Budget;
  • Evidence wird verbucht: erfolgreiche Läufe landen im Verification-Evidence-Ledger, geteilt mit dem Verify-on-Stop-Guard, und schließen so den Kreis;
  • Scheitert schnell: standardmäßig 600 s Timeout pro Phase und 60 s Ready-Timeout — ein festgefahrenes Projekt hängt nie ewig.

Zusammenfassung

hermes verify automatisiert das alltägliche „Klonen und zum Laufen bringen“-Ritual: Framework erkennen, installieren, bauen, testen, booten, prüfen — ein Befehl, strukturiertes Urteil. Besonders nützlich, wenn man häufig unbekannte Repositories evaluiert oder ein günstiges Smoke-Gate in der CI haben möchte.

Mehr von unserer Website: Kombiniere es mit unserem kompletten Leitfaden zur Hermes-Agent-Cron-Automatisierung, um verify nach Zeitplan laufen zu lassen, lies, wie Hermes Fehler behandelt und sich erholt, oder installiere Hermes in fünf Minuten.