# Re-Review 2 — Spec 1: Platform Omurgası (EGT-21) — Sürüm 1.2 — 25.07.2026

> **Review type:** spec-review (re-review)
> **Previous reviews:** `review-omurga-spec-2026-07-25.md` (v1.0 — REJECTED, 12 bulgu) · `review-omurga-spec-2026-07-25-r2.md` (v1.1 — REJECTED, 12/12 kapalı + 2 yeni bulgu N-1/N-2)
> **Upstream document(s) read:** `cati-dokumani.md`, `docs/arch/mimari-kararlar.md` (AD-01…AD-28), `docs/mevzuat-kurallari.md` (bu review zincirinde Read ile açıldı; v1.2'de upstream'e dokunan yeni iddia yalnız AD-11/AD-24/AD-27 atıflarıdır, üçü de doğrulandı)
> **Other cross-referenced documents:** `mevzuat/` doğrulamaları ilk review'da yapıldı; v1.2 yeni mevzuat iddiası içermiyor
> **Stage locks in effect:** None

---

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

| Bulgu | Düzeltme iddiası | Doğrulama | Durum |
|---|---|---|---|
| N-1 — K-2/K-5 sınıflandırma mekanizması adressizdi; K-4'te silinmez-kayıt istisnası yoktu | §8.4'e K-6…K-9, K-4'e istisna | **K-6** (satır 239): saklama dayanağı ve süresi tanım aşamasında, Spec 2'de, AD-27 mevzuat kaydı / AD-24 evrak türü üzerinden — köprü kuruldu ve adres doğru (AD-27 kısıt setinde "kayıt saklama süresi" zaten var; AD-24 özel nitelikli bayrağında saklama süresi tanımlı). **K-7** (satır 240): tanımlı → K-2, tanımsız → K-5, varsayılan kişisel veri lehine — karar kuralı deterministik. **K-8** (satır 241): önceki bulguda sayılan orta kuşağın üçü de (mali kayıt/fatura, teklif yazışmaları, rıza kayıtları) isimleriyle adreslenmiş. **K-9** (satır 242): makine-okunur süre şartı K-4'ün "otomatik" iddiasını uygulanabilir kılıyor. **K-4** (satır 232): silinemez kayıtlar (imzalı yoklama, sınav sonucu, onaylı teklif snapshot'ı — AD-11 listesiyle uyumlu) yalnız anonimleştirilir. Eski K-6/K-7 (maskeleme, 3. taraf analitik) K-10/K-11'e kaymış; spec içinde eski numaralara başka referans yok — numaralandırma tutarlı. | ✅ KAPANDI |
| N-2 — §3.1 ile §13 "aynı e-posta" satırı çelişiyordu | §13'e tür istisnası (çözüm a) + §3.1'e model gerekçesi | §13 satır 356: aynı tenant'ta **aynı kullanıcı türünde** engellenir, farklı türlerde bulunabilir; §3.1'e açık referans. §3.1 satır 49: iki ayrı kullanıcı kaydı, aynı e-postayı taşıyabilir, her kayıt kendi türünün auth matrisine ve izolasyon sınırına tabi; çift bağlamlı tek hesabın neden reddedildiği gerekçelendirilmiş (tür auth yöntemini ve izolasyon sınırını belirliyor — §3'ün kuralıyla tutarlı gerekçe). Çelişki giderildi. | ✅ KAPANDI |
| r2 Open Question 2 — KVKK hukuki rol ayrımı | §15'e madde 7 | Satır 399: veri sorumlusu/işleyen ayrımı, iki senaryonun (tenant üzerinden başvuru / doğrudan başvuru) sonuçlarıyla birlikte tanımlanmış ve hukuk teyidine + ayrı ticket'a bağlanmış. Spec seviyesinde çözülemeyeceği tespiti doğru — hukuki sıfat sözleşme ve fiili işleme yapısına bağlı bir tespittir. | ✅ AÇIK NOKTA OLARAK KAYITLI |
| r2 Open Question 3 — erişim logu 10 yıl tabanı | Zaten §15/6'da | Değişiklik gerekmedi; doğru. | ✅ |

## Upstream Coverage Matrix (nihai durum)

v1.1 matrix'inde ⚠ kalan satırların v1.2 durumu (✓ satırları değişmedi; v1.2'nin dokunduğu bölümler yalnız §3.1, §8.4, §13, §15):

