Warum ein brandneuer Skill in der Suche null Treffer liefert


Du hast gerade in einem Community-Thread einen netten kleinen Skill gesehen — sagen wir, „die Action Items aus einem Wochenbericht in eine Checkliste verwandeln“ — und der Autor sagt, er sei auf skills.sh veröffentlicht. Du öffnest ein Terminal, in guter Stimmung:

hermes skills search weekly-report

Null Treffer. Du probierst ein anderes Keyword. Immer noch null. Jetzt zweifelst du an deiner Rechtschreibung oder an der Existenz des Skills. Eine halbe Stunde später installierst du ihn über den Link im Thread, und er funktioniert einwandfrei.

Nichts stimmt mit dir oder mit dem Skill nicht. Der Weg, den eine Suche nimmt, und die Frage „existiert dieser Skill überhaupt“ sind schlicht nicht dieselbe Frage.

Die Suche läuft in zwei Durchgängen

Eine ungefilterte Suche — CLI, TUI und Dashboard gleichermaßen — wird von einem zentralen Index beantwortet, der die externen Registries abdeckt. Dieser Index wird periodisch neu gebaut, was bedeutet: Er beantwortet „was beim letzten Build existierte“, nicht „was gerade jetzt existiert“.

Das lässt ein Fenster offen. Ein Skill, der vor ein paar Minuten veröffentlicht wurde, ist wahrscheinlich noch nicht im Index.

Eine am 16. September gemergte Änderung behandelt dieses Fenster: Wenn der Index null Treffer für deine Anfrage liefert, fragt Hermes zusätzlich skills.sh, ClawHub, LobeHub und bekannte Endpunkte direkt ab. In den Worten der Doku: Ein Skill, der vor Minuten veröffentlicht wurde, taucht trotzdem auf.

Ein paar Grenzen dieses Fallbacks sollte man sich merken:

  • Höchstens 8 Sekunden. Er bekommt nur einen Teil des Suchbudgets, damit eine langsame Registry aus einem Miss keine lange Wartezeit machen kann;
  • Er greift nur, wenn der Index tatsächlich mit null Ergebnissen abgeschlossen wurde. Ein Index, der in ein Timeout lief, löst ihn nicht aus — eine Unterscheidung, die dieselbe Änderung behoben hat, weil das Dashboard sonst fälschlich skills.sh und ClawHub ein Timeout vorwarf;
  • Provider-Filter lösen ihn nicht aus. Ein Filter wie --source nvidia gleicht gegen bereitgestellte Quellen ab, und diese Registries führen keine Provider-Daten, also wären es vier garantiert leere Netzwerkaufrufe;
  • GitHub ist nicht im Fallback. Der Grund ist praktisch: Ein einziger Tippfehler würde sonst das komplette stündliche GitHub-Budget eines nicht authentifizierten Nutzers verbrauchen. Um eigene GitHub-Taps zu durchsuchen, musst du sie explizit anfordern.

Willst du eine präzise Antwort? Dann nenne die Quelle

hermes skills search nimmt --source, und die Liste ist länger, als die meisten annehmen:

hermes skills search kubernetes                 # jede Quelle
hermes skills search react --source skills-sh   # nur das skills.sh-Verzeichnis
hermes skills search report --source clawhub    # nur ClawHub
hermes skills search --source official          # nur offizielle optionale Skills

Verfügbare Quellen sind unter anderem official, skills-sh, well-known, github, clawhub, lobehub, browse-sh sowie nach Provider gruppierte wie nvidia, openai, anthropic, huggingface, voltagent, gstack und minimax — die vollständige Liste steht in --help.

Zwei Nachbarbefehle verdienen ihren Platz: hermes skills browse blättert durch alles (offizielle Skills zuerst), und hermes skills inspect <name> zeigt dir, was ein Skill tut, bevor du ihn installierst. Häng --json an eine Suche, wenn du strukturierte Ausgabe für ein Skript willst.

Auch der Index selbst wurde repariert: Ein Shard im Timeout frisst nicht mehr alle Skills

Der Fallback ist ein Pflaster; die eigentliche Lösung ist, den Index zuverlässig zu machen. Die Arbeit vom 17. und 18. September zielte auf eine Klasse von Bugs: einen fehlgeschlagenen Fetch als „es gibt keine weiteren Daten“ zu lesen.

  • Der Katalog von ClawHub läuft über einen Cursor. Wenn eine Seite in ein Timeout lief oder einen Non-200 zurückgab, las der alte Code das als Ende des Katalogs — jeder verbleibende Skill verschwand. Jetzt wird erneut versucht.
  • Die Sitemap von skills.sh wird in Shards geladen. Ein fehlgeschlagener Shard wurde als leerer Shard gelesen, und der daraus resultierende Teilkatalog wurde in den geteilten Cache geschrieben — für alle verschwanden Skills aus der Suche, bis der Cache ablief. Jetzt wird ein fehlgeschlagener Shard erneut versucht, und bleibt er dunkel, wird die Teilmenge zurückgegeben, ohne gecacht zu werden.
  • Das CI-Timeout wanderte von 50 Minuten auf 120. Der Commit erklärt das mit ungewöhnlicher Genauigkeit: Seit dem 17. September liefert ClawHub etwa eine Seite mit 200 Einträgen alle 10 Sekunden (vorher rund 2,5), sodass allein der Durchlauf über ~400 Seiten 60–70 Minuten dauert. Die geplanten Läufe am 17. und 18. September wurden nach 50 Minuten abgebrochen, während der Crawl noch lief, und ein weiterer Lauf blieb bei 12.145 Skills stehen — unter der Untergrenze von 20.000 — nach einer einzigen fehlgeschlagenen Seite. Beide Hälften mussten repariert werden, damit der Index wieder ausgeliefert werden kann.

Wenn die nächste Suche leer bleibt, geh in dieser Reihenfolge vor

Erstens: Such noch einmal, unverändert. Wenn der Skill gerade erst veröffentlicht wurde, hätte der Fallback nachgefragt — aber ein Budget von 8 Sekunden bedeutet, dass eine einzelne langsame Registry ihn trotzdem verfehlen lassen kann.

Zweitens: Nenne die Quelle. --source clawhub oder --source skills-sh schickt die Anfrage direkt an dieses Verzeichnis und umgeht die Aktualität des Index komplett.

Drittens: Durchsuche GitHub explizit. Eigene Taps sind nicht im Fallback; nutze --source github.

Viertens: Prüf, ob du überhaupt nach einem Skill suchst. Wenn du eigentlich ein Plugin willst — die Sorte, die Tools, Hooks oder Plattform-Adapter hinzufügt —, ist das eine andere Pipeline: SHA-gepinnt, manuell reviewt, und beschrieben in dem Beitrag zum Plugin-Katalog.

Für das größere Bild — wie das Skills-Verzeichnis aufgebaut ist, external_dirs, und wo vom Agenten erstellte Skills über skills.create_dir landen — sieh dir den Beitrag zum Skill-Erstellungsverzeichnis an. Die vollständige Befehlsfläche steht in der Skills-Befehlsreferenz.

Die Kurzfassung: Etwas nicht zu sehen ist nicht dasselbe, wie wenn es nicht existiert. Suche war schon immer Index plus Fallback, und beide Hälften haben Mitte September eine ernsthafte Runde Reparaturen bekommen — frag dich also beim nächsten Null-Treffer, ob das, was du willst, überhaupt in der Menge liegt, die die Suche erreichen kann.