WY · BÖLÜM 07 · FÖY 122
YAZ-122 · Yazılım & Teknik · ~1-2 dk

Dağınık local değişiklikleri tek Conventional Commit mesajına çevir

Yapıştırdığın diff'e karşılık kopyalanmaya hazır bir Conventional Commit mesajı: doğru tip, kapsam ve "neden"i anlatan bir gövde.

Kanca

Gün boyu birbirinden bağımsız birkaç şeyi kurcaladın; şimdi git diff önünde duruyor ve tek satır "fix" yazıp geçmek üzeresin. Üç ay sonra o satıra bakan yine sen olacaksın ve neden değiştirdiğini hatırlamayacaksın.

Hamle — Claude / ChatGPT (ikisi de çalışır)
Prompt — kopyala & yapıştır
Sen bir Conventional Commit yazım yardımcısısın. Sana bir git diff (veya değişiklik özeti) vereceğim. Görevin bu dağınık değişiklikleri düzgün bir commit mesajına çevirmek.

Kurallar:
- Sadece verdiğim diff'e dayan. Kodda görmediğin bir şeyi VARSAYMA, uydurma.
- Bir bilgi diff'ten çıkmıyorsa (ör. hangi işe/issue'ya bağlı, neden yapıldı) o alana "EKSIK: ..." yaz ve bana sor; kendin doldurma.
- Başlık formatı: <tip>(<kapsam>): <özet> ; 72 karakteri geçme, emir kipi kullan ("ekle", "düzelt", "kaldır").
- İzinli tipler: feat, fix, refactor, docs, test, chore, perf, build, ci.
- Kapsam, değişen ana modül/dosya alanı olsun; net değilse parantezi boş bırak.
- Değişiklik mantıksal olarak birden fazla iş içeriyorsa bunları AYRI commit önerileri olarak listele; hepsini tek mesaja tıkıştırma.
- Başlıktan sonra boş satır, sonra gövde: NE değiştiğini değil NEDEN değiştiğini yaz, madde madde.
- Geriye dönük kırıcı bir değişiklik varsa gövdenin altına "BREAKING CHANGE:" satırı ekle.
- Tamamını Türkçe yaz.

Diff / değişiklik özeti:
[BURAYA git diff çıktısını ya da değişiklik listeni yapıştır]
Çıktı

Yapıştırdığın diff'e karşılık kopyalanmaya hazır bir Conventional Commit mesajı: doğru tip, kapsam ve "neden"i anlatan bir gövde. Değişiklik birden fazla iş içeriyorsa bunları ayrı commit'lere bölen bir öneri de gelir. Bir commit için genelde bir iki dakika.

Kariyer çentiği

Temiz ve okunur commit geçmişi, kod incelemesinde ve git blame açan herkesin gözünde seni "işini düzgün belgeleyen kişi" yapar.

Sınır

Araç sadece verdiğin diff'i görür; "neden" bilgisini sen eklemezsen tahmin edemez ve gövde zayıf kalır, ayrıca gizli/kurumsal kod parçalarını yapıştırmadan önce şirket veri politikanı kontrol et.

Örnek — bu prompt ne üretir?
Örnek girdi
git diff (üç dosyada dağınık değişiklik):

