Was, wenn euer KI-Coding-Kumpel eure App heimlich mit Bugs vermint, die erst in der Produktion zünden?
Genau das steckt hinter der Entstehung von eslint-plugin-llm-core. Stellt euch vor: Ihr düst mit eurem LLM-Partner durch, hämmert Features raus. Tests grün. Reviewer nicken. Peng – Deploy-Tag, und alles ist ein Chaos aus ungelösten Promises und verschluckten Fehlern. Ich hab’s erlebt. Der Erfinder erst recht, nach der Analyse von 500 KI-generierten Code-Flops.
Der Hammer: Er hat nicht nur gemeckert. Er hat eslint-plugin-llm-core geschmiedet – ein präzise gezieltes ESLint-Plugin mit 20 Regeln genau auf KIs Schwachstellen. Keine Omas-Best-Practices. Diese knacken die Muster, die LLMs immer wieder vermasseln.
Schaut her.
Async/await verhunzt in Array-Callbacks. Leere Catch-Blöcke, die Fehler fressen wie Bonbons. Tief verschachtelte Höllen, die nach Callback-Hölle 2.0 schreien. Als hätte die KI JavaScripts schärfste Kanten gejagt – mit verbundenen Augen.
Warum? LLMs glänzen bei Syntax und Happy Paths – Pattern-Matcher auf Speed. Edges, Konsistenz, Realwelt-Dreck? Da halluzinieren sie APIs, überspringen Nulls, erfinden Magic Numbers. Studien bestätigen: 40 % fehlende Code-Blöcke, 20 % Fehllesungen, 15 % Blindheit für Corner-Cases.
Warum explodiert KI-Code in der Produktion?
LLMs sind wie eifrige Azubis. Blitzsmart aus Tutorials, ahnungslos auf der Shopfloor.
Unit-Tests knacken sie, weil sie das Chaos mocken. Produktion? Unvorhersehbare Datenfluten – Nulls, Timeouts, Partial Failures. KI-Code bricht zusammen.
Klassiker:
const results = items.map(async (item) => { return await fetchItem(item); });
Sieht gut aus, oder? Eure KI hat’s geschrieben. Tests passen. Code-Review grünes Licht.
Produktion trifft zu – und results ist ein Array aus Promises, nicht den Werten, die ihr wolltet.
eslint-plugin-llm-core’s Regel no-async-array-callbacks riecht es sofort: “57:27 error Avoid passing async functions to array methods llm-core/no-async-array-callbacks. This pattern returns an array of Promises, not the resolved values. Consider using Promise.all() or a for…of loop instead.”
Lernfördernd, oder? Nicht nur “reparier das” – es erklärt, damit sogar eure KI nächstes Mal dazulernt.
Oder leere Catches:
try { await processData(data); } catch (e) { // TODO: handle error }
“63:11 error Empty catch block silently swallows errors.” Zack. Erledigt.
Verschachtelung? KI stapelt ifs wie 1999. prefer-early-return glättet das: Keine Daten? Früh raus. Sauber, lesbar, kugelsicher.
Kein Hype. Pattern aus echtem Gemetzel geschürft – empirische Studien, 333 Bugs, 558 miese Snippets. KIs Blind Spots, kodifiziert.
Macht eslint-plugin-llm-core die KI zu eurem neuen Lead Dev?
Kurz: Näher dran, als ihr denkt.
Erinnert ihr euch an JSLint um 2000? JavaScript war Wildwest mit Browser-Quirks und Cowboy-Code. Crockfords Linter peitschte es zurecht, ebnete modernen Webdev. eslint-plugin-llm-core? Das ist das JSLint für die KI-Ära.
Mein kühner Tipp – und der Insight, den das Original verpasst: Dieses Plugin macht KI vom ‘Helferlein’ zum ‘vertrauenswürdigen Copiloten’. Trainiert euer LLM mit seinen Error-Messages in Prompts, und die Output-Qualität explodiert. Production-ready Diffs ab Tag eins. Kein Babysitten von Copilot oder Claude mehr.
Corporate-Check: Klar, typescript-eslint-Rules. TypeScript-pur, Spec-verrückt. Das hier? KI-Kriegsgetunt. Beides nutzen – wie Erdnussbutter und Schoko.
| typescript-eslint | eslint-plugin-llm-core |
|---|---|
| TypeScript-Korrektheit | KI-Bug-Muster |
| Spec-Fokus-Nachrichten | Erklärungen zum Fixen |
| Sprachkonformität | LLM-Fehlmodi |
Install? Simpel wie nix.
npm install -D eslint-plugin-llm-core
// eslint.config.js
import llmCore from 'eslint-plugin-llm-core';
export default [
{
plugins: {
'llm-core': llmCore,
},
rules: {
...llmCore.configs.recommended.rules,
},
},
];
Null Config. Recommended Rules zünden, fangen die async-Falle