Bu repo için LLM odaklı code review süreci: neleri kontrol etmek gerektiği, feedback'i invariants/testlere nasıl dayandıracağınız ve değişiklikleri verimli bir şekilde nasıl doğrulayacağınız (test-report.json dahil).
cd ~/.claude/skills
git clone https://github.com/atopile/atopile.git atopile mkdir -p ~/.claude/skills/code-review
curl -fsSL https://raw.githubusercontent.com/atopile/atopile/HEAD/.claude/skills/code-review/SKILL.md \
-o ~/.claude/skills/code-review/SKILL.md Bu beceri, bu depo içindeki otomasyonlu ve etkileşimli kod incelemeleri için kanonik rehberdir. LLM inceleyicileri (CI botları ve yerel ajanlar) için yazılmıştır.
.github/pull_request_template.md ile eşleştiğinden emin olun.ato dev test --llm -k <area> (hızlı filtre)ato dev compile (Zig/bindings değiştiyse)ato dev flags (davranış ConfigFlags'e bağlıysa)artifacts/test-report.json tercih edin.Doğruluk + invaryanlar
Performans / ölçeklenebilirlik
O(n^2) geçişleri, tekrarlanan grafik geçişlerini, aşırı ayırmaları veya hot path'lerdeki debug günlüğünü izleyin.Bakım kolaylığı
Test kapsamı
ato dev test --llm artifacts/test-report.json ve artifacts/test-report.llm.json yazarken, isteğe bağlı olarak artifacts/test-report.html yazar (bkz. test/runner/main.py).ato dev flags aracılığıyla envanter; el ile tutulan docslar yerine kod odaklı keşfi tercih edin.AGENTS.md ve ilgili .claude/skills/* doçlarına bakın.src/faebryk/core/solver/README.md + src/faebryk/core/solver/symbolic/invariants.py.CI inceleme yorumu yazarken, tam olarak bu yapıyı ve başka hiçbir şeyi üretin. Amaç, bir insanın saniyeler içinde bakabileceği minimal ve taranabilir bir özettir.
İncelemenin tek bir güncellenmiş yorumda kalması için gh pr comment --edit-last --create-if-none kullanın.
## <niyetin tek satırlık özeti>
| Metrik | Puan |
|--------|------|
| **Etki** | X/10 |
| **Test kapsamı** | X/10 |
<details>
<summary>🔴 Yüksek önem düzeyindeki sorunlar (N bulundu)</summary>
### 1. <kısa başlık>
<details>
<file:line — açıklama>
</details>
</details>
Etki, bir insanın bu PR'ı manuel olarak gözden geçirmesi ne kadar önemli olduğunu ölçer. Düşünün: "bu PR'ı gözden geçirmeyeceğim olsaydı, en kötü ne olabilirdi?"
| Puan | Anlam | Örnekler |
|---|---|---|
| 0–1 | No-op, yazım hatası düzeltme, yalnızca yorum, CI konfigürasyonu tweeti | Bir README'deki yazım hatasını düzeltme, versiyon pini yükseltme |
| 2–3 | Düşük risk, kullanıcılar üzerinde davranışsal etkisi olmayan izole değişiklik | İç değişkeni yeniden adlandırma, günlük satırı ekleme |
| 4–5 | Normal özellik veya hata düzeltmesi, sınırlı etki alanı | Yeni bir CLI bayrağı ekleme, ayrıştırıcı kenar durumunu düzeltme |
| 6–7 | Paylaşılan altyapıya dokunma, genel API yüzeyini değiştirme veya birden fazla modülü etkileme | Derleyici geçişini yeniden düzenleme, grafik geçiş mantığını değiştirme |
| 8–9 | Yüksek risk: API/ABI değişikliği, güvenliğe duyarlı, eşzamanlılık/yaşam döngüsü değişiklikleri, modül sınırları arasında büyük yeniden düzenleme | Zig↔Python sahiplik semantiğini değiştirme, çözücü kısıt yayılımını değiştirme |
| 10 | Kritik: veri kaybı riski, kimlik doğrulama baypası veya hot path'te sessiz doğruluk regressyonu | Bağlayıcıda güvenlik kontrolünü kaldırma, deinit sırasını değiştirme |
Emin değilseniz, yukarı yuvarlayın — aşırı işaretlemek bir şeyi kaçırmaktan daha ucuzdur.
Test kapsamı, değiştirilen davranışın mevcut veya yeni testler tarafından ne kadar iyi alıştırıldığını ölçer. Hem doğrudan test kapsamını HEM DE değiştirilen kodun geçişsel olarak test edilen bir hot path'te oturması durumunu göz önünde bulundurun.
| Puan | Anlam | Örnekler |
|---|---|---|
| 0–1 | Hiçbir test bu kod yolunu doğrudan veya geçişsel olarak dokunmaz | Hiçbir test eklenmemiş yeni modül |
| 2–3 | Bazı geçişsel kapsamlar ancak değiştirilen davranış için doğrudan testler yoktur | Test edilen koddan çağrılan yardımcı işlev, ancak belirli yeni dal alıştırılmamıştır |
| 4–5 | Kısmi kapsamı: bazı durumlar test edilmiş, diğerleri değil | Yeni işlevin mutlu yolu testi vardır ancak kenar durum veya hata yolu testleri yoktur |
| 6–7 | İyi kapsamı: çoğu dal alıştırılmıştır, veya değişiklik çok sayıda entegrasyon testinin geçtiği bir çok hot path'tedir | Grafik geçiş işlevini değiştirme (her derleme testi bunu alıştırır) |
| 8–9 | Güçlü kapsamı: adanmış testler artı değiştirilen davranış için entegrasyon kapsamı | Adanmış testleri olan yeni çözücü kuralı VE mevcut uçtan uca derlemelerde çalışır |
| 10 | Kapsamlı veya önemsiz derecede güvenli: değişiklik tamamen mekanikse, veya her dal test edilmişse | Değişkeni yeniden adlandırma (önemsiz derecede güvenli), veya %100 dal kapsamına sahip yeni işlev |
Davranış değiştiği halde test eklenmemiş veya güncellenmediyse, geçişsel kapsamadan bağımsız olarak puan ≤5 olmalıdır.
Yalnızca bu kategorilerdeki sorunları işaretleyin — diğer her şey PR yorumu için gürültüdür:
Sıfır sorun bulunursa, detaylar bloğunun içinde "Hiçbiri" yazın. Stil nitleri veya nice-to-have'lerle doldurmayın.
file:line referansı olmalı ve eylem alınabilir olmalıdır.Etkileşimli olarak gözden geçirirken (CI'da değil), daha konuşkan olabilirsiniz, ancak yine de her önemsiz olmayan iddianın temelini diff veya bir repo yoluna dayandırın (dosya + sembolü açıkça belirtin).
Geri bildirimi şu şekilde ayırın:
Eylem alınabilir önerileri tercih edin (ne değiştirecek + neden + nerede). Emin değilseniz, somut bir soru sorun ve belirsiz koda işaret edin.
2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.