diff --git a/src/auth/login.js b/src/auth/login.js
@@ function login(user) {
-  if (user.token) {
+  if (user && user.token) {
     return session.start(user.token);
   }

diff --git a/src/utils/format.js b/src/utils/format.js
@@
-function fmt(d) {
-  return d.toISOString();
+function formatDate(d) {
+  return d.toISOString().split('T')[0];
 }
-module.exports = { fmt };
+module.exports = { formatDate };

diff --git a/README.md b/README.md
@@
 npm install
+npm run build
Çıktı

Diff birbirinden bağımsız 3 mantıksal iş içeriyor; tek mesaja tıkıştırmamak için 3 ayrı commit öneriyorum.

---

Commit 1

```

fix(auth): giriş akışında tanımsız kullanıcıya karşı koruma ekle

  • user nesnesi tanımsız geldiğinde user.token erişimi hata fırlatıyordu; guard eklenerek çağrı güvenli hâle getirildi
  • EKSIK: gerekçe / issue — bu koruma hangi hata raporuna ya da göze çarpan çökmeye bağlı? (senin eklemen gerek)

```

Commit 2

```

refactor(utils): tarih biçimleyiciyi formatDate olarak adlandır

  • fmt fonksiyonu formatDate olarak yeniden adlandırıldı ve dışa aktarım adı da güncellendi
  • çıktı tam ISO zaman damgası yerine yalnızca tarih (YYYY-MM-DD) döndürecek şekilde değişti
  • EKSIK: gerekçe — neden yalnızca tarihe geçildi / neden yeniden adlandırıldı? (diff'ten çıkmıyor)

BREAKING CHANGE: dışa aktarılan fmt kaldırıldı; artık formatDate kullanılmalı ve dönüş değeri saat/dakika içermiyor. Eski fmt'i import eden çağrı yerleri kırılır.

```

Commit 3

```

docs(readme): kurulum adımlarına build komutunu ekle

  • kurulum akışına npm run build adımı eklendi
  • EKSIK: gerekçe — build adımı neden zorunlu hâle geldi? (diff yalnızca eklendiğini gösteriyor, nedenini değil)

```

---

Not: Her gövdedeki EKSIK: satırlarını sen doldur; diff'te "neden" bilgisi görünmediği için o kısımları tahmin etmedim.

ÜRETİM: TEM 2026 · CLAUDE Bu kayıt eşlenmiş örnek girdi ve çıktı içerir. Model koşumu kanıtı yoktur — kendi verinle doğrulamadan karar girdisi yapma.

Kendi verinle çalıştır
Verini aşağıya yapıştır; prompt seninkiyle birleşip çalıştırmaya hazır tek bloğa dönüşsün. Sonra tek dokunuşla Claude ya da ChatGPT'de aç.
Hazır prompt — verini bekliyor
Sen bir Conventional Commit yazım yardımcısısın. Sana bir git diff (veya değişiklik özeti) vereceğim. Görevin bu dağınık değişiklikleri düzgün bir commit mesajına çevirmek.

Kurallar:
- Sadece verdiğim diff'e dayan. Kodda görmediğin bir şeyi VARSAYMA, uydurma.
- Bir bilgi diff'ten çıkmıyorsa (ör. hangi işe/issue'ya bağlı, neden yapıldı) o alana "EKSIK: ..." yaz ve bana sor; kendin doldurma.
- Başlık formatı: <tip>(<kapsam>): <özet> ; 72 karakteri geçme, emir kipi kullan ("ekle", "düzelt", "kaldır").
- İzinli tipler: feat, fix, refactor, docs, test, chore, perf, build, ci.
- Kapsam, değişen ana modül/dosya alanı olsun; net değilse parantezi boş bırak.
- Değişiklik mantıksal olarak birden fazla iş içeriyorsa bunları AYRI commit önerileri olarak listele; hepsini tek mesaja tıkıştırma.
- Başlıktan sonra boş satır, sonra gövde: NE değiştiğini değil NEDEN değiştiğini yaz, madde madde.
- Geriye dönük kırıcı bir değişiklik varsa gövdenin altına "BREAKING CHANGE:" satırı ekle.
- Tamamını Türkçe yaz.

Diff / değişiklik özeti:
[BURAYA git diff çıktısını ya da değişiklik listeni yapıştır]

Yapıştırdığın veri tarayıcından çıkmaz — WhiteYaka'ya gönderilmez. Prompt panoya kopyalanır; açılan sohbete Ctrl/⌘ + V ile yapıştırırsın.

i Bu föy örnek girdi ve çıktı içerir; yapısal doğrulama ve ölçütlü prompt koşumu henüz kaydedilmedi.

Bülten kaydı kapalı.

Bu sayfa e-posta adresi toplamaz ve liste kaydı başlatmaz. 160 hamlenin tamamı giriş yapmadan açık.