YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
miniZentrale
Minimum Viable Zentrale fuer agentisches Arbeiten.
Die Zentrale ist absichtlich zuerst eine Markdown-/CLI-Zentrale, keine grosse UI. Sie hat zwei Owner-Oberflaechen. Der kurze Startweg ist:
./run
./run tui
./run gui
./run panel
Wenn das Paket installiert ist, geht auch:
run
run tui
run gui
run panel
Der explizite Python-Start bleibt:
python -m minizentrale tui
Das ist die farbige Terminal-Zentrale mit Boxen, Senderecht, Stop/Go und Artifact-Store-Summary.
run panel startet die native GTK/libadwaita-Zentrale als kleines Linux-Panel.
Sie zeigt denselben Gatekeeper wie TUI/GUI, aber als echte Desktop-Oberflaeche:
Auftragseingabe, Hermes-Profil-Dropdown, aktueller Run und Decision Card.
Im TUI ist der Delegationsfluss:
n -> Auftrag formulieren -> Hermes-Profil im Dropdown auswaehlen -> Job speichern
s -> genau einen pending Job als Hermes Runner starten
Nicht-interaktiver TUI-Test:
python -m minizentrale tui --once
Die Markdown-Variante erzeugt ein einziges Owner-File:
python -m minizentrale status
Output:
CONTROL_ROOM_STATUS.md
Rohdaten und Kontext gehen separat ins Archiv:
artifact_store/manifest.jsonl
ARTIFACT_STORE.md
Was sie beantwortet
- Darf ueberhaupt etwas an Samuel gesendet werden?
- Gibt es eine Entscheidung?
- Gibt es ein Risiko?
- Gibt es eine Empfehlung?
- Ist Stop oder Go angesagt?
Firewall-Regel
Die Firewall ist kein Dokument. Die Firewall ist ein Senderecht.
Eine Meldung darf nur entstehen, wenn mindestens eines davon wahr ist:
- Entscheidung noetig
- Gefahr/Risiko
- Arbeit fertig und verified
- Blocker braucht Samuel
Alles andere landet im Artifact Store und wird nicht in Samuels Kopf geschickt.
Minimalform:
SENDEN: ja / nein
STATUS: ok / blockiert / gefaehrlich
STOP/GO: STOP / GO / PARK
ENTSCHEIDUNG: <eine Sache oder leer>
RISIKO: <eine Sache oder leer>
EMPFEHLUNG: <eine Sache>
DETAILS: <Pfad, nur wenn noetig>
done reicht nicht fuer Senderecht. Fertige Arbeit darf erst als GO in Samuels
Sichtflaeche, wenn ein VerificationRecord mit status: "passed" existiert.
Harte Regel
Solange diese Zentrale nicht stabil ist:
- keine grossen Agenten-Kaskaden
- keine Operator2/Operator3-Strukturen
- maximal 1 Operator
- maximal 2 Worker
- alle Outputs in bekannte Ordner
- immer Owner Packet statt Rohreport
Jobs
Optionale Jobs liegen in jobs.json. Das Format ist entweder eine Liste oder ein
Objekt mit Feld jobs.
Siehe jobs.example.json.
Verifications
Verifier schreiben keine Erzaehlung an Samuel. Sie schreiben JSONL nach:
artifact_store/verifications.jsonl
Eine Zeile:
{"verification_id":"v1","job_id":"example-job","status":"passed","artifact_path":"/path/to/result","checked_at":"2026-05-05T15:00:00+02:00","verifier_command":"pytest -q","summary":"tests passed"}
Agent Runner
V2 startet genau einen Hermes Runner pro aktivem Auftrag. Es gibt keine Agenten-Kaskade.
Runner-Artefakte liegen hier:
artifact_store/runs/<run-id>/state.json
artifact_store/runs/<run-id>/prompt.txt
artifact_store/runs/<run-id>/agent.log
artifact_store/runs/<run-id>/human_decision.json
artifact_store/runs/<run-id>/verification.json
artifact_store/runs/<run-id>/result.md
agent.log ist Rohoutput und wird nicht in Samuels Owner-Status gedumpt.
Senderecht entsteht nur durch human_decision.json, failed/passed
verification.json oder explizite Gefahr/Blocker.
Safety
V2 ist bewusst eng geschnitten:
- startet maximal einen Hermes Runner gleichzeitig
- startet keine Agenten-Kaskade
- killt keine Prozesse
- kopiert keine Rohoutputs inline in Samuels Sichtflaeche
Native Panel
run panel
Das Panel ist GTK4/libadwaita-basiert. Es pollt Status-Snapshots im Hintergrund, haelt den UI-Thread frei und schreibt den Artifact Store nur bei manuellem Refresh oder owner-relevanten Aenderungen. Polling-Defaults:
- 2 Sekunden bei aktivem Run oder Owner-Meldung
- 5 Sekunden im geparkten Zustand
Optionen:
run panel --fast-interval 2 --idle-interval 5
TUI Shortcuts
q: beendenr: sofort refreshp: Pause/Resume Auto-Refreshn: Message schreiben, Hermes-Profil per Dropdown/Picker auswaehlen, bounded Auftrag injobs.jsonerfassens: naechsten pending Auftrag als genau einen Hermes Runner starten
Der Profil-Picker verwendet nur vorhandene Verzeichnisse aus
--hermes-root/profiles. Freitext-Agenten werden nicht mehr akzeptiert.