| Upstream § / madde | 1.0 | 1.1 | 1.2 | Kanıt |
|---|---|---|---|---|
| AD-02 + çatı 2. tur #14 — bağımsız katılımcı tenant, fatura kesilebilir | ⚠ | ⚠ | ✓ | §3.1 + §13 tür istisnası — model artık iç çelişkisiz |
| AD-16 gerekçesi — silinemez kayıt ↔ KVKK silme hakkı | ❌ | ⚠ | ✓ | §8.4 K-2…K-9 + gerekçe paragrafı; sınıflandırma adresi kuruldu |
| Kırmızı çizgi 12 / AD-11 — kritik kayıt hard delete edilmez | ✓ | ⚠ | ✓ | K-4 silinemez-kayıt istisnası; AD-11 listesiyle birebir |
| Diğer tüm satırlar (AD-03/04/05/06/07/08/13/17/18/19/20/21/22/23, çatı §5/§15, mevzuat referansları) | — | ✓ | ✓ | v1.1'de kapanmıştı; v1.2 bu bölümlere dokunmadı |

Matrix'te ⚠/❌ satır kalmadı.

## ✅ What works

- **K-6…K-9 zinciri, N-1'in istediği köprüyü tam kuruyor:** karar kuralı (K-7) deterministik, varsayılan yön bilinçli seçilmiş ve gerekçelendirilebilir (tanımsızda saklamak KVKK ihlali üretirdi, tanımsızda silmek ancak tanım eksikliğinde mevzuat riski üretir — K-8 bu riski downstream spec'lere açık yükümlülük olarak dağıtarak kapatıyor), otomasyon şartı (K-9) K-4'ün "elle hatırlanmaya bırakılmaz" iddiasını temenni olmaktan çıkarıyor.
- **K-4'ün silinemez-kayıt istisnası** kırmızı çizgi 12 ve AD-11 ile birebir hizalı; "kaydın kendisi durur, kişiyi işaret eden veri geri döndürülemez biçimde kaldırılır" ifadesi anonimleştirmenin doğru tanımı.
- **N-2 çözümü (a) doğru tercihti:** tür istisnası, §3'ün "tür → auth matrisi + izolasyon sınırı" kuralını bozmadan senaryoyu karşılıyor; çift bağlamlı hesabın reddi gerekçesiyle birlikte yazılmış — gelecekte aynı tartışmanın yeniden açılmasını engeller.
- **§15/7 iyi formüle edilmiş bir açık nokta:** iki senaryonun sonuçları şimdiden yazılmış, böylece hukuk teyidi geldiğinde spec değişikliği minimal olacak.
- Revizyon geçmişi tablosu (1.2 bölümü) yapılanları doğru ve eksiksiz yansıtıyor.

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

Scope içinde bulgu **yok**. İki not (bulgu değil, downstream'e taşıma önerisi):

- **Not 1:** K-7'nin "tanımsızsa silinir" varsayılanı, mevzuat-zorunlu bir veri sınıfının tanımının unutulması hâlinde yasadışı silme riski taşır; K-8 bunu downstream spec'lere yükümlülük olarak dağıtıyor. Bu yükümlülüğün kaybolmaması için Spec 2 ve mali/teklif spec'lerinin review'larında **"K-8 sınıflandırması yapıldı mı?"** bir upstream coverage satırı olmalıdır.
- **Not 2:** Aynı e-postalı iki hesabın (gerçek kişi tenant) giriş akışında nasıl ayrıştığı — panel/giriş noktası türü belirler — spec'ten türetilebilir ve çelişki üretmez; plan aşamasında açıkça bağlanması yeterli. Magic link zaten hesaba (kullanıcı kaydına) üretildiği için e-posta paylaşımı belirsizlik doğurmaz.

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

Spec'in kendi §15 listesi (7 madde) güncel ve doğru sahiplendirilmiş; bu review yeni açık soru eklemiyor. Plan aşamasına geçmeden cevap bekleyenler spec'te zaten işaretli: §15/6 (10 yıl tabanı) ve §15/7 (KVKK rol ayrımı) hukuk teyidine bağlı — ikisi de omurga planını bloklamaz, ilgili parametre/politika alanları tanımlanıp değer teyide bırakılabilir.

## Verdict: ✅ APPROVED

v1.1'in iki bulgusu da (N-1, N-2) tam olarak ve doğru araçlarla kapatılmış; düzeltmeler yeni çelişki veya boşluk üretmiyor — yeni K-numaralandırması dahili olarak tutarlı, §13 istisnası §3'ün tür kuralını bozmuyor. Üç review turunun toplam 14 bulgusunun tamamı kapalı, upstream coverage matrix'inde ⚠/❌ satır kalmadı, kalan belirsizlikler §15'te sahipli açık nokta olarak kayıtlı. Spec, plan aşamasına geçmeye hazırdır. Son karar kullanıcınındır.
