Claude schrieb 3.000 Codezeilen, anstatt pywikibot zu importieren – eine Fallstudie darüber, wie KI-Agenten bestehende Bibliotheken ignorieren

Ein Entwickler wollte mit Claude Code (Opus 4.7) Tippfehler auf Fandom-Wikis korrigieren. Anstatt vorhandene Bibliotheken per pip zu installieren, schrieb Claude ~3.000 Zeilen Python neu, die pywikibot, mwparserfromhell und den RETF-Regelsatz von Wikipedia implementierten – ohne einmal das Web nach bereits existierenden Lösungen zu durchsuchen.
Was gebaut wurde vs. was existierte
- Wikitext-Stripper: 122 Zeilen Regex für verschachtelte Vorlagen, <nowiki>, <pre>, <ref> mit Vorlagen, Farb-Tags. Existierend:
mwparserfromhell.parse(text).strip_code() - Tippfehler-Wörterbuch: 18 Einträge (teh→the, recieve→receive, occured→occurred, …). Existierend: RETF, ~4.000 Regeln, von der Community seit 2007 gepflegt
- Edit-Runner: 10 Kopien, ~250 LOC pro Stück, mit Cookie-Auth, rohem CSRF-Fetch, maxlag-Backoff, Konflikt-Wiederholung. Existierend:
pywikibot.Page.save()– die migrierte Version hat 8 Zeilen - Kosmetische Korrekturen: Eigenbau-Muster. Existierend:
pywikibot/scripts/cosmetic_changes.py, seit ~2010 ausgeliefert - Wiki-Familienkonfiguration: 13 handgefertigte SiteDefinitions in einem families/-Verzeichnis. Existierend: pywikibot/families/*.py, wird upstream mitgeliefert
Der Entwickler verbrachte den Tag damit, triviale Fehler im selbstgebauten Stripper zu debuggen – ASCII-Art, die in Matches eindrang, Codeblöcke, die tokenisiert wurden. Jeder Fehler wurde mit einem weiteren Regex-Fall geflickt.
Migration zu Bibliotheken
Eine zweiminütige Google-Suche lieferte Links zu allen drei Bibliotheken. Nach der Migration fiel lib/ von ~3.000 auf 1.259 Zeilen. Der Stripper wurde zu einem Wrapper um mwparserfromhell, zehn Edit-Runner schrumpften zu einem Wrapper um pywikibot, und RETF-Regeln werden nun zur Laufzeit abgerufen.
Bemerkenswerterweise argumentierte Claude, das Tippfehler-Wörterbuch zu behalten – alle 18 Einträge waren bereits in RETF enthalten, einige schlechter formuliert. Das Modell verhandelte, Arbeit zu bewahren, die von der gerade importierten Bibliothek strikt dominiert wurde.
Warum dies passiert
- Benchmarks bestrafen das richtige Verhalten: Öffentliche Programmier-Benchmarks laufen abgeschottet – kein Netzwerk, kein pip install, keine Websuche. Durch RL auf diese Evaluierungen lernen Modelle, nicht auf Bibliotheken zurückzugreifen.
- Sunk-Cost-Verteidigung: Sobald 3.000 Zeilen im Kontext existieren, behandelt das Modell sie als tragend. Das Wörterbuch überlebte nicht, weil es nützlich war, sondern weil es da war.
Der Autor bemerkt dasselbe Muster auch anderswo – Claude schreibt benutzerdefiniertes SVG, anstatt eine Diagrammbibliothek zu verwenden, und argumentiert dann, das SVG sei „einfacher anzupassen“. Ist es nicht.
📖 Zur vollständigen Quelle: HN AI Agents
👀 Siehe auch

Claude Code v2.1.229: Fernsteuerung, Plugin-Marktplätze und kritische Korrekturen
Claude Code v2.1.229 fügt Remote-Control --continue, Plugin-Marketplace-Befehlsquellen und SSE-Keepalives hinzu und behebt Abstürze, MCP-OAuth und Datei-Watcher-Leaks.

Kostenlose Bibliothek mit 789 herunterladbaren Skills für Claude Code
clskills.in ist eine durchsuchbare Plattform, die 789 herunterladbare .md-Skill-Dateien für Claude Code in über 60 Kategorien anbietet, darunter Unternehmensplattformen, Programmiersprachen und DevOps-Tools. Jeder Download enthält eine README-Datei und einen automatischen Installations-Prompt.

Bewahre meine Klaue: Backup-Dienst für OpenClaw-Arbeitsbereiche
Keep My Claw ist ein Backup-Dienst, der OpenClaw-Arbeitsbereichsdaten lokal verschlüsselt, bevor sie in Cloudflare R2 hochgeladen werden. Er verwaltet Speicherdateien, Cron-Jobs, Skills, Zugangsdaten und Konfigurations-Snapshots mit geplanten Backups und Ein-Kommando-Wiederherstellungen.

Küsten: Containerisierte Hosts für die Ausführung mehrerer Localhost-Umgebungen
Coasts ist eine Docker-in-Docker-Lösung, die das Problem des gleichzeitigen Betriebs mehrerer Localhost-Umgebungen löst, Portkonflikte, Secrets und Volume-Topologien behandelt, ohne komplexe Skripterstellung zu erfordern.