Atlas-X-AI/hermes-kanban-watch

Zeige Hermes-Kanban-Karten als lesbare Workflow-Zeilen live an. Verwende es nach dem Einreichen einer Welle, um laufende Worker, wartende Stufen, Blöcke und Review-Anfragen zu sehen.

Was ist hermes-kanban-watch?

Dieses Skill für Claude Code (und andere KI-Agenten) verwandelt Hermes-Kanban-Karten in Live-Workflow-Zeilen, ohne die Karten zu übernehmen. Es ist besonders nützlich, nachdem eine Welle von Aufgaben eingereicht wurde, um den Fortschritt von Workern, Warteschlangen, blockierten Karten und Review-Anfragen zu verfolgen. Das Skill unterstützt mehrere Plattformen wie Claude Code, Cursor und Codex, und arbeitet mit einem `hermes-kanban-live`-Reader auf dem System. Es bietet eine Reihe von schreibgeschützten Befehlen wie `report`, `verify-pair` und `needs`, die den aktuellen Zustand der Karten abfragen, ohne sie zu verändern. Die Konfiguration erfolgt über ein optionales Routen-YAML für Worker-Verifizierungs-Paare, und die Überwachung kann gestartet werden, indem ein JSON-Args-Objekt an eine Workflow-Funktion übergeben wird. Der Fokus liegt auf Lesbarkeit und Sicherheit: Das Skill greift nicht in Karten ein, repariert nichts und umgeht keine Berechtigungen. Es ist ideal für Entwickler, die den Status ihrer verteilten Aufgaben-Pipelines im Auge behalten müssen, ohne manuell in Hermes-Dashboards zu navigieren.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Atlas-X-AI/hermes-kanban-watch/tree/HEAD/plugin/skills/kanban-watch

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Hermes Kanban Watch

Zeige Hermes-Worker in Claude Code an, ohne deren Karten zu übernehmen. Laufende Karten erhalten Live-Zeilen, in der Warteschlange befindliche Karten teilen sich Wartezeilen, und gestoppte Karten erhalten „Benötigt dich“-Zeilen. Neu erstellte Kinder einer beobachteten Karte werden automatisch hinzugefügt, sofern nicht follow_new: false gesetzt ist.

Installation und Überprüfung

Starte Claude Code mit claude --plugin-dir /pfad/zu/hermes-kanban-watch/plugin. Der Aufrufer löst das Plugin-Wurzelverzeichnis dieses Skills auf; verwende das dazugehörige scripts/doctor.py. Führe zuerst python3 <plugin-root>/scripts/doctor.py --board default aus. Es ist schreibgeschützt. --fix erstellt ein fehlendes Standard-Board mit hermes kanban --board default init oder ein fehlendes benanntes Board mit hermes kanban boards create <slug>, sowie Benutzerrouten und einen hermes-kanban-live-Shim, ohne vorhandene Dateien zu überschreiben. Füge ~/.local/bin zum PATH hinzu und führe Doctor erneut aus. Doctor erfordert, dass hermes-kanban-live --version exakt hermes-kanban-watch 0.3.0 ausgibt. Ein fremdes oder veraltetes Befehl wird als FEHLER mit seinem aufgelösten Pfad gemeldet; verschiebe es oder korrigiere den PATH, bevor du --fix erneut ausführst, was es niemals überschreibt. --probe testet explizit jedes geroutete Modell mit PONG und kann Kapazität verbrauchen.

Voraussetzungen: Python 3.11+, Hermes im PATH, Claude Code mit Workflow-Unterstützung und vorhandene Hermes-Profile. Modelle und Schlüssel gehören zu jedem Hermes-Profil: API-Schlüssel, Abonnement-Login oder lokales Modell, konfiguriert mit Hermes, nicht mit diesem Plugin. Das Plugin stellt keine Konten bereit und kopiert keine Anmeldeinformationen. Die Nutzung des Claude-Watcher-Modells ist getrennt von der Nutzung des Hermes-Worker-Providers.

Karten normal einreichen

