Ya yapay zeka kod asistanın uygulamanı gizlice, sadece üretimde ortaya çıkan hatalarla sabote ediyorsa?
İşte eslint-plugin-llm-core’un doğuş hikâyesinde gizlenen kabus bu. Düşünün: LLM dostunuzla özellikler üretip duruyorsunuz. Testler yeşil. İnceleyiciler onaylıyor. Pat — dağıtım günü, çözülmemiş promise’lar ve yutulan hatalarla her şey karman çorman. Ben yaşadım bunu. Yaratıcısı olarak, tam 500 yapay zeka kaynaklı kod hatasını parçalara ayırdıktan sonra.
Ve işte çarpıcı kısım — sadece yakınmadı. eslint-plugin-llm-core’u dövdü: Yapay zekanın en sevdiği 20 kurala odaklanmış, lazer gibi bir ESLint eklentisi. Büyükanne usulü en iyi uygulamalar değil bunlar. LLM’lerin her seferinde yanlış ürettiği tam o kalıpları vuruyor.
Bakın.
Array callback’lerinde karman çorman async/await. Hata yutan boş catch blokları, şeker gibi. ‘Callback hell 2.0’ diye bağıran derin iç içe geçmişlikler. Sanki yapay zeka JavaScript’in en keskin kenarlarını gözü bağlı jonglörlük yapmaya karar vermiş.
Neden peki? LLM’ler syntax ve mutlu yollarında parlıyor — steroidli pattern matcher’lar. Edge case’ler, tutarlılık ya da gerçek dünya pisliği ekleyin? API’leri halüsinasyon yapıyor, null’ları atlıyor, sihirli sayılar uyduruyor. Araştırmalar doğruluyor: %40’ı eksik kod bloğu, %20’si yanlış okuma, %15’i köşe vakası körlüğü.
Yapay Zeka Kodu Neden Üretimde Patlıyor?
LLM’leri hevesli stajyer gibi düşünün. Eğitimlerde zeki, fabrika zemininde sıfır.
Unit testleri geçiyorlar çünkü kaos mock’lanıyor. Üretim? Öngörülemez veri akıyor — null’lar, timeout’lar, kısmi arızalar. Yapay zeka kodu dağılıyor.
Klasik örnek:
const results = items.map(async (item) => { return await fetchItem(item); });
Güzel görünüyor değil mi? Yapay zeka asistanın yazdı. Testler geçiyor. Kod incelemesi onaylıyor.
Üretim vurunca, results promise dizisi oluyor — beklediğin değerler değil.
eslint-plugin-llm-core’un no-async-array-callbacks kuralı anında yakalıyor: “57:27 error Array metodlarına async fonksiyon geçmeyin llm-core/no-async-array-callbacks. Bu kalıp çözülmüş değerler değil, promise dizisi döndürür. Bunun yerine Promise.all() ya da for…of döngüsü kullanın.”
Eğitici değil mi? Sadece “düzelt” demiyor — açıklıyor, böylece yapay zekan bile bir sonrakine öğreniyor.
Ya da boş catch’ler:
try { await processData(data); } catch (e) { // TODO: handle error }
“63:11 error Boş catch bloğu hataları sessizce yutuyor.” Bam. Yok oldu.
İç içelik mi? Yapay zeka if’leri 1999 piramitleri gibi yığar. prefer-early-return kuralı düzleştiriyor: Veri yoksa erken çık. Temiz, okunaklı, kurşun geçirmez.
Bu abartı değil. Gerçek katliamlardan madenlenmiş pattern’lar — ampirik çalışmalar, 333 hata, 558 kötü snippet. Yapay zekanın kör noktaları, kodlanmış.
eslint-plugin-llm-core Yapay Zekayı Baş Yazar Yapacak mı?
Kısa cevap: Sandığından yakın.
2000’lerin başındaki JSLint’i hatırlayın? JavaScript browser tuhaflıkları ve kovboy kodunun vahşi batısıydı. Crockford’un linter’ı yola soktu, modern web dev’ini döşedi. eslint-plugin-llm-core? Yapay zeka çağının JSLint’i.
Cesur tahminim — ve orijinalin kaçırdığı içgörü: Bu eklenti yapay zekayı ‘asistan’dan ‘güvenilir denetimsiz co-pilot’a çeviriyor. Hata mesajlarını prompt’lara eğit, çıktı kalitesi roketliyor. İlk günden üretim hazır diff’ler. Copilot ya da Claude’a dadılık yok.
Kurumsal laf kalabalığı kontrolü: Evet, typescript-eslint kuralları var. Ama o TypeScript safı, spec manyağı. Bu? Yapay zeka savaşına göre ayarlanmış. İkisini kullan — fıstık ezmesi ve çikolata gibi.
| typescript-eslint | eslint-plugin-llm-core |
|---|---|
| TypeScript doğruluğu | Yapay zeka hata kalıpları |
| Spec odaklı mesajlar | Düzeltmeyi öğreten açıklamalar |
| Dil uyumu | LLM başarısızlık modları |
Kurulum? Basit ötesi.
``` 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.