feat(brain): Skill-Regeln als seed_rules — idempotent auf Brain-Boot in DB

Stefans Skill-Friedhof (9 Spotify-Skills, hardcoded Credentials) hatte
keine systemische Ursache im Code, sondern im fehlenden Leitplanken-
Memory. Lösung: System-Seed-Regeln als pinned Hot Memory, mit jedem
Deploy ausgerollt.

- aria-brain/seed_rules.py: 5 rule-type Memories (skill_list-vor-create,
  no-version-suffix, update-not-recreate, no-hardcoded-credentials,
  config-schema-for-settings), source="seed", pinned=true
- Lifespan ruft seed_rules.apply() beim Brain-Start — idempotent via
  migration_key (alte Versionen werden vor dem Schreiben gelöscht)
- skill_create Tool-Description um PFLICHT-VORHER-Block ergänzt:
  skill_list-check, kein Versionssuffix, oauth_get_token bei OAuth,
  config_schema statt hardcoded Werte

Editieren = SEED_RULES-Liste anpassen, Brain neu starten. Im Gegensatz
zu brain-import/ (User-Saatgut, gitignored, manueller Diagnostic-Klick)
gehört das hier zum Brain-Code und rollt mit jedem Deploy aus.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 22:55:05 +02:00
parent 3e0cfef63c
commit 474e2c6c50
3 changed files with 170 additions and 1 deletions
+12
View File
@@ -72,6 +72,18 @@ META_TOOLS = [
"Erstelle einen neuen Skill (wiederverwendbare Faehigkeit). "
"Skills sind IMMER Python — jeder Skill bekommt seine eigene venv "
"mit den pip_packages die er braucht.\n\n"
"PFLICHT VORHER:\n"
" - `skill_list` aufrufen und pruefen ob ein passender Skill schon "
"existiert. Wenn ja: `skill_update` statt neu anlegen.\n"
" - Name OHNE Versionssuffix waehlen (kein `-v2`, `_v3`, `-new`, "
"`-fixed`, `-aria`, `-ctl`). Versionsverwaltung ist intern, Du brauchst "
"nur einen klaren Namen.\n"
" - Bei OAuth-Services (Spotify, Google, GitHub etc.): NIEMALS "
"client_id/client_secret/Tokens in den Code schreiben. Nutze "
"`oauth_get_token('<service>')` — das macht Auto-Refresh. Sonst muss "
"Stefan sich alle 60min manuell neu einloggen.\n"
" - Bei konfigurierbaren Werten (User-IDs, Endpoints, Defaults): "
"ueber `config_schema` deklarieren, NICHT hardcoden.\n\n"
"HARTE REGEL — IMMER Skill anlegen wenn: die Loesung erfordert eine "
"pip-Library. Sonst muesste der Install bei jedem Container-Restart "
"neu laufen (Brain hat keinen persistenten State ausser /data/skills/).\n\n"