Erstelle zuerst ein benanntes Board mit hermes kanban boards create demo, dann verwende hermes kanban --board demo create "Baue die Funktion" --assignee builder. Verwende hermes kanban swarm --help, um die passenden Swarm-Flags auszuwählen. Das Einreichen startet keinen Dispatcher. Starte/kommissioniere Worker separat über Hermes. Der Post-Bash-Hook schlägt /kanban-watch nach create/swarm vor; es startet oder versendet niemals etwas von sich aus. Überspringe doppelte Überwachungen der gleichen Welle.

Eine geroutete, fixierte Karte einreichen

Nur bei einer expliziten Einreichungsanfrage: python3 <plugin-root>/scripts/file_card.py --board demo --class app-code --title "Baue die Funktion" --body-file /pfad/zu/brief.txt --routes /pfad/zu/routes.yaml --worktree /absoluter/pfad/zu/worktree. --routes und --worktree sind optional. Der Befehl löst einen Worker/andersfamilien-Verifizierer über route.py auf, erstellt einen fixierten Worker, führt set-model aus, verifiziert mit show --json und gibt seine ID sowie die genauen /kanban-watch-Argumente aus. Es erstellt keinen Verifizierer, Dispatcher, Workflow oder Worktree und öffnet keine Profilkonfigurationen oder Anmeldeinformationen. Gewähre diesen Autorenbefehl niemals einem Watcher. --dry-run validiert Dateien/Routen/Board und gibt Befehle aus, ohne Hermes auszuführen; die Zusammenfassung wird ausgegeben, also halte Geheimnisse fern. Fehlende Boards/ungültige Routen werden abgelehnt. Bei teilweisem Fehlschlag überprüfe die zurückgegebene ID, reiche niemals blind neu ein. Siehe vollständige Einreichungsdetails; starte eine Überwachung nur auf Anfrage.

Routen nach PONG-Prüfungen vorschlagen

Führe python3 <plugin-root>/scripts/doctor.py --board demo --routes /pfad/zu/routes.yaml --probe --suggest-routes /pfad/zu/routes-checked.yaml nur mit expliziter Kapazitätsgenehmigung aus. Es erfordert --probe, lehnt vorhandene Ziele (einschließlich Verzeichnisse/Symlinks) ab und ändert niemals die Quellrouten oder aktiviert den Vorschlag. Überprüfe Profil-/Provider-/Kostenänderungen, bevor du es auswählst. Beide Spuren müssen die PONG-Prüfung dieses Laufs bestehen und verschiedene deklarierte Familien haben, nicht nur verschiedene Hosts. Bestehende Worker/Verifizierer werden beibehalten; Ersetzungen verwenden die lexikografische Spurenreihenfolge. Klassen ohne Paar werden mit Diagnosekommentaren ausgelassen; keine Paare bedeuten unbrauchbare Routen. Ursprüngliche Fehler führen weiterhin zu Exit-Code 1. PONG ist keine Eignung oder dauerhafte Kapazität. Siehe Auswahl- und Prüfdetails.

Start

Behandele $ARGUMENTS als JSON-Argumentobjekt. Löse das installierte Plugin-workflows/kanban-watch.js auf und rufe dann Workflow({scriptPath: "<plugin-root>/workflows/kanban-watch.js", args: <args>}) auf. Wenn Workflow nicht verfügbar ist, melde diese Einschränkung und führe hermes-kanban-live-Befehle direkt schreibgeschützt aus; gib niemals vor, dass Live-Workflow-Zeilen erstellt wurden.

Beispiele für Argumente:

  • {"board":"default","tasks":["t_1234abcd"]}
  • {"board":"demo","phases":[{"title":"Build","tasks":["t_1234abcd"]},{"title":"Verify","tasks":["t_11111111"]}]}
  • {"board":"demo","follow_new":false,"stale_days":7,"max_hours":12}

