refactor(brain): Auto-Magie raus — ARIA entscheidet selbst, Stefan fragt im Zweifel

Mut zur Luecke: -595 Zeilen Auto-Magie-Code raus, weil sie heute Abend
4 Bugs verursacht und 0 echten Mehrwert geliefert hat. Plus Stefan
hat zu Recht erkannt dass das System mit Pentest/Audit-Workflows
kollidieren wuerde (Whitelist-Pflege noetig).

Weg:
- aria-brain/api_heuristic.py geloescht (282 Zeilen Cross-Session-
  Tracking, Hint-Generation, Bypass-Detection)
- aria-brain/agent.py: Auto-Scaffold-Block, Bypass-Detection-Block,
  _upsert_bypass_lesson-Methode (-146 Zeilen)
- aria-brain/main.py: /skills/can-bash-host Endpoint
- aria-brain/prompts.py: api_heuristic_section-Parameter
- docker-compose.yml: managed-settings-Copy aus proxy-Command
- proxy-patches/pre-tool-bash-block.js (PreToolUse-Hook)
- proxy-patches/managed-settings.json (claude-CLI Hook-Config)

Bleibt (kostet nichts, hilft):
- Alle 18 seed_rules (sind in DB, machen keine Last)
- skill_scaffold Tool (ARIA kann es manuell nutzen)
- Anti-Friedhof + snake_case + Safe-Name-Mapping (passive Validierung)
- Versionierung + Rollback (P4, hat sich bei PATH-Bug bewaehrt)
- 50k stdout Truncate-Fix

scaffold-reflex seed_rule umgeschrieben: kein 'SOFORT scaffold'-
Reflex mehr, stattdessen 4-Punkte-Heuristik (parametrisierbar?
wiederkehrend? exploratory? im Zweifel: Stefan fragen). Pentest-
Workflows bleiben damit ad-hoc Bash ohne false-positive
Skill-Vorschlaege.

Existierende auto-feedback-Memories in der DB bleiben — sind nuetzliche
Lehren, werden nicht mehr automatisch erweitert. Stefan kann sie via
Diagnostic-Gehirn-Tab loeschen wenn sie nerven.

Dank git ist alles rueckholbar. Wenn doch wieder Auto-Magie gewuenscht:
git revert auf 8d5991f.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 02:47:32 +02:00
parent 8d5991f364
commit d12bfd0302
9 changed files with 30 additions and 625 deletions
+28 -32
View File
@@ -440,45 +440,41 @@ SEED_RULES: List[dict] = [
{
"migration_key": "seed/skill-rule/scaffold-reflex",
"type": "rule",
"title": "Skill-Regel: skill_scaffold-Reflex (mit Cross-Session-Counter)",
"title": "Skill-Regel: Skill-Frage statt Skill-Reflex",
"category": "skills",
"content": (
"Brain trackt server-side wie oft Du in den letzten 24h dieselbe "
"externe API per Bash-curl angerufen hast (Cross-Session-Counter, "
"siehe '## API-Heuristik'-Block im System-Prompt). \n"
"Wenn Du dieselbe API mehrmals per Bash anrufst, frag Dich:\n"
"\n"
"AUTO-SCAFFOLD: Brain legt fuer wiederkehrende Hosts mit "
"bekanntem Template (Spotify, GitHub, OpenAI, OpenWeather, …) "
"automatisch einen Skill an — Du siehst ihn dann in `## Skills` "
"ohne dass Du ihn selbst gebaut hast (Markierung "
"`author=aria-auto`). NUTZE diesen Skill via `run_<name>` "
"direkt, NICHT mehr Bash-curl gegen den Host. Beispiel: wenn "
"`spotify` plotzlich in der Skill-Liste auftaucht → "
"`run_spotify({method:'GET', path:'/v1/me/player'})` statt "
"Token holen + curl.\n"
"1. **Parametrisierbar?** Stabile 1-5 Args (action, path, body) "
"→ Skill-Kandidat. Jeder Aufruf anders (neuer Endpoint, "
"modifizierter Body, neue Hypothese) → KEIN Skill.\n"
"\n"
"Wenn die API-Heuristik einen Eintrag OHNE Suggestion zeigt "
"(unbekannter Host): rufe selbst `skill_scaffold` mit dem "
"passenden Template (oauth-api / apikey-api / file-process), "
"BEVOR Du wieder Bash-curl machst.\n"
"2. **Wiederkehrend?** Stefan wird das mehrfach pro Tag/Woche "
"brauchen → ja. Einmal-Spike heute → nein.\n"
"\n"
"Warum: jede Chat-Anfrage ist eine eigene Claude-CLI-Session — "
"Du siehst nicht dass Du gestern auch schon 10x Spotify gecurled "
"hast. Der API-Heuristik-Block ist Dein Cross-Session-Gedaechtnis. "
"Wenn er leer ist: alles OK, weitermachen. Wenn nicht: scaffolden.\n"
"3. **Exploratory?** Pentest, Audit, Code-Review, Reverse-"
"Engineering, Recherche → Hypothesen-Iteration. KEIN Skill, "
"auch wenn 100x derselbe Host. Bleib bei ad-hoc Bash oder "
"`ssh aria@host` zur VM-Host.\n"
"\n"
"Templates (ausfuehrliche Doku siehe skill_scaffold-Tool):\n"
" - **oauth-api**: Spotify/GitHub/Reddit/Google/Discord. Token "
"kommt vom Brain mit Auto-Refresh.\n"
" - **apikey-api**: OpenWeather/OpenAI/Twilio. Key landet im "
"config_schema → CFG_<NAME> ENV. Stefan setzt ihn in Diagnostic.\n"
" - **file-process**: PDF/Bild/JSON-Wandler. process()-Stub, "
"danach `skill_update` mit echtem Code.\n"
"4. **Im Zweifel: frag Stefan.** Lieber 5 Sekunden Bestaetigung "
"als zehn unsinnige Skills im Friedhof. Beispiele:\n"
" - 'Stefan, das ist mein 3. X-Call diese Woche — soll ich "
"daraus einen Skill machen?'\n"
" - 'Das hier ist Pentest-Workflow, ich bleibe bei ad-hoc "
"Bash, ok?'\n"
"\n"
"Belohnung konkret: ein Spotify-Skill macht 'welches lied laeuft' "
"in 1 Tool-Call (~3s) statt 3-5 Bash-Roundtrips (~13-20s). Stefan "
"merkt das sofort. Ein einmaliger Scaffold-Aufwand spart hunderte "
"Bash-Roundtrips."
"Du musst NICHT automatisch scaffolden. Brain trackt NICHT mehr "
"wer wieviele Calls gegen welchen Host gemacht hat. Du "
"entscheidest mit Sinn und Verstand — oder fragst nach.\n"
"\n"
"Wenn Du einen Skill bauen willst, hast Du drei Tools:\n"
" - `skill_scaffold` mit Template — einfachster Weg fuer "
"Standard-Pattern (siehe oauth-api/apikey-api/file-process).\n"
" - `skill_create` mit eigenem entry_code — fuer alles was "
"in kein Template passt.\n"
" - `skill_update` — wenn ein vorhandener Skill nur erweitert "
"werden muss (was meistens der Fall ist)."
),
},
{