self-rewriter
Use for Self-Rewriting Core: AST analyze, patch, commit.
SKILL.mdskills/self-rewriter/SKILL.md
GitHubSelf-Rewriting Core Skill
Der Self-Rewriter ist ein autonomes Core-Evolution-Tool, das das openamer_cli/ Verzeichnis
auf Ineffizienzen scannt, Patches generiert, validiert und automatisch committed.
Standort
- Script:
C:\Users\damir\openamer-repo\scripts\self-rewriter.py - Cron-Kopie:
$OPENAMER_HOME\scripts\self-rewriter.py - Arbeitsverzeichnis:
.rewriter/im Repository-Rootpending/— generierte Patches (unified diff)applied/— angewandte Patches (Archiv)reports/latest.json— letzter Scan-Report
CLI-Usage
python scripts/self-rewriter.py --scan # Core analysieren
python scripts/self-rewriter.py --suggest # Verbesserungen anzeigen
python scripts/self-rewriter.py --patch # Patches generieren (max 3)
python scripts/self-rewriter.py --apply # Patches validieren + commiten + mergen
python scripts/self-rewriter.py --all # Full Cycle (scan -> patch -> apply)
python scripts/self-rewriter.py --all --dry-run # Full Cycle nur anzeigen
python scripts/self-rewriter.py --scan --max-patches 5
python scripts/self-rewriter.py --apply --yes # Non-interactive apply
python scripts/self-rewriter.py --repo /pfad/zum/repo --scan
Exit-Codes
| Code | Bedeutung |
|---|---|
| 0 | Nichts zu tun — alles sauber |
| 1 | Patches verfuegbar (issues gefunden) |
| 2 | Patches angewandt und committed |
Was wird analysiert (AST-basiert)
- Doppelte Imports — selbes Modul mehrfach importiert
- Zu lange Funktionen — > 100 Zeilen
- Fehlende Type Hints — Parameter/Rueckgabewert ohne Type Annotation
- Leere except-Bloecke —
except: pass(sicherheitsrelevant) - TODO/FIXME-Kommentare — markierte Stellen im Code
Patches & Git-Workflow
- Branch
rewriter-tmpwird vonmainerstellt - Patches werden via
patch -p0/patch -p1angewandt py_compilevalidiert die Syntax- Bei Erfolg: Commit + Merge zurueck zu
main(--no-ff) - Branch wird geloescht
- Angewandte Patches wandern von
pending/->applied/
Cron-Job (alle 6h)
Der Cron-Job self-rewriter-scan laeuft alle 360 Minuten (6h) und fuehrt
self-rewriter.py --scan aus. Er prueft ob neue Issues aufgetaucht sind
und postet nur bei Aenderungen einen Report.
Troubleshooting
- "Core-Verzeichnis nicht gefunden": Script sucht in
~/openamer-repo/und Umgebung. Mit--repo /absoluter/pfadexplizit angeben. - Patch-Apply schlaegt fehl: Patches arbeiten gegen den aktuellen
main-Branch. Bei Konflikten sind manuelle Eingriffe noetig — der rewriter-tmp Branch bleibt dann bestehen. - Report nicht gefunden:
--suggestund--patchbrauchen einen vorherigen--scan-Report.