# Review — docs/specs/sube-spec.md v0.3 — 20.10.2026

> **Review type:** spec-re-review
> **Previous review:** `docs/reviews/review-sube-spec-2026-10-20.md` (heyet 815, REJECTED, F-1…F-8)
> **Upstream document(s) read:** `proje-haritasi.md` §4.4 «Şubeler» bloğu (satır 892–906, güncel hâli — satır 902–904'teki 20.10.2026 ek kararları dahil) · YouTrack EGT-219 açıklaması
> **Other cross-referenced documents:** `CLAUDE.md` (17 kırmızı çizgi) · `docs/arch/mimari-kararlar.md` AD-06, AD-09, AD-11, AD-12, AD-21, AD-23 (tam metin), AD-25, AD-26 · kod kanıtları: `config/authorization.php` (izin adları, özellikle `invoice.*` ailesi), `config/business.php`, `app/Queries/Office/FinancialOverview.php`
> **Stage locks in effect:** None (spec aşaması); Sets'in 19–20.10.2026 kararları (eski + yeni dört karar: 3E şirketleri ayrı kavram, gider şubesi eğitimde seçilir, tavan düğüm başına, aday eğitmenler atama yetkisiyle) kilitli — tartışılmadı.

---

## Upstream Coverage Matrix

(Sıfırdan üretildi — önceki matrix kopyalanmadı.)

| Upstream § / madde | Reviewed doc'ta durumu | Kanıt |
|---|---|---|
| Harita 892: tek merkez 3E Group, şube yalnız verilen işleri yapar | ✓ | spec §2, §6 |
| Harita 893: şube yetenek setiyle kurulur, üç yetenek, sabit tip yok | ✓ | spec §2.2 |
| Harita 894: açık eğitimin şubeye görünmesi eğitim başına seçilir | ✓ | spec §7.2, kriter 6 |
| Harita 895: şube kaydı + dikey düğümler, AD-23 ağacı değişmez, menüler değişmez | ✓ | spec §2.1, §2.3, kriter 21 (815 F-7 kapandı) |
| Harita 896: yetenek = yetki tavanı | ✓ | spec §3, kriter 3 |
| Harita 897: şube backoffice'te kurulur | ✓ | spec §4, kriter 1 |
| Harita 898: eğitmen yeteneği olmayan şube yalnız merkezin açtığı eğitmenleri atar | ✓ | spec §8, kriter 7, 15, 24 (815 F-6 kapandı: aday listesi atama yetkisiyle, `instructor.view`'dan bağımsız) |
| Harita 899: şubenin planladığı eğitimin görünürlüğü planlarken seçilir | ✓ | spec §7.1, kriter 5, 13 |
| Harita 900: mali — şube yetkiyle kendi tablosu, merkezde şube kırılımı | ✓ | spec §9, §9.4, kriter 8, 19 (815 F-4 kapandı: gider şubesi tanımlı) |
| Harita 902: 3E şirketleri şubeden ayrı kavram, ayrı seri, şubeye seçilir, yetkiyle değişir, kesimde sabitlenir | ✓ | spec §9.1, §9.2, kriter 18 (815 F-2 kapandı: belge kimliği artık kesim anında sabitlenen bağımsız alan) |
| Harita 903: gider şubesi eğitimde seçilir | ✓ | spec §9.4, kriter 19 |
| Harita 904: tavan düğüm başına; aday eğitmenler atama yetkisiyle | ✓ | spec §3, §8 (815 F-5, F-6 kapandı) |
| Harita 906: şube yöneticisi yetkisi varsa kendi şubesine kullanıcı açar, şube dışındaki kişiyi göremez | ✓ | spec §5, §6 (Kullanıcı satırı), kriter 4, 22 (815 F-7 kapandı) |
| EGT-219 kapsam 5: müşteriyi açan kişinin otomatik ataması | ✓ | spec §6 (Müşteri satırı), kriter 20 (815 F-1 kapandı) |
| §9.1 gelir alanının değer kümesi / varsayılanlar / mevcut faturalar | ✓ | spec §9.3 tablosu (815 F-3 kapandı: üç ayrı satır — teklifli, teklifsiz, mevcut) |
| §9.1↔§9.2 çelişkisi (belge kimliği ↔ değiştirilebilir gelir alanı) | ✓ | spec §9.2 "kesildiği anda belgeye sabitlenir... kesildikten sonra şirket de gelir şubesi de değişmez" (815 F-2 kapandı) |
| Şube kapatma — mali kayıtların akıbeti | ✓ | spec §9.5 (yeni bölüm; 815 F-8 kapandı) |
| **Kabul kriterlerinin §9.3'ün üç varsayım dalını ve §9.5'i tam kapsaması** | ❌ | kriter 16 yalnız "teklifli" varsayımını test ediyor, teklifsiz-fatura ve mevcut-fatura (merkez) dallarını kapsamıyor; §9.5'in dört iddiasına (tarihçede sabit kalma, şirket kapanmaz, geçmiş rapor okunabilir, açık iş atama sorusuna girer) karşılık hiçbir kriter yok → **F-1 (yeni)** |
| AD-23: ağaç/kapsam çözümleyicisi değişmez, güvenlik kuralı 1-2 | ✓ | spec §2.1, §3, §5, §7.1 |
| AD-09 kural 2/3 | ✓ | spec §7.1, §9.1 (backoffice yalnız tanım yapıyor) |
| AD-06, AD-11, AD-12, AD-21 | ✓ | spec §4, §9.2, §9.5, §6 |
| Kırmızı çizgi 9 / AD-08: hardcode iş kuralı yok | ✓ | sayısal sabit yok |

---

## ✅ What works

- **815'in sekiz bulgusunun sekizi de kapandı**, her biri Sets'in cümlesiyle ve tarihle, upstream'deki (harita 902–904) yeni dört kararla birebir örtüşerek:
  - F-1 → §6 Müşteri satırına "açan kişi kendiliğinden atanır" eklendi + kriter 20.
  - F-2 → §9.1'de şirket şubeden tamamen ayrıştırıldı (ayrı kayıt, ayrı seri); §9.2'de "kesildiği anda sabitlenir, sonradan değişmez, düzeltme iptal+yeniden kesim" ile belge kimliği artık değişebilir gelir alanından bağımsız.
  - F-3 → §9.3 üç ayrı satırla (teklifli/teklifsiz/mevcut varsayılanı, değiştirme zamanlaması, audit) netleşti; `own`/`group`/`all` S-12'de tanımlandı.
  - F-4 → yeni §9.4 gider şubesini tanımlıyor, `FinancialOverview`'un üç gider akışını doğru adresliyor.
  - F-5 → §3'e "tavan düğüm başına işler" paragrafı ve somut İzmit/İzmir örneği eklendi; çok üyelikli kişi netleşti.
  - F-6 → §8'e "aday listesi atama yetkisiyle" satırı eklendi; `instructor.view` bağımlılığı kaldırıldı.
  - F-7 → kriter 21 (menü) ve kriter 22 (kullanıcı görünürlüğü) eklendi, §6'ya Kullanıcı satırı girdi.
  - F-8 → yeni §9.5 kapanış sonrası mali kayıtların tarihçede sabit kalmasını, şirketin kapanmamasını ve açık iş/faturaların §4'e girmesini ele alıyor.
- **Hiçbir düzeltme yeni bir çelişki üretmiyor:** §9.3 ↔ §9.4 ↔ §9.5 üçlüsü birbirini tutarlı tamamlıyor (gelir ve gider farklı şubelerde olabilir, "bilerek görünür" diye açıkça işaretlenmiş); §9.2'nin "mevcut faturalar merkez" kuralı §6'nın kapsamsız eğitim kuralıyla aynı desenle kurulmuş.
- **Düzeltme spec'in ana hedefinden sapmamış** — eklenen her madde Sets'in kendi cümlesiyle geliyor, reviewer'ın önerdiği bir çözüm yok.
- Açık soru 1 (muhasebeci teyidi) fiilen kapandı: harita 902'de Sets'in "ayrı firma için ayrı seri olmak zorunda" ifadesi artık bir soru değil, doğrudan karar; spec'in §9.1'i bunu aynı kesinlikte taşıyor.

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

**F-1 — Kabul kriterleri §9.3'ün üç varsayım dalını ve §9.5'i tam kapsamıyor.** Kriter 16 hâlâ v0.2'nin tek-varsayımlı cümlesini taşıyor: *"varsayılanı teklifi yazanın şubesidir"*. §9.3 artık üç ayrı satır tanımlıyor — teklifli fatura (teklif yazanın şubesi), **teklifsiz fatura** (faturayı kesen kişinin şubesi) ve **mevcut faturalar** (merkez, alan boşsa). Kriter 16 bu üç daldan yalnız birini test ediyor; teklifsiz fatura senaryosu (serbest kalem, bağımsız katılımcı — AD-12) ve geriye dönük faturaların merkez okuması hiçbir kriterde ölçülebilir hâlde değil. Aynı şekilde yeni §9.5'in dört iddiası — kesilmiş faturaların tarihçede şirket+şubesiyle sabit kalması, şirket kaydının şube kapanınca kapanmaması, kapanan şubenin geçmiş dönem raporlarının okunabilir kalması, henüz kesilmemiş fatura/açık eğitimlerin §4'ün atama sorularına girmesi — için kabul kriterlerinde (1–24) karşılık yok; kriter 10 genel kapatma akışını test ediyor ama mali kalemlerin bu akışa dahil edildiğini veya kapanış sonrası tarihçe davranışını adlandırmıyor. 815'in F-7'siyle aynı desen: karar spec metninde var, kabul kriteri onu ölçmüyor.

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

1. **Fiyat listesinin tekliği (§12)** — hâlâ açık (815'in OQ-2'si): §12 "istenmedi; fiyat listesi tektir" diyor ama spec'in her yerde uyguladığı tarih+alıntı formatı burada yok; v0.3 bu satırı değiştirmedi.

## Previous Findings Status

- F-1: ✅ Resolved — §6, kriter 20.
- F-2: ✅ Resolved — §9.1, §9.2.
- F-3: ✅ Resolved — §9.3, S-12.
- F-4: ✅ Resolved — §9.4.
- F-5: ✅ Resolved — §3.
- F-6: ✅ Resolved — §8.
- F-7: ✅ Resolved — §2.3/kriter 21, §6 Kullanıcı satırı/kriter 22.
- F-8: ✅ Resolved — §9.5.
- (815 Open Question 1 — muhasebeci teyidi) ✅ fiilen kapandı: harita 902'de Sets'in doğrudan ifadesiyle karar hâline geldi.
- (815 Open Question 2 — fiyat listesi) ❌ hâlâ açık, yukarıda tekrarlandı.

## ⚠️ Upstream Findings

Yok.

## Verdict: ❌ REJECTED

Önceki sekiz bulgunun tamamı kapandı ve hiçbiri yeni bir çelişki üretmedi — bu önemli bir ilerleme. Ancak matrix'te bir ❌ satır kaldı: kabul kriterleri, v0.3'ün kendi getirdiği ayrıntıyı (§9.3'ün üç varsayım dalı, §9.5'in dört iddiası) henüz ölçülebilir hâle getirmiyor. Tek bulgu da olsa scope içindeki her bulgu REJECTED sebebidir.