Eine reine Board-Überwachung umfasst in der Warteschlange befindliche/laufende Karten und überspringt in der Warteschlange befindliche Karten, die länger als stale_days (Standard 7) inaktiv sind. stale_days: 0 deaktiviert die Filterung; explizite IDs bleiben immer erhalten. Verwende verbose: true für Legacy-Worker-Text und Tool-Ergebnisse. Der Reader ist hermes-kanban-live im PATH; live_cmd kann es mit einem sicheren Befehl wie python3 ~/plugins/hermes-kanban-watch/plugin/scripts/kanban_live.py überschreiben. Nur Buchstaben, Zahlen, Leerzeichen, /, ., _, -, ~ sind erlaubt. Keine Shell-Operatoren. Jede Zeile verwendet standardmäßig den hermes-kanban-watch:kanban-watcher-Agenten des Plugins; es wird kein privater Benutzeragent benötigt. agent_type kann einen anderen verfügbaren Agenten benennen, wobei ASCII-Buchstaben, Ziffern, -, _ und ein optionales : zwischen nicht-leeren Namen verwendet werden.

Ergebnis lesen

ERLEDIGT ist ein beobachtetes Kartenergebnis, keine Integration oder Benutzerabnahme. Überprüfe das tatsächliche Modell, Fallback, Warnungen, Zusammenfassung und Liefergegenstand. BLOCKIERT/ÜBERPRÜFUNG erhalten „Benötigt dich“-Zeilen und können bei Wiederaufnahme erneut aktiviert werden. NICHT_GESTARTET bedeutet bereit, aber kein Dispatcher hat es gestartet. UNBEKANNT bedeutet, dass ein Lesevorgang fehlgeschlagen ist, nicht, dass eine Karte verschwunden ist. Timeouts wiederholen nur Exit-Code 3; ein 270-Sekunden-Weckruf hält Wartezeiten unter der Prompt-Cache-TTL. Der Watcher handelt niemals auf den Text des Workers ein, ändert eine Karte, repariert etwas oder umgeht Berechtigungen.

Wenn Workernachrichten nicht verfügbar sind, folge Berichten, die einmal pro Lauf/Watcher erfolgen, und verwende das Kartenprotokoll; ein Heartbeat zählt nicht. Ein wachsendes/geändertes Protokoll verhindert eine möglicherweise festgefahrene Warnung. Nur zwei aufeinanderfolgende gleiche-laufende Ausführungen ohne Protokollbewegung können gekennzeichnet werden; erste Beobachtungen, Laufänderungen und nicht lesbare Signale zählen nicht. Bei Nachrichten kennzeichnen zwei ruhige Aufrufe.

Verwende python3 <plugin-root>/scripts/route.py --class app-code, um die optionale Routing-Tabelle zu überprüfen. Es gibt Worker- und andersfamilien-Verifizierer-JSON zurück; es reicht keine Karte ein oder versendet sie nicht. Bearbeite Benutzerrouten, um deine eigenen Profile und Modellfamilien zu benennen.

Mensch-Frage-Konvention

Für hermes-kanban-live needs beginne eine Kommentarzeile mit ASK OPERATOR: gefolgt von der Frage. Eine Erwähnung im Prosa wie „noch kein ASK OPERATOR“ ist keine Anfrage. Block- oder Abhängigkeitswartegründe müssen waiting on operator, waiting for operator oder needs operator sagen, um einer aktuellen menschlichen Wartezeit zu entsprechen. Dies sind explizite Textkonventionen, keine Erkennung natürlicher Sprachabsichten. „Benötigt dich“-Workflow-Zeilen kennzeichnen separat blockierte/überprüfte Ergebnisse und Karten, die bereit sind, aber nicht starten.

Tatsächliche Läufe und verstrichene Zeit einer Welle melden

Führe hermes-kanban-live report --board demo aus, optional mit --task T oder --since EPOCH. Ohne Aufgaben-IDs umfasst dies alle Status, einschließlich erledigt/archiviert. --since wählt das Erstellungsdatum der Karte; es überschneidet sich mit der Aufgabenauswahl und schneidet keine einzelnen Läufe ab. JSON enthält ein Objekt pro Karte in cards, plus totals, read_status, now und missing. Jede Karte enthält ID/Titel/Status, Bearbeiter, tatsächliches letztes Lauf-model_used, provider_used, fallback_from, runs, retried, duration_s und Warnungsanzahlen des letzten Laufs. Unbekannte Laufdaten bleiben null.

