Belgeler / Kalite ve yönetişim
N−1'e karşı ölçüm
Yuli'nin kaliteyi nasıl ölçtüğü, her zaman önceki sürümle karşılaştırdığı ve ajanı test etmeden önce iyileştirmeye nasıl zorladığı.
Yuli kodun kalitesini sürekli ölçer ve her zaman önceki sürümle, yani N−1 ile karşılaştırır. Kural basittir: asla geriye, her zaman ileriye.
Her şey kendiliğinden ölçülür: projeyi açtığınızda, her build, test veya doğrulamadan sonra, her yeni commit'te ve siz yazarken düzenleyicide.
Kalite paneli
Durum çubuğundaki göstergeden (örneğin A · σ 4,5 ▲) veya alt panelden açılır.
| Sekme | Ne işe yarar |
|---|---|
| Özet | Genel not, sigma, borç, clean code, ajanın son ölçümü, sonraki iyileştirmeler ve N−1 ile karşılaştırma. |
| Uygulamalar | 14 clean code uygulaması, faydaları ve önce nereye müdahale edileceği. |
| Ölçüm | Ajanın Ölçüm aşaması: karar, denetimler, önce → sonra ve turlar. |
| Karar | Yeniden düzenlemek mi, evrimleştirmek mi? Kriterler, matris ve ekonomik kriter. |
| Bakım kolaylığı | Bakım kolaylığı endeksi, bilişsel karmaşıklık, tekrar, bağımlılık ve borç. |
| Önleme | Güvenlik, performans, sağlamlık ve erişilebilirlik bulguları. |
| Mimari | Projenin mimari kuralları. |
| Test sağlığı | Test paketinin durumu. |
| Kalite | Döngüsel karmaşıklık, hata Pareto'su, kapsam ve testler. |
| Boyut | Satırlar, diller, bileşenler ve fonksiyon puanları. |
| Performans | Son profile göre metot başına maliyet ve REST istemcisinin gecikmesi. |
| İstatistik | Olasılıklar, dağılımlar ve eğilimler. |
| Six Sigma | DMAIC, DPMO, sigma seviyesi, FPY/RTY, Cpk ve kontrol grafiği. |
| Geçmiş | Her metriğin serileri ve N−1'e göre değişiklikler. |
| Rehber | Her şeyin arama özellikli, sade bir dille açıklaması. |
Her bölümde, onu jargon kullanmadan açıklayan bir «?» düğmesi vardır. «Veri yok» asla uydurulmuş bir sıfır değildir: ölçüm için neyin eksik olduğunu söyler.
Çubuk düğmeleri
- Yenile: yeniden ölçer.
- Sürümü kaydet: ölçümü geçerli sürüm olarak kaydeder. Önceki sürüm N−1 olur.
- Raporu aç:
docs/quality/reporte-calidad.mddosyasını yazar ve düzenleyicide açar.
N−1 nedir
Yuli yalnızca iki sürüm saklar: geçerli ve önceki. Git ile, çalışma ağacı temizken yapılan her yeni commit bir sürümdür. Sürümü kaydet düğmesine bastığınızda ve ajan ölçüm yaptığında da yeni bir sürüm oluşur.
Her metrik ▲ (iyileşti), ▼ (kötüleşti) veya = (aynı) ile gösterilir. «Kötüleşti» kararı için tek bir metriğin kötüleşmesi yeterlidir.
Not
Genel not A ile E arasında değişir ve ISO/IEC 25010'un on özelliğini birleştirir: işlevsellik, verimlilik, güvenilirlik, sağlamlık, güvenlik, bakım kolaylığı, anlaşılabilirlik, kullanılabilirlik, taşınabilirlik ve uyumluluk.
| Not | Puan | Anlamı |
|---|---|---|
| A | ≥ 80 | Mükemmel |
| B | ≥ 65 | İyi |
| C | ≥ 50 | Kabul edilebilir |
| D | ≥ 35 | Yetersiz |
| E | < 35 | Kritik |
Kritik bir güvenlik açığı güvenliği 59 (D) ile, yüksek bir açık ise 79 (B) ile sınırlar. Ciddi bir sorun asla yeşilde kalmaz.
14 clean code uygulaması
Her uygulama, hedefi olan ve her dilde ölçülen bir sayıdır.
| Uygulama | Nasıl ölçülür | Hedef |
|---|---|---|
| Açıklayıcı | KLOC başına açıklayıcı adlar ve sihirli sayılar | ≥ %95 |
| Küçük fonksiyonlar | 60 satır veya daha kısa metotlar | ≥ %95 |
| Tekrardan kaçının | 6 veya daha fazla satırlık tekrarlanan bloklardaki satırlar | ≤ %3 |
| Okunabilir kod | Bilişsel karmaşıklığı ≤ 15 olan metotlar | ≥ %95 |
| Hata yönetimi | KLOC başına sağlamlık bulguları | 0 |
| Basit yapılar | Döngüsel karmaşıklık ≤ 10 ve iç içelik ≤ 4 | ≥ %95 |
| Tutarlı stil | Girinti, satır uzunluğu ve adlandırma kuralı | ≥ 90 |
| Anlamlı adlar | Gürültü olmayan değişkenler (tmp, aux, data2) |
≥ %98 |
| Az parametre | 5 veya daha az parametreli metotlar | %100 |
| Kalıtım yerine bileşim | Kalıtım derinliği ≤ 3 | %100 |
| Küçük sınıflar | ≤ 300 satır ve ≤ 20 metot | %100 |
| Ölü kod yok | Yoruma alınmış, erişilemeyen veya kullanılmayan kod | 0 |
| Test yazın | Mantık içeren ve kendi testi olan dosyalar | %100 |
| Sürekli yeniden düzenleyin | N−1'e göre gerilemeler | 0 |
Clean code notu, verisi olan uygulamaların ortalamasıdır. 80 veya üzeri hedeftedir.
Six Sigma ve hata yoğunluğu
| Metrik | Nedir |
|---|---|
| Hata yoğunluğu | Bin satır (KLOC) başına hata sayısı; %95 güven aralığıyla birlikte. |
| DPMO | Milyon fırsat başına hata (her satır bir fırsattır). |
| Sigma seviyesi (σ) | Klasik ölçekte DPMO: 6σ = 3,4 DPMO; 4σ ≈ 6.210. 4,5σ'dan itibaren yeşil. |
| Cpk | Döngüsel karmaşıklığı ≤ 10 tutabilme yeteneği: ≥ 1,33 yeterli. |
| FPY / RTY | İlk denemede başarılı olan build'ler, testler ve doğrulamalar. |
Orta veya daha yüksek önem derecesindeki bir bulgu hata sayılır.
Ajanın Ölçüm aşaması
8 aşamanın beşincisidir; Uygulama ile Test arasında yer alır. Yalnızca görevin dokunduğu kodu başlangıç sürümüne karşı ölçer.
Üç an
| Aşama | Ne zaman | Ne yapar |
|---|---|---|
baseline |
Kod değiştirilmeden önce | Görevin başlangıç sürümünü (N−1) kaydeder. |
measure |
Uygulamadan sonra | Dokunulan kodu N−1 ile karşılaştırır ve bir karar verir. |
after |
Testler yeşilken | N−1 ile karşılaştırır ve raporu yeniden yazar. |
Ne zaman geçer
Aşağıdaki denetimlerin tümü karşılanmalıdır:
- Hiçbir şey N−1'den kötüleşmedi.
- En az bir kusur giderildi (ya da hiç kusur yok). Yoğunluğun aynı kalması yetmez.
- Temiz kod iyileşti; kabul düzeyinin altındaki dosyalarda.
- Yeni kod en baştan temiz.
- Mantığın testleri var.
Bir dosya, 0 hatası ve 90 veya üzeri clean code notu varsa kabul edilmiş sayılır. Kabul edilmiş bir dosyadan yalnızca kötüleşmemesi beklenir.
Kararlar
| Karar | Ne olur |
|---|---|
| Geçti | Görev kendiliğinden Test aşamasına geçer. |
| Tekrarla | Neyin düzeltileceğinin dosya ve satırla birlikte tam listesiyle Uygulama'ya döner. |
| Tur sınırı | Turlar tükendi: Test'e geçer ve bekleyenler görevde kalır. |
| Ölçülecek kod yok | Görev koda dokunmadı. |
Ölçüm atlanamaz. Ajan ölçülmemiş kodla Test, İnceleme veya Teslim aşamasına geçmeye çalışırsa Yuli bunu reddeder. Claude Code, Kiro, Codex ve Antigravity için de aynısı geçerlidir.
İyileştirme, yazılımın yaptığını asla değiştirmez: aynı kullanım senaryoları, aynı girdiler ve çıktılar.
Sonucu nerede görürsünüz
Asla sohbette değil. Ajan, kararı ve önce → sonra durumunu içeren tek bir satır verir. Ayrıntılar Ölçüm sekmesinde ve Kalite'de gör düğmesiyle görev çubuğundadır.
Ayarlar
Ölçüm sekmesinde veya .ai/quality.json içinde:
| Ayar | Varsayılan | Aralık |
|---|---|---|
| Testlerden önce ölçüm zorunludur | Evet | — |
| En fazla uygulama ↔ ölçüm turu | 3 | 1 ile 10 arası |
| Kabul düzeyi (temiz kod) | 90 | 50 ile 100 arası |
Bir kalite sözleşmesi varsa, onun kabul ve tur değerleri önceliklidir.
Düzenleyicide
- Her metodun üstünde:
CC · CoG · MI · satır · kapsam · maliyet. - İlk satırda: dosyanın notu, clean code notu ve N−1'e göre değişimi.
- İpuçları: anlamsız adlar, sihirli sayılar veya ölü kod; tam satırında.
Rapor
Kaydedilen her sürümde yeniden yazılan tek bir belge: docs/quality/reporte-calidad.md. «Ajan ölçümü» bölümünü içerir. Çalışma verileri .ai/state/quality/ içinde durur ve asla depoya gönderilmez.
Dürüst sınırlar
- Karmaşıklık ve önleyici kurallar metin üzerindeki kalıplarla hesaplanır. Yanlış pozitifler olabilir. Java ve JSP ayrıca sözdizimi ağaçlarını kullanır.
- Tahminler (Time-to-Market, maliyetler) düzenlenebilir varsayımlara sahip tanınmış modelleri kullanır. Karar vermek için kullanılırlar, sözleşmeye bağlı bir bütçe olarak değil.