fix(brain): 16. seed_rule — Skills sind erweiterbar, nicht heilig

Beobachtung 30.05.2026: Stefan bittet ARIA via skill_update den
spotify-Skill so anzupassen dass currently-playing strukturiert
ausgegeben wird (Track/Artist/Album/Device/Zeit). ARIA antwortet
mit Defensiv-Reflex: 'Der Skill ist nur ein OAuth2-Wrapper, ich
kann das nicht im Wrapper bauen — ich schlage einen zweiten Skill
spotify_now_playing vor'.

Quatsch. Skills sind beliebiger Python-Code. Ein
`if path.endswith('currently-playing'): pretty_output()` waere
trivial im Skill drin gewesen. Stefan haette das nicht selbst
erkennen muessen — genau dafuer ist ARIA da.

Neue Regel macht das explizit:
- skill_get + skill_update ist der Standard-Workflow fuer
  Skill-Anpassungen
- Skills duerfen if-Verzweigungen, json-Parsing, Output-Filterung,
  mehrere Endpoints in einem Skill etc.
- 'Kann ich nicht in den Wrapper bauen' ist Antipattern
- 'Ich schlage einen zweiten Skill vor' ohne erst skill_update
  zu pruefen ist Antipattern
- Stefan ist KEIN Python-Entwickler — er nennt das ZIEL, ARIA
  baut das WIE.

Plus skill_update Tool-Description um den gleichen Gedanken
ergaenzt: 'Skills sind ganz normaler Python-Code, du kannst sie
beliebig erweitern.'

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 02:09:37 +02:00
parent 8c1476c2ca
commit 0a859f637b
3 changed files with 44 additions and 1 deletions
+36
View File
@@ -330,6 +330,42 @@ SEED_RULES: List[dict] = [
"Beim ersten Versuch direkt XML-Tag ergibt 3-5s statt 30s+."
),
},
{
"migration_key": "seed/skill-rule/skills-are-editable-python",
"type": "rule",
"title": "Skill-Regel: Skills sind beliebiger Python-Code, kein heiliger Vertrag",
"category": "skills",
"content": (
"Wenn Stefan eine Skill-Anpassung wuenscht — egal wie klein oder "
"gross — ist die Antwort fast IMMER:\n"
" 1. `skill_get('<name>')` aufrufen, Code lesen\n"
" 2. Ueberlegen wie sich Stefans Wunsch im Code umsetzen laesst\n"
" 3. `skill_update` mit dem neuen `entry_code`\n"
"\n"
"Skills sind GANZ NORMALER Python-Code. Du darfst und SOLLST:\n"
" - if-elif-else-Verzweigungen auf args / paths reagieren lassen "
"(z.B. `if action == 'current': pretty_output(); else: print(json.dumps(data))`)\n"
" - json.loads(), neue Helper-Funktionen, pip-Pakete via "
"pip_packages ergaenzen\n"
" - Outputs strukturieren oder filtern\n"
" - Mehrere Endpoints einer API in einem Skill bedienen\n"
"\n"
"Was Du NICHT sagen sollst (Antipattern, am 30.05.2026 passiert):\n"
" - 'Der Skill ist ein OAuth2-API-Wrapper, ich kann das nicht in "
"den Wrapper bauen' — Quatsch, Wrapper ist auch nur Python\n"
" - 'Ich schlage einen neuen Skill statt Update vor' — pruefe "
"ZUERST ob skill_update reicht. Anti-Friedhof greift ohnehin "
"wenn der Name kollidiert.\n"
" - 'Kann ich nicht' OHNE Code gelesen zu haben — erst "
"skill_get, dann beurteilen\n"
"\n"
"Stefan ist KEIN Python-Entwickler. Er nennt das ZIEL ('strukturierte "
"Track-Ausgabe bei welches-Lied'), Du baust das WIE im Code. "
"Wenn Du Dich rausredest, ist das Verschwendung — Stefan muss sich "
"dann selbst Python-Tipps merken die er nicht im Kopf hat. "
"Genau dafuer bist Du da."
),
},
{
"migration_key": "seed/skill-rule/scaffold-reflex",
"type": "rule",