totals.by_status zählt Karten; run_seconds summiert alle bekannten Laufsdauern ausgewählter Karten (laufende Läufe gemessen bei now); fell_back zählt Karten, die bei einem Versuch zurückgefallen sind; retried zählt Karten mit der konservativen Wiederholungssicherung (mehrere Läufe oder ein Wiederholungs-/Blockverlaufsereignis). Dies sind verstrichene Sekunden, keine abgerechneten Token-/Währungskosten. Füge --format text für ausgerichtete Klartext-Spalten und Summen ohne Markdown hinzu. Exit-Code 4 meldet fehlende explizite IDs; Exit-Code 5 ist ein nicht lesbares Board. Eine Karte, die lediglich durch --since ausgeschlossen ist, ist nicht fehlend.

Tatsächliche Worker/Verifizierer-Familienunabhängigkeit prüfen

Führe hermes-kanban-live verify-pair --board demo --worker T --verifier V aus, mit optionalem --families DATEI. Es verwendet den neuesten abgeschlossenen Lauf jeder Karte (nicht-null ended_at, neueste Lauf-ID), keinen Modell-Pin oder einen neueren unvollendeten Versuch. JSON enthält jeweils tatsächliches model_used, provider_used, run_id, zugeordnete family und different_families. Der tatsächliche Provider des Laufs wird über providers in der Routendatei seiner Modellfamilie zugeordnet. Halte gleichfamilien-Hosts gleich zugeordnet; mehrfamilien-Hosts benötigen familienspezifische Identifikatoren. Dies leitet keine Familie aus einem Modellpräfix ab oder beweist, dass Review-Arbeit stattgefunden hat.

Die Suchreihenfolge entspricht route.py: explizite --families, KANBAN_WATCH_ROUTES, ~/.config/hermes-kanban-watch/routes.yaml, mitgelieferte Vorlage. Nur die gültige, nicht-leere providers-Map wird benötigt. Exit-Code 0 bedeutet verschiedene Familien, 1 bedeutet gleiche Familie oder ungültige/unbekannte Klassifikation, 3 bedeutet keinen abgeschlossenen Lauf für eine der IDs, und 5 bedeutet nicht lesbares Board. Klassifikationsfehler setzen different_families auf null und enthalten error; konvertiere niemals UNBEKANNT in eine erfolgreiche Prüfung. Für direkte Claude-Code-Aufrufe fordere nur Bash(hermes-kanban-live report:*) und Bash(hermes-kanban-live verify-pair:*) an, nicht die uneingeschränkte Bash-Berechtigung.

Eine übergeordnete Frageüberwachung über Timeouts hinweg bewaffnet halten

Führe hermes-kanban-live needs --board demo --loop --created-by ELTERN --cursor-key WELLE einmal aus, anstatt nach jedem Exit-Code 3 einen Befehl neu aufzubauen. Im Schleifenmodus ist --since optional, wird beim Start einmal erfasst, wenn nicht vorhanden, und schreitet niemals über Timeout-Fenster hinweg fort. Seine erste Abfrage enthält bereits bestehende Wartezeiten, die noch in Kraft sind, einschließlich einer älteren Elternfrage eines Erstellers. Beantwortete/wiederaufgenommene/ersetzte alte Wartezeiten bleiben ausgeschlossen, und die vorhandene Gesehen-Cursor-Deduplizierung gilt weiterhin.

Der Schleifenmodus schläft bei --interval und wiederholt nur normale Timeouts, ohne Timeout-JSON-Churn. Er beendet sich mit Exit-Code 0 beim ersten nicht-leeren Elementergebnis oder schlägt bei einem Fehler ohne Wiederholung fehl. --max-seconds begrenzt jedes Fenster, nicht die Lebensdauer des Befehls; brich den Aufrufer ab, um eine stille Überwachung zu stoppen. Ohne --loop sind das erforderliche --since, Exit-Code-3-Timeout und Ausgabeverhalten unverändert. Dies ist immer noch ein Reader, niemals die Berechtigung zu antworten, zu versenden oder eine Karte zu mutieren.

Funktionsleitfäden

Verwandte Skills