# Re-review — Eğitmen, Ücretler ve Eğitmen Ataması Spec (`docs/specs/egitmen-spec.md`) — 2026-07-28 · R4

> **Review type:** spec-review (re-review)
> **Previous review:** `docs/reviews/review-egitmen-spec-2026-07-28-r3.md` — REJECTED, 3 bulgu + 1 nit
> **Upstream document(s) read:** `docs/arch/mimari-kararlar.md` (AD-19 kapasite notu bu turda yeniden okundu; AD-09/20/23 önceki turlardan) · önceki turların upstream seti geçerli — §7 yeniden yazıldığı için çatı §181/§185/§187 ve fiyatlama-spec §4.2 hizası yeniden kontrol edildi
> **Other cross-referenced documents:** `config/reference_codes.php` (28 karakterlik alfabe — AD-19'un yeni kapasite notuyla karşılaştırıldı)
> **Stage locks in effect:** None

---

## Önceki bulguların kapanış doğrulaması

| # | Durum | Kanıt |
|---|---|---|
| R3-1 (çakışma dili — blocker) | **Kapandı** | Üçüncü okuma seçilmiş ve dört metin tek dile inmiş: §6.2 (spec:170-177) "çakışmanın kaynağı her ikisinde de tektir: **kesinleşmiş atamalar**" + erken filtre / bağlayıcı tablosu + ⛔ "başka bir teklifi kabul etmiş olmak çakışma değildir"; §6.5 (spec:205-214) aynı ⛔ + Kabulde/Seçimde sütunlu mod tablosu; K-4 kaynağı, K-6 iki anın ağırlık farkını kriterleştiriyor — iki kriter artık aynı davranışı test ediyor. Eski modelden kalan örnek cümle de temizlenmiş |
| R3-2 (negatif sapma) | **Kapandı — model değişikliğiyle** | §7.2: her kalem **planlanan + gerçekleşen**; sapma türetilir, **işaretlidir** (spec:330); §7.3:348 eksi yönlü örnek açık (*"500 az harcadı da planlama kalitesinin bilgisidir"*); §7.6:422 planlanan 5.000 / fiş 4.000 → sapma −1.000 örneği. R3-2'nin tek yönlü karamsarlık tespiti yapısal olarak kalktı |
| R3-3 (spec:357 "sayısal") | **Kapandı** | spec:379 — *"iş parametresinin"*; sayısal olmak zorunda olmadığı, `always`→`never` örneği ve iş parametresi ↔ yetki/tenant sınırı ayrımı AD-09:99 ile birebir aynı dille |
| Nit (AD-19 kapasite) | **Kapandı** | AD-19:196 — alfabe 28 karakter (`config/reference_codes.php` ile uyumlu), **yıl başına ~615K**, kapasitenin tür başına değil yıl başına ortak olduğu benzersizlik kuralına bağlanmış |

## Korunması istenen davranışlar — yeni §7 diliyle kontrol

| Davranış | Durum | Kanıt |
|---|---|---|
| Onay bir kilit değildir | ✓ | §7.3 başlığın kendisi; 5.000→6.000 örneği gerçekleşene yazılıyor, plan sıfırdan kurulmuyor |
| Planlanan tutar geriye dönük değişmez | ✓ | §7.2 tablosunda ⛔; K-13 *"hiçbir yoldan değişmez"* — eski K-13'ten daha sert |
| Mükerrer masrafta insan kararı, otomatik mahsup yok | ✓ | §7.6:441 aynen duruyor; §7.8 ekranı karar verdirme gerekçesiyle |
| Eşik toplam üzerinden bakar, kalem bazında delinemez | ⚠ | §7.5 + K-15 korunmuş; ama §7.4:383 ile §7.5:401 toplamın **tabanını** farklı tanımlıyor — R4-3 |
| Cari ile maliyet iki ayrı soru | ✓ | §7.6:420; yeni kurgu ("maliyette planlananın yerine geçer, caride eklenir", spec:422) ayrımı öncekinden daha net anlatıyor |

---

## Upstream Coverage Matrix (yeniden üretildi)

| Upstream § / madde | Durum | Kanıt |
|---|---|---|
| çatı §5 · §105-106 · §172 · §174 · §219 · §185(rev) · Y-2016 · YÖN-2019 · fiyatlama-spec | ✓ | Önceki turlarda tek tek doğrulandı; bu turda ilgili bölümler değişmedi (§6 değişikliği yalnız çakışma dili) |
| çatı §181 (kâr = fiyat − maliyet) | ✓ | Yeni modelde kâr gerçekleşenler toplamından okunur (§7.2/3.2. soru); "kesinleşmedi" ibaresi duruyor (§7.6:443) |
| çatı §187 (masraf onayı, cari, ödendi takibi) | ✓ | §7.6-7.8 — masrafın onayla kalemin gerçekleşenine düşmesi çatının "maliyeti eğitime işlenir" kararıyla uyumlu |
| AD-08 (parametrik) | ✓ | Yeni modelde sabit sayı yok; kalem türleri sözlükten, eşik/kural admin-tanımlı |
| AD-09 · AD-19 · AD-20 · AD-23 | ✓ | R3 bulgu ve nit'leri kapandı; AD'ler ile spec artık aynı dili konuşuyor |
| AD-11 / kırmızı çizgi 12-13 | ✓ | K-25, §7.7 ödeme kaydı, §7.8 audit — değişmedi |
| Spec tanımı — kabul kriterleri | ⚠ | K-13/K-15/K-17 yeni modele doğru taşınmış; **K-18 taşınmamış** — R4-4 |

---

## ✅ What works

- **R3-1'in kapanışı örnek nitelikte:** "çakışmanın kaynağı tektir" cümlesi kuralı tek yerde tanımlayıp iki anı (erken filtre / bağlayıcı) ondan türetiyor; K-4 ile K-6 artık aynı davranışın iki yüzünü test ediyor, iki okumasını değil.
- **Planlanan/gerçekleşen modeli §7'yi gerçekten sadeleştirmiş:** "ek maliyet kaydı" diye ayrı bir varlığın kalkması, çifte saymanın aritmetik olmaktan çıkması (§7.6:412 — masraf tutar eklemez, gerçekleşeni doldurur) ve negatif sapmanın bedavaya görünür olması aynı kararın üç sonucu. Üç soruya (planlama kalitesi / kârlılık / tekrarlayan sorun) eşlenen alan yapısı (§7.2:334-338) modelin gerekçesini ölçülebilir kılıyor.
- **Önceki turlarda onaylanmış davranışların beşi de yeni dilde korunmuş** (yukarıdaki tablo; tek pürüz R4-3'ün taban çelişkisi).
- **Doğrudan-gerçekleşen girişi** (teklif alınmış, 3E ödeyecek) Sets'in anlattığı gerçek akışın karşılığı — modele sonradan iliştirilmiş değil, ondan türemiş duruyor.

---

## ⚠️ Findings & Risks (in-scope for this review type)

**R4-1 — Birden çok onaylı masrafın aynı kaleme düşmesi tanımsız; "gerçekleşeni dolu = mükerrer adayı" bayrağı meşru çok-fişli kalemi de işaretliyor.** §7.6:410 onaylanan masrafın *"ilgili kalemin gerçekleşeni **olur**"* diyor — tekil bir atama dili. Ama gerçek akışta bir kalem türüne birden çok fiş düşer: üç günlük eğitimde "yemek" kalemi 3 ayrı fişle gelir, planlanan 1.500'e karşı 400+500+450. Gerçekleşen **toplanır mı, son fiş mi yazar**? Yazılmamış. Aynı belirsizlik §7.8:502'nin bayrağını gürültüye çevirir: *"gerçekleşeni zaten dolu bir kalem de [mükerrer adayıdır]"* — meşru ikinci fiş de, gerçek mükerrer de aynı bayrağı alır ve ayrım tamamen onaylayana kalır; kural, onaylanan ikinci fişin sonucunu (toplama / üzerine yazma / ret beklentisi) söylemiyor. Bitişik küçük dikiş: fiş kaynaklı sapmada (planlanan 5.000, fiş 4.000 → sapma −1.000) K-13'ün zorunlu kıldığı **gerekçeyi kim verir** — masraf onay akışında sapma gerekçesi adımı tanımlı değil (fişin/onayın kendisi gerekçe sayılıyorsa bu yazılmalı).

**R4-2 — Doğrudan gerçekleşen girilen planlı kalem, "planlananı boş = planda hiç yoktu" sınıflandırmasıyla çakışıyor.** §7.2:328 teklifi alınmış ve 3E'nin ödeyeceği kalemin *"doğrudan gerçekleşen olarak"* kaydedilebileceğini söylüyor; §7.2:332 ise *"planda hiç olmayan bir kalem, **planlananı boş** gelen bir kalemdir"* diye sınıflandırıyor. Doğrudan-gerçekleşen girilen kalemin planlananı ne olur — boş mu kalır, gerçekleşenin kopyası mı yazılır? Boş kalırsa planın **ta kendisi olan** bir kalem raporda *"planda hiç yoktu"* sınıfına düşer ve 1. sorunun (planlama kalitesi) sapma toplamı bozulur; kopyalanırsa bunun kural olduğu yazılmalı. İki meşru okuma var, spec seçmiyor.

**R4-3 — Onay eşiğinin tabanı iki bölümde farklı: §7.4 "planlanan toplam maliyet", §7.5 "gerçekleşen varsa gerçekleşen".** §7.4:383 *"karşılaştırma **planlanan toplam maliyet** üzerindendir"* derken §7.5:401 ve K-15 toplamı *"gerçekleşen varsa gerçekleşen üzerinden"* hesaplıyor. Bu yalnız ifade kayması değil, delik: doğrudan-gerçekleşen girilen kalemlerin (§7.2:328 — normal akışın önemli parçası) **planlananı yoksa**, §7.4 okumasındaki "planlanan toplam" o kalemleri hiç saymaz — tüm kalemleri teklifli/kesin girilen bir eğitim `above_threshold` eşiğinin altında görünüp **onaydan kaçar**. Taban tek cümleyle tanımlanmalı (kalem başına *gerçekleşen yoksa planlanan* toplamı gibi) ve iki bölüm + K-15 aynı cümleyi kullanmalı — R3-1'de yapılanın aynısı.

**R4-4 — K-18 ve §9'un masraf onayı satırı eski dilde kalmış.** §7.8:502 onay ekranının *"eğitimin kalemleri: **planlanan, gerçekleşen** ve ödeme sorumlusu"* göstermesini zorunlu kılıyor — gerçekleşen sütunu, mükerrer adayı bayrağının (R4-1) dayandığı sinyal. K-18 (spec:622) ve §9'un *Bekleyen masraf onayları* satırı (spec:594) hâlâ *"planlanan kalemleri"* diyor. K-18'den yazılacak bir test, gerçekleşen sütunu olmayan bir ekranı geçirir — mükerrer sinyalinin kendisi kriterde yok.

---

## ❓ Open Questions (to be answered before next stage)

1. R4-1: aynı kaleme bağlanan ikinci onaylı masrafın sonucu ne — gerçekleşene **toplanır** mı? (Toplanıyorsa mükerrer bayrağının metni "dolu" değil "beklenenden yüksek" gibi bir sinyale evrilebilir; karar Sets'in.)
2. R4-2: doğrudan-gerçekleşen girilen kalemde planlanan alanının kuralı — boş mu, kopya mı?

---

## Verdict: ❌ REJECTED

R3'ün üç bulgusu ve nit'i eksiksiz kapandı; R3-1'in kapanışı dört metni tek kurala bağlayan örnek bir düzeltme ve korunması istenen beş davranışın tamamı yeni §7 dilinde yerinde. Kalan dört bulgu yeni modelin dikişleri: ikisi içerikli (R4-2 sınıflandırma çakışması, R4-3 eşik tabanı çelişkisi — doğrudan-gerçekleşen kalemli bir eğitimin onaydan kaçabilmesi), ikisi dar (R4-1 çok-fiş birikimi, R4-4 K-18/§9 dil güncellemesi). Dördü de §7.2/§7.4-7.5/§7.8 içinde birkaç cümlelik netleştirme; model kararının kendisi sağlam ve önceki davranışları koruyor. Kapatıldığında matrix yeniden üretilecektir.
