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:
- Detect — das aktuelle Verzeichnis (oder einen angegebenen Pfad) nach Signaturdateien durchsuchen, herausfinden, welches Framework das Projekt verwendet, und ein recipe bauen;
- bootstrap — Abhängigkeiten installieren/vorbereiten (z. B.
make installoder das erkannte Install-Target); - build — das Projekt kompilieren (
npm run build,go build ./...,cargo build,mvn package, …); - test — die Testsuite ausführen (
npm test,pytest,go test ./...,mvn test, …); - start — die App im Hintergrund booten und auf readiness pollen (standardmäßig 60 s Ready-Timeout, Port überschreibbar);
- 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.