skills.create_dir: Neue Skills landen, wo deine Config es sagt – nicht dort, wo der Prompt ignoriert wird


Ihr betreibt ein Team-Vault unter /opt/brain/skills, also hast du deinem Agenten im System-Prompt gesagt: „Lege neue Skills in /opt/brain/skills an.“ Er hat genickt – und skill_manage hat trotzdem jeden neuen Skill nach ~/.hermes/skills/ geschrieben, denn der Code des Tools liest keine Prosa. Einem Community-Operator wurde das so sehr zu viel, dass er das lokale Skills-Verzeichnis per chmod schreibgeschützt machte, nur um den Agenten zum Gehorsam zu zwingen; der OS-Fehler schlug den System-Prompt. Ein am 1. September gemergter Fix (PR #100377) beendet diese Tauzieherei endgültig: Der neue Config-Key skills.create_dir leitet agentenerstellte Skills in ein beliebiges Verzeichnis deiner Wahl – und jede Instruktion, die den Erstellungspfad nennt, vom skill_manage-Tool-Schema bis zum Prompt-Text selbst, rendert jetzt dein konfiguriertes Verzeichnis. Tool, Prompt und Config sind sich endlich einig.

Warum eine Prompt-Instruktion das nicht kann

Der Erstellungspfad von skill_manage war fest auf das profil-lokale Skills-Verzeichnis (~/.hermes/skills/) verdrahtet. In einen System-Prompt kannst du schreiben, was du willst – aber die Tool-Implementierung liest Konfiguration und Pfade, keine Absichten. Wenn der Mensch „leg die Skills in /opt/brain/skills“ sagte und das Tool nach ~/.hermes/skills/ schrieb, wurde der Skill trotzdem erstellt, gefunden und genutzt – es schlug also nichts laut fehl; die Diskrepanz sammelte nur stillschweigend Skills am falschen Ort an, die dann von Hand verschoben werden mussten. Der Schreibschutz-Hack „funktionierte“ nur, indem er den Standardpfad scheitern ließ – eine miserable Art, eine Policy durchzusetzen.

Der Fix: ein Config-Key, und die Instruktionen folgen

Füge das zu ~/.hermes/config.yaml hinzu:

skills:
  create_dir: /opt/brain/skills

Das ist die gesamte Einrichtung. Jetzt:

  • skill_manage erstellt neue Skills dort_resolve_skill_dir() des Tools zielt auf das konfigurierte Verzeichnis (beim ersten Schreiben wird der Pfad per mkdir angelegt, das Verzeichnis muss also noch nicht existieren).
  • Jede Instruktion, die den Pfad nennt, zieht mit. Die Schema-Beschreibung des skill_manage-Tools, der Prompt-Text und die Doku rendern das konfigurierte Verzeichnis alle über display_skill_create_dir() – der Agent sieht also in seiner eigenen Tool-Dokumentation „neue Skills landen in /opt/brain/skills/“ statt eines veralteten hartkodierten Pfads.
  • ~ und ${VAR} werden expandiert, und relative Pfade lösen sich gegen HERMES_HOME auf – create_dir: team-skills bedeutet also $HERMES_HOME/team-skills.
  • Ein Wert, der auf das Standard-Verzeichnis auflöst, wird wie nicht gesetzt behandelt (das ist bereits das Verhalten), damit du nicht versehentlich genau denselben Pfad konfigurierst.

Auffindbarkeit, Vertrauen und das Schreibschutz-Szenario

Ein Skill ist nur nützlich, wenn der Agent ihn wiederfindet. Wenn skills.create_dir gesetzt ist, wird das Verzeichnis direkt nach dem lokalen Skills-Ordner in die Skill-Suchreihenfolge aufgenommen (mit Dedup gegen external_dirs) – dort erstellte Skills sind auffindbar, vertrauenswürdig und direkt patchbar. Der Schreibschutz-Hack, mit dem die ganze Geschichte begann, wird damit auch unnötig: Zeigt create_dir woanders hin, blockiert ein schreibgeschütztes lokales Skills-Verzeichnis die Erstellung überhaupt nicht mehr, denn das Tool fasst es nie an.

Eine Anmerkung zur Rangfolge: vertrauenswürdige projekt-lokale Skills (das eigene .hermes/skills/ eines Repos – siehe unseren Project-Local-Skills-Guide) behalten eine höhere Priorität als der lokale Ordner, und das ändert sich nicht.

Wohin damit zeigen?

  • Ein Team-Vault in git (/opt/brain/skills oder ein Repo-Unterverzeichnis): Jeder Agent auf der Maschine – und über Sync hinweg maschinenübergreifend – erstellt in das gemeinsame Vault, und die Skills werden wie Code versioniert und reviewed.
  • Ein Scratch- oder Workspace-Verzeichnis: Halte ~/.hermes/skills/ sauber für handverfeinerte Skills und lass experimentell erstellte Skills irgendwo Wegwerfbarem landen.
  • Ein Multi-Profil-Home: Richte create_dir auf einen gemeinsamen Ort, damit unter jedem Profil erstellte Skills für alle sichtbar sind.

Release-Status

skills.create_dir wurde am 1. September gemergt (PR #100377, rettet Community-Arbeit von @giwaov, mit Namensgebung von @Frosti7) und liegt auf main – es kam nach dem v0.21.0-Tag (veröffentlicht am 31. August), ist also nicht in v0.21.0 enthalten; es kommt mit dem nächsten Release. Zum breiteren Skills-Ökosystem siehe unseren Top-8-Skills-Guide und den Beitrag zum Desktop-Skills-Hub.