⚖️ VibeCoding KVKK & GDPR Kuralları
AI Kodlama Ajanları İçin Veri Koruma Hukuku, Privacy-by-Design Mimarisi ve Mevzuat Uyum Yönergesi (KVKK · GDPR · ETK/İYS · TKHK · 5651)
📖 Hukuki Vizyon ve Kapsam (Genel Bakış)
VibeCoding KVKK & GDPR Kuralları, yapay zeka kodlama ajanlarının (Claude Code, Cursor, Windsurf, OpenClaw, GitHub Copilot ve otonom yazılım iş akışları) geliştirdiği uygulamaların tek bir satış bile yapmadan veya yayına çıktığı ilk gün ağır idari para cezaları, erişim engelleri veya tazminat davalarıyla karşılaşmasını önlemek için bir Bilişim ve Veri Koruma Hukukçusu titizliğiyle tasarlanmıştır.
Geleneksel yazılım geliştirmede hukuki uyum genellikle ürün yayına çıktıktan sonra "eklenen metinler" sanılır. Oysa KVKK Madde 12 ve GDPR Madde 25 (Veri Korumayı Tasarım ve Varsayılan Olarak Entegre Etme) uyarınca veri koruma; veritabanı şemasından (Satır Düzeyinde Güvenlik, consent_logs), ön yüz bileşenlerine (işaretlenmemiş açık rıza kutuları, yerel fontlar), e-posta/SMS kuyruklarından (İYS ve RFC 8058 List-Unsubscribe), loglama mimarisine kadar doğrudan kaynak kodun içinde inşa edilmek zorundadır.
🚀 Hızlı Entegrasyon
# 1. Repoyu klonlayın
git clone https://github.com/melihkarasu/vibecoding-kvkk-gdpr.git
# 2. OpenAI Codex (AGENTS.md), Cursor (.cursorrules) veya Claude Code (CLAUDE.md) olarak projeye ekleyin
cp vibecoding-kvkk-gdpr/AGENTS.md ./AGENTS.md
cp vibecoding-kvkk-gdpr/.cursorrules ./.cursorrules
cp vibecoding-kvkk-gdpr/CLAUDE.md ./CLAUDE.md
# 3. Veya OpenClaw / Claude Code Agent Skill olarak kurun
mkdir -p ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr
cp vibecoding-kvkk-gdpr/SKILL.md ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr/SKILL.md
| Dosya | Uyumlu Platform / Ajan | Amacı |
|---|---|---|
SKILL.md | OpenClaw · Claude Code · Codex Yetenekleri | YAML üst verili (frontmatter) tam kapsamlı ajan yeteneği (Skill). |
AGENTS.md | OpenAI Codex CLI / Codex Agent | Codex ajanları için doğrudan proje kök dizini yönergesi. |
CLAUDE.md | Claude Code (claude.md) | Claude Code için proje bazlı otomatik hukuk & gizlilik bellek dosyası. |
.cursorrules | Cursor IDE | Cursor AI için otomatik yüklenen KVKK & GDPR kural seti. |
VibeCoding_KVKK_GDPR_Rules.md | Windsurf · Copilot · Özel LLM | Bağımsız Markdown kural ve denetim referansı. |
README.md | GitHub & Dokümantasyon | Hızlı başvuru tabloları, 2026 ceza matrisi ve entegrasyon kılavuzu. |
🚨 2026 Yılı İdari Para Cezası ve Yaptırım Matrisi
AI ajanları kod yazarken veya denetim yaparken aşağıdaki her bir teknik eksikliğin doğrudan somut bir idari yaptırıma karşılık geldiğini bilerek hareket etmelidir:
| İhlal Alanı | Yasal Dayanak | 2026 İdari Para Cezası / Yaptırım Tutarı | Tipik Teknik Kök Neden (Kod Hatası) |
|---|---|---|---|
| Aydınlatma Yükümlülüğü İhlali | KVKK m.10 (Ceza: m.18/1-a) | 85.437 TL – 1.709.200 TL | Kayıt, iletişim veya bülten formlarında veri toplanırken katmanlı aydınlatma metni bağlantısının bulunmaması veya rıza ile karıştırılması. |
| Veri Güvenliği & 72 Saat Bildirim İhlali | KVKK m.12 (Ceza: m.18/1-b & Kurul 2019/10) | 256.357 TL – 17.092.242 TL | Supabase/PostgreSQL public şemasında RLS kapalı tablolar, ön yüzde service_role anahtarı sızıntısı, denetim logu ve 72 saat ihlal planı olmaması. |
| Kurul Kararlarına Aykırılık | KVKK m.15 (Ceza: m.18/1-c) | 427.263 TL – 17.092.242 TL | Özel nitelikli verilerde (Kurul 2018/10) ek şifreleme/maskeleme yapılmaması, rızanın hizmet şartına bağlanması. |
| VERBİS Kayıt Yükümlülüğü İhlali | KVKK m.16 (Ceza: m.18/1-ç) | 341.800 TL – 17.092.242 TL | Kod tabanında işlenen veri kategorilerinin ve saklama sürelerinin Veri Envanteri (ROPA) ile uyumsuz olması. |
| Yurt Dışı Aktarım (Standart Sözleşme) Bildirim İhlali | KVKK m.9 (Ceza: m.18/1-d — 2024/2026 Reformu) | Yurt Dışı Aktarım İdari Para Cezası | Yurt dışı bulut/AI/SaaS sağlayıcılarıyla yapılan Standart Sözleşmenin 5 iş günü içinde Kuruma bildirilmemesi veya izinsiz IP/veri aktarımı. |
| İzinsiz Ticari Elektronik İleti (Spam) | 6563 Sayılı ETK m.6 (Ceza: m.12/1-a) | 2.859 TL – 14.309 TL (Toplu gönderimde 10 katı: 143.090 TL) | Pazarlama izni (marketing_consent) olmayan kullanıcılara kampanya maili/SMS atılması, İYS senkronizasyonu ve abonelikten çıkma linki olmaması. |
| Ön Bilgilendirme & Mesafeli Satış İhlali | 6502 Sayılı TKHK m.48/2 (Ceza: m.77/1-a) | Satış / Sözleşme Başına 3.973 TL | Ödeme adımından önce Ön Bilgilendirme Formu ve Mesafeli Satış Sözleşmesi onayının alınmaması, abonelik yenileme/iptal şartlarının gizlenmesi. |
| AB Kullanıcıları & Yurt Dışı Veri Sızıntısı | GDPR Art. 5, 6, 25, 32, 44-49 (Ceza: Art. 83 & Art. 82) | 20.000.000 EUR veya %4 Küresel Ciro + Ziyaretçi Başı Tazminat (örn. 100 EUR) | Ücretsiz uygulamalar dahil AB ziyaretçilerinin IP adresinin Google Fonts CDN, izinsiz Analytics/Pixel veya LLM API'leri üzerinden AB/TR dışına aktarılması. |
🔟 AI Ajanları İçin 12 Altın Hukuk ve Gizlilik Kuralı
| # | Hukuki & Teknik Alan | ❌ Asla Yapma (Hukuka Aykırı / Ceza Riski) | ✅ Her Zaman Uygula (Privacy-by-Design Kalıbı) |
|---|---|---|---|
| 01 | Veritabanı Güvenliği & RLS (KVKK m.12 / GDPR Art. 32) | Supabase/PostgreSQL public şemasında RLS'i kapalı bırakmak, politikasız tablo oluşturmak veya ön yüzde service_role anahtarı kullanmak. | Her tabloda ENABLE ROW LEVEL SECURITY ve auth.uid() = user_id politikası tanımla; service_role anahtarını yalnızca sunucu tarafında (Server Actions / Route Handlers) tut. |
| 02 | Aydınlatma vs. Açık Rıza Ayrımı (KVKK m.5, m.10 / GDPR Art. 7, 13) | "Aydınlatma metnini ve açık rızayı okudum, kabul ediyorum" şeklinde tek bir onay kutusu koymak veya kutuyu varsayılan işaretli (checked) getirmek. | Aydınlatma Metnini onaya tabi tutmadan görünür link/katmanlı bilgi olarak sun; Açık Rızayı yalnızca gerekli hallerde, işleme amacı bazında ayrı ve işaretlenmemiş (checked={false}) kutularla al. |
| 03 | Hizmetin Rızaya Şart Koşulmaması (KVKK m.4, m.5 / GDPR Art. 7(4)) | Sözleşmenin ifası (kayıt/sipariş) için yeterli olan bir işlemde pazarlama veya 3. taraf paylaşım rızasını required (zorunlu) yapmak (Bağlı Rıza). | Temel hizmetin sunulması için zorunlu olmayan hiçbir açık rıza kutusuna required özniteliği koyma; kullanıcı rıza vermeden de kayıt olabilmeli ve alışveriş yapabilmelidir. |
| 04 | Ticari Elektronik İleti & İYS (6563 ETK m.6-8 / CAN-SPAM) | Tüm users tablosuna toplu kampanya maili/SMS atmak, izin tarihini kaydetmemek veya mail altbilgisinde çıkış linki bulundurmamak. | Gönderim sorgusuna WHERE marketing_consent = true AND unsubscribed_at IS NULL şartı koy, izin/ret zaman damgasını İYS uyumlu kaydet ve her iletide tek tıkla List-Unsubscribe sun. |
| 05 | Ödeme, Abonelik & Mesafeli Satış (6502 TKHK m.48 / EU 2011/83) | Kullanıcıyı doğrudan Stripe/iyzico ödeme ekranına yönlendirip Ön Bilgilendirme Formu ve Mesafeli Satış Sözleşmesi onayını kaydetmemek. | Ödeme tetiklenmeden önce Ön Bilgilendirme Formu ve Mesafeli Satış Sözleşmesi onayını al, sözleşme metninin SHA-256 özetiyle birlikte contract_acceptances tablosuna kaydet; abonelikte fiyat, yenileme tarihi ve iptal yolunu açıkça yaz. |
| 06 | Yurt Dışı Veri Aktarımı & Font/CDN (KVKK m.9 / GDPR Art. 44 / LG München) | fonts.googleapis.com, cdnjs veya harici CDN'lerden tarayıcı üzerinden doğrudan font/betik yükleyerek ziyaretçi IP'sini yurt dışına sızdırmak. | Tüm fontları projeye dahil ederek kendi sunucunda barındır (next/font/local veya yerel .woff2); 3. taraf harici istekleri sunucu vekili (proxy) üzerinden geçir veya açık rızaya bağla. |
| 07 | Çerez (Cookie) & İzleyici Yönetimi (KVKK Çerez Rehberi / ePrivacy) | Sayfa açılır açılmaz Google Analytics, Meta Pixel, Hotjar veya Clarity betiklerini çalıştırmak; çerez banner'ında "Reddet" butonunu gizlemek. | Zorunlu olmayan tüm betikleri consent.analytics === true kontrolü arkasına al; çerez banner'ında "Kabul Et" ve "Tümünü Reddet" butonlarını aynı ekranda, eşit boyut ve kontrastta göster (Karanlık Desen Yok). |
| 08 | Silme, Anonimleştirme & DSAR (KVKK m.7, m.11 / GDPR Art. 15-20) | "Hesabımı Sil" butonunda yalnızca is_active = false yapıp tüm PII verisini süresiz tutmak veya veri indirme (export) imkanı sunmamak. | Kullanıcıya verilerini JSON/CSV olarak indirme (/api/privacy/export) ve hesabını silme (/api/privacy/delete-account) uç noktaları sun; saklama süresi dolan PII verilerini kriptografik olarak anonimleştir. |
| 09 | Özel Nitelikli Kişisel Veriler (KVKK m.6, Kurul 2018/10 / GDPR Art. 9) | Sağlık, biyometrik, cinsel hayat, din, ırk veya ceza mahkûmiyeti verilerini standart metin sütunlarında (TEXT) düz metin olarak saklamak. | Özel nitelikli verileri uygulama katmanında AES-256-GCM ile zarf şifrelemesine (envelope encryption) tabi tut, anahtarları KMS/HSM'de sakla ve her okuma işlemini denetim loguna yaz. |
| 10 | 72 Saat Veri İhlali & Denetim Logu (KVKK m.12/5, 2019/10 / GDPR Art. 33) | Yetkisiz erişim ve veri sızıntılarını tespit edecek erişim/hata kaydı tutmamak ve projede veri ihlali müdahale planı bulundurmamak. | Kritik veri erişimlerini değişmez (append-only) audit_logs tablosuna kaydet ve depoda 72 saatlik Kurul/Otorite bildirim prosedürünü içeren docs/veri-ihlali-mudahale-plani.md dosyasını hazır tut. |
| 11 | Loglarda PII Maskeleme (Minimizasyon) (KVKK m.4/2-ç / GDPR Art. 5(1)(c)) | console.log(req.body) veya Sentry/Datadog hata kayıtlarına TC Kimlik No, e-posta, telefon, açık IP, parola veya kredi kartı basmak. | Yapılandırılmış loglayıcıda (Pino/Winston) deterministik PII maskeleme (redact) katmanı kullan; e-posta, telefon, TCKN ve token alanlarını loga yazmadan önce maskele. |
| 12 | Yapay Zeka (LLM) & Otomatik Karar (KVKK m.9, m.11/1-g / GDPR Art. 22) | Gerçek kullanıcı PII verilerini (ad, TCKN, telefon, sağlık bilgisi) doğrudan harici LLM API'lerine (OpenAI, Anthropic, Gemini) göndermek. | Harici AI çağrılarından önce PII verilerini sözde-anonimleştir (<KISI_1>, <TELEFON_1>), eğitim için veri kullanımını kapat (Sıfır Veri Saklama) ve otomatik skorlama/red kararlarına "İnsan Müdahalesi / İtiraz" hakkı ekle. |
⚖️ Hukukçu Gözüyle Derinlemesine Mevzuat ve Mimari Planlama
Bir yazılım projesini sıfırdan tasarlarken veya mevcut kodu incelerken AI ajanı aşağıdaki 4 Temel Hukuki Doktrin üzerinden mimari kurguyu denetler:
1. Hukuki Sebep Analizi: "Her Şey İçin Açık Rıza Almak" Hukuka Aykırıdır!
- KVKK m.5/2 ve GDPR Art. 6(1) uyarınca kanunda öngörülen diğer hukuki sebeplerden biri varsa (örneğin sözleşmenin kurulması veya ifası — kullanıcı kaydı, sipariş teslimatı, fatura kesimi), ayrıca açık rıza alınması hukuken geçersiz ve yanıltıcıdır.
- Çünkü açık rıza her zaman geri alınabilir (KVKK m.5 / GDPR Art. 7(3)). Eğer fatura kesmek veya üye kaydı yapmak için açık rızaya dayanırsanız, kullanıcı rızasını geri çektiğinde faturayı silmeniz gerekir ki bu da 213 sayılı Vergi Usul Kanunu (VUK) ve 6102 sayılı Türk Ticaret Kanunu (TTK) (10 yıl saklama zorunluluğu) ile çelişir!
- Mühendislik Kuralı:
- Kayıt / Sipariş / Fatura Formu: Hukuki sebep
CONTRACT(KVKK m.5/2-c) veLEGAL_OBLIGATION(KVKK m.5/2-ç). Yalnızca Aydınlatma Metni sunulur; açık rıza checkbox'ı konulmaz. - Pazarlama / Bülten / Kampanya / Profilleme / Yurt Dışı Pazarlama Araçları: Hukuki sebep
EXPLICIT_CONSENT(KVKK m.5/1, 6563 ETK m.6). Ayrı, isteğe bağlı ve varsayılan olarak boş checkbox konulur.
- Kayıt / Sipariş / Fatura Formu: Hukuki sebep
2. İspat Yükü (İspat Yükü — GDPR Art. 7(1) & KVKK Kurul Kararları)
- Veri sorumlusu, ilgili kişinin hangi tarihte, hangi IP adresinden, aydınlatma metninin ve açık rıza metninin hangi versiyonuna (
v1.2vb.) onay verdiğini teknik olarak ispatlamak zorundadır. - Veritabanında yalnızca
users.marketing_consent = trueşeklinde tek bir boolean sütun tutmak ispat yükünü karşılamaz! - Mühendislik Kuralı: Her projede ayrı bir
consent_logs(veyauser_consents) tablosu oluşturulmalı ve her onay/ret işlemiconsent_type,granted,policy_version,policy_sha256,ip_address,user_agent,created_atalanlarıyla append-only (değiştirilemez tarihçe) olarak saklanmalıdır.
3. Yurt Dışına Veri Aktarımı (KVKK m.9 — 2024/2026 Yeni Rejim & GDPR Schrems II)
- Tarayıcı Kaynaklı (İstemci Tarafı) Sızıntılar: Kullanıcının tarayıcısı
fonts.googleapis.com,fonts.gstatic.com,cdn.jsdelivr.net,www.googletagmanager.comveyaconnect.facebook.netadresine bağlandığı anda kullanıcının IP adresi, tarayıcı bilgileri gibi kişisel verileri ABD veya diğer üçüncü ülkelere aktarılmış olur. Bu, yeterli koruma kararı veya uygun güvenceler olmadan gerçekleşen bir aktarımdır. - Sunucu Tarafı Aktarımlar: Bulut hizmeti sağlayıcıları (AWS, Google Cloud, Azure), AI/LLM API'leri (OpenAI, Anthropic), analitik hizmetleri (Google Analytics, Mixpanel) ve müşteri ilişkileri yönetimi (CRM) araçları da kişisel verileri yurt dışına aktarabilir.
- Mühendislik Kuralı: Tüm yurt dışı veri akışlarını (harici API çağrıları, CDN'ler, bulut hizmetleri) bir
docs/disclosures/foreign-data-transfers.mddosyasında belgele. Her aktarım için Standart Sözleşme Maddeleri (SCC) imzalanması veya Bağlayıcı Şirket Kuralları (BCR) uygulanması gibi uygun güvenceleri sağla. Kullanıcıları, verilerinin yurt dışına aktarılabileceği konusunda açıkça bilgilendir ve gerekli durumlarda açık rızalarını al.
4. Veri İhlali Müdahale Planı: 72 Saat Kuralı
- KVKK m.12/5 ve GDPR Art. 33 uyarınca, bir veri ihlali tespit edildiğinde, ilgili veri koruma otoritesine en geç 72 saat içinde bildirim yapılmalıdır.
- İhlal, ilgili kişilerin hakları ve özgürlükleri için yüksek risk oluşturuyorsa, ilgili kişilere de gecikmeksizin bildirim yapılmalıdır (GDPR Art. 34).
- Mühendislik Kuralı: Proje deposunda, ihlal tespiti, müdahale ekibi, bildirim prosedürleri ve örnek bildirim şablonlarını içeren bir
docs/veri-ihlali-mudahale-plani.mddosyası oluştur. Uygulamada, yetkisiz erişim girişimlerini veya şüpheli etkinlikleri otomatik olarak algılayan ve ilgili ekibi uyaran bir izleme sistemi (örneğin,audit_logsanalizi) kur.