diff --git a/aria-brain/agent.py b/aria-brain/agent.py index 2474131..cef7dd7 100644 --- a/aria-brain/agent.py +++ b/aria-brain/agent.py @@ -101,7 +101,7 @@ META_TOOLS = [ "parameters": { "type": "object", "properties": { - "name": {"type": "string", "description": "kurz, kebab-case, a-z 0-9 - _"}, + "name": {"type": "string", "description": "kurz, snake_case (NUR a-z 0-9 _). KEINE Bindestriche — die brechen das Tool-Schema beim claude-max-api-proxy. Statt 'yt-dlp-download' → 'yt_dlp_download'."}, "description": {"type": "string", "description": "Was kann der Skill? 1 Satz."}, "entry_code": { "type": "string", @@ -216,7 +216,7 @@ META_TOOLS = [ "type": "object", "properties": { "name": {"type": "string", - "description": "Skill-Name (kebab-case, ohne Versionssuffix)"}, + "description": "Skill-Name (snake_case, NUR a-z 0-9 _, KEINE Bindestriche, ohne Versionssuffix)"}, "template": {"type": "string", "enum": ["oauth-api", "apikey-api", "file-process"], "description": "Eines der drei Templates"}, diff --git a/aria-brain/seed_rules.py b/aria-brain/seed_rules.py index 03d2ce9..8640d9f 100644 --- a/aria-brain/seed_rules.py +++ b/aria-brain/seed_rules.py @@ -39,6 +39,32 @@ SEED_RULES: List[dict] = [ "ihn mit `skill_update`. Lege keinen Duplikat-Skill an." ), }, + { + "migration_key": "seed/skill-rule/snake-case-names", + "type": "rule", + "title": "Skill-Regel: Skill-Namen nur snake_case (keine Bindestriche)", + "category": "skills", + "content": ( + "Skill-Namen MUESSEN snake_case sein — nur a-z, 0-9 und _ " + "(Underscore). KEINE Bindestriche.\n" + "\n" + "Grund: das `run_`-Tool wird ueber den claude-max-api-proxy " + "im OpenAI-Format an die CLI uebergeben. Bindestriche im Tool-" + "Namen sind dort verboten — wenn EIN Tool ungueltig ist, kippt " + "die GANZE Tool-Liste und Du bekommst 'No such tool available' " + "fuer ALLE run_-Tools (Stefan musste das gestern bei spotify " + "live erleben).\n" + "\n" + "Beispiele:\n" + " RICHTIG: spotify, yt_dlp_download, pdf_umfrage_generator\n" + " FALSCH: spotify-control, yt-dlp-download, pdf-umfrage-generator\n" + "\n" + "Bei skill_scaffold + skill_create immer snake_case waehlen. " + "Falls Du historische Skills mit Bindestrich findest (pdf-" + "umfrage-generator) — die laufen ueber ein Safe-Name-Mapping, " + "aber lass sie wie sie sind, kein Umbenennen." + ), + }, { "migration_key": "seed/skill-rule/no-version-suffix", "type": "rule",