CommunityProgramación y desarrollogithub.com

melihkarasu/vibecoding-kvkk-gdpr

Guía integral para agentes de IA sobre cumplimiento de protección de datos (KVKK, GDPR, ETK/İYS, TKHK, Ley 5651), arquitectura Privacy by Design, seguridad de datos y notificación de violaciones en 72 horas.

¿Qué es vibecoding-kvkk-gdpr?

Este skill, diseñado con rigor de un abogado especializado en tecnología y protección de datos, capacita a agentes de IA como Claude Code, Cursor, Windsurf, OpenClaw y GitHub Copilot para construir aplicaciones web, móviles, SaaS y de IA que cumplan desde el primer día con la legislación turca (KVKK Ley 6698, ETK Ley 6563, TKHK Ley 6502, Ley 5651) y el GDPR europeo (Reglamento UE 2016/679). Proporciona 12 reglas de oro técnicas y legales, desde la configuración obligatoria de seguridad a nivel de fila (RLS) en bases de datos hasta la gestión de cookies sin patrones oscuros, pasando por la separación estricta entre texto informativo y consentimiento explícito. Incluye una matriz de sanciones administrativas actualizada a 2026, con multas de hasta 20 millones de euros o el 4% de la facturación global anual. El skill se integra directamente en el proyecto mediante archivos como `SKILL.md`, `AGENTS.md`, `CLAUDE.md`, `.cursorrules` y `README.md`, y cubre áreas críticas como transferencias internacionales de datos, notificación de violaciones en 72 horas, minimización de PII en logs, y uso de datos personales con APIs de LLM externas, garantizando que el código cumpla con los artículos 12 y 25 de la KVKK y GDPR respectivamente.

Compatible con✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓Windsurf
npx skills add https://github.com/melihkarasu/vibecoding-kvkk-gdpr/tree/HEAD

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Vista previa

Del README del skill

KVKK: 6698
GDPR: EU 2016/679
ETK & İYS: 6563
TKHK: 6502
Standard: Privacy by Design
Penalties: 2026 Updated

Documentación

⚖️ VibeCoding KVKK & GDPR Rules

Guía de Protección de Datos, Arquitectura Privacy-by-Design y Cumplimiento Normativo para Agentes de Codificación de IA (KVKK · GDPR · ETK/İYS · TKHK · 5651)

KVKK: 6698 GDPR: EU 2016/679 ETK & İYS: 6563 TKHK: 6502 Standard: Privacy by Design Penalties: 2026 Updated


📖 Visión y Alcance Legal (Overview)

VibeCoding KVKK & GDPR Rules ha sido diseñada con el rigor de un Abogado de Tecnología y Protección de Datos para evitar que las aplicaciones desarrolladas por agentes de codificación de IA (Claude Code, Cursor, Windsurf, OpenClaw, GitHub Copilot y flujos de trabajo de software autónomos) enfrenten severas multas administrativas, bloqueos de acceso o demandas por daños y perjuicios desde el primer día de publicación, incluso sin haber realizado una sola venta.

En el desarrollo de software tradicional, el cumplimiento legal a menudo se considera "textos añadidos" después del lanzamiento del producto. Sin embargo, según KVKK Artículo 12 y GDPR Artículo 25 (Protección de Datos desde el Diseño y por Defecto), la protección de datos debe construirse directamente dentro del código fuente, desde el esquema de la base de datos (Row Level Security, consent_logs), hasta los componentes frontend (casillas de consentimiento explícito no marcadas, fuentes locales), colas de correo electrónico/SMS (İYS y RFC 8058 List-Unsubscribe) y la arquitectura de registro.


🚀 Integración Rápida (Quick Integration)

# 1. Clonar el repositorio
git clone https://github.com/melihkarasu/vibecoding-kvkk-gdpr.git

# 2. Añadirlo al proyecto como OpenAI Codex (AGENTS.md), Cursor (.cursorrules) o Claude Code (CLAUDE.md)
cp vibecoding-kvkk-gdpr/AGENTS.md ./AGENTS.md
cp vibecoding-kvkk-gdpr/.cursorrules ./.cursorrules
cp vibecoding-kvkk-gdpr/CLAUDE.md ./CLAUDE.md

# 3. O instalarlo como OpenClaw / Claude Code Agent Skill
mkdir -p ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr
cp vibecoding-kvkk-gdpr/SKILL.md ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr/SKILL.md
ArchivoPlataforma / Agente CompatiblePropósito
SKILL.mdOpenClaw · Claude Code · Codex SkillsHabilidad de agente (Skill) completa con metadatos YAML (frontmatter).
AGENTS.mdOpenAI Codex CLI / Codex AgentDirectiva de directorio raíz de proyecto para agentes Codex.
CLAUDE.mdClaude Code (claude.md)Archivo de memoria automática de privacidad y legal para proyectos de Claude Code.
.cursorrulesCursor IDEConjunto de reglas KVKK y GDPR que se carga automáticamente en Cursor AI.
VibeCoding_KVKK_GDPR_Rules.mdWindsurf · Copilot · Custom LLMReferencia de reglas y auditoría Markdown independiente.
README.mdGitHub & DocumentaciónTablas de referencia rápida, matriz de sanciones 2026 y guía de integración.

🚨 Matriz de Sanciones Administrativas y Sanciones para 2026

Al escribir código o realizar auditorías, los agentes de IA deben actuar sabiendo que cada deficiencia técnica que se enumera a continuación se corresponde directamente con una sanción administrativa concreta:

Área de InfracciónBase LegalSanción Administrativa / Importe de la Sanción 2026Causa Raíz Técnica Típica (Error de Código)
Violación de la Obligación de InformaciónKVKK art.10(Sanción: art.18/1-a)85.437 TL – 1.709.200 TLFalta de enlace al texto informativo por capas al recopilar datos en formularios de registro, comunicación o boletines, o confusión con el consentimiento.
Seguridad de Datos y Violación de Notificación de 72 hKVKK art.12(Sanción: art.18/1-b & Junta 2019/10)256.357 TL – 17.092.242 TLTablas RLS deshabilitadas en esquema public de Supabase/PostgreSQL, fuga de clave service_role en frontend, falta de registro de auditoría y plan de violación de 72 horas.
Incumplimiento de Decisiones de la JuntaKVKK art.15(Sanción: art.18/1-c)427.263 TL – 17.092.242 TLFalta de cifrado/enmascaramiento adicional en datos de categoría especial (Junta 2018/10), supeditación del consentimiento a una condición de servicio.
Violación de la Obligación de Registro VERBISKVKK art.16(Sanción: art.18/1-ç)341.800 TL – 17.092.242 TLInconsistencia entre las categorías de datos procesados y los plazos de conservación en el código base y el Inventario de Datos (ROPA).
Violación de Notificación de Transferencia Internacional (Contrato Tipo)KVKK art.9(Sanción: art.18/1-d — Reforma 2024/2026)Sanción Administrativa por Transferencia InternacionalFalta de notificación del Contrato Tipo con proveedores cloud/AI/SaaS en el extranjero dentro de los 5 días hábiles a la Autoridad, o transferencia no autorizada de IP/datos.
Comunicación Electrónica Comercial No Autorizada (Spam)Ley 6563 ETK art.6(Sanción: art.12/1-a)2.859 TL – 14.309 TL(Envío masivo: 10 veces: 143.090 TL)Envío de correos/SMS de campaña a usuarios sin permiso de marketing (marketing_consent), falta de sincronización con İYS y enlace de cancelación de suscripción.
Violación de Información Previa y Ventas a DistanciaLey 6502 TKHK art.48/2(Sanción: art.77/1-a)3.973 TL por Venta / ContratoNo obtener la aprobación del Formulario de Información Previa y del Contrato de Venta a Distancia antes del paso de pago, ocultar las condiciones de renovación/cancelación de suscripción.
Usuarios de la UE y Fuga de Datos al ExtranjeroGDPR Art. 5, 6, 25, 32, 44-49(Sanción: Art. 83 & Art. 82)20.000.000 EUR o 4% de la Facturación Global Anual+ Indemnización por Visitante (p. ej. 100 EUR)Transferencia de la dirección IP de visitantes de la UE (incluidas aplicaciones gratuitas) fuera de la UE/TR a través de Google Fonts CDN, Analytics/Pixel no autorizado o APIs LLM.

🔟 12 Reglas de Oro Legales y de Privacidad para Agentes de IA (The 12 Golden Rules)

#Ámbito Legal y Técnico❌ Nunca Hacer (Ilegal / Riesgo de Sanción)✅ Siempre Aplicar (Patrón Privacy-by-Design)
01Seguridad de Base de Datos y RLS(KVKK art.12 / GDPR Art. 32)Dejar RLS deshabilitado en el esquema public de Supabase/PostgreSQL, crear tablas sin políticas, o usar la clave service_role en el frontend.Definir ENABLE ROW LEVEL SECURITY y política auth.uid() = user_id en cada tabla; mantener la clave service_role solo en el lado del servidor (Server Actions / Route Handlers).
02Distinción entre Información y Consentimiento Explícito(KVKK art.5, art.10 / GDPR Art. 7, 13)Usar una sola casilla de verificación con el texto "He leído y acepto el texto informativo y el consentimiento explícito" o mostrar la casilla marcada por defecto (checked).Presentar el Texto Informativo como enlace/información por capas visible sin necesidad de aprobación; obtener el Consentimiento Explícito solo cuando sea necesario, con casillas separadas por finalidad de procesamiento y sin marcar (checked={false}).
03No Condicionar el Servicio al Consentimiento(KVKK art.4, art.5 / GDPR Art. 7(4))Hacer required (obligatorio) el consentimiento de marketing o compartición con terceros en un proceso necesario para la ejecución del contrato (registro/pedido) (Consentimiento Agrupado).No añadir el atributo required a ninguna casilla de consentimiento explícito que no sea necesaria para la prestación del servicio básico; el usuario debe poder registrarse y realizar compras sin dar su consentimiento.
04Comunicación Electrónica Comercial e İYS(6563 ETK art.6-8 / CAN-SPAM)Enviar correos/SMS de campaña masiva a toda la tabla users, no registrar la fecha de permiso, o no incluir un enlace de cancelación de suscripción en el pie de página.Añadir la condición WHERE marketing_consent = true AND unsubscribed_at IS NULL a la consulta de envío, registrar la marca de tiempo de permiso/denegación conforme a İYS, y proporcionar List-Unsubscribe con un solo clic en cada mensaje.
05Pago, Suscripción y Ventas a Distancia(6502 TKHK art.48 / UE 2011/83)Redirigir al usuario directamente a la pantalla de pago de Stripe/iyzico sin registrar la aprobación del Formulario de Información Previa y del Contrato de Venta a Distancia.Obtener la aprobación del Formulario de Información Previa y del Contrato de Venta a Distancia antes de activar el pago, registrar el resumen SHA-256 del texto del contrato en la tabla contract_acceptances; indicar claramente el precio, la fecha de renovación y la forma de cancelación en las suscripciones.
06Transferencia Internacional de Datos y Fonts/CDN(KVKK art.9 / GDPR Art. 44 / LG München)Cargar fuentes/scripts directamente desde fonts.googleapis.com, cdnjs u otros CDN externos a través del navegador, filtrando la IP del visitante al extranjero.Incluir todas las fuentes en el proyecto y alojarlas en tu propio servidor (next/font/local o .woff2 local); pasar las solicitudes externas de terceros a través de un proxy de servidor o vincularlas al consentimiento explícito.
07Gestión de Cookies y Rastreadores(Guía de Cookies KVKK / ePrivacy)Ejecutar scripts de Google Analytics, Meta Pixel, Hotjar o Clarity tan pronto como se cargue la página; ocultar el botón "Rechazar" en el banner de cookies.Colocar todos los scripts no esenciales detrás del control consent.analytics === true; mostrar los botones "Aceptar" y "Rechazar Todo" en la misma pantalla, con igual tamaño y contraste (Sin Patrones Oscuros).
08Eliminación, Anonimización y DSAR(KVKK art.7, art.11 / GDPR Art. 15-20)Al hacer clic en "Eliminar Mi Cuenta", solo establecer is_active = false y conservar todos los datos PII indefinidamente, o no ofrecer la posibilidad de exportar datos.Proporcionar al usuario endpoints para descargar sus datos en JSON/CSV (/api/privacy/export) y eliminar su cuenta (/api/privacy/delete-account); anonimizar criptográficamente los datos PII una vez transcurrido el período de conservación.
09Datos Personales de Categoría Especial(KVKK art.6, Junta 2018/10 / GDPR Art. 9)Almacenar datos de salud, biométricos, vida sexual, religión, raza o condenas penales en columnas de texto estándar (TEXT) en texto plano.Someter los datos de categoría especial a cifrado de sobre (envelope encryption) con AES-256-GCM en la capa de aplicación, almacenar las claves en KMS/HSM y registrar cada operación de lectura en el registro de auditoría.
10Violación de Datos en 72 Horas y Registro de Auditoría(KVKK art.12/5, 2019/10 / GDPR Art. 33)No mantener registros de acceso/error para detectar accesos no autorizados y fugas de datos, y no tener un plan de respuesta a violaciones de datos en el proyecto.Registrar los accesos a datos críticos en una tabla audit_logs de solo anexar (append-only) y mantener el archivo docs/veri-ihlali-mudahale-plani.md en el repositorio que contenga el procedimiento de notificación a la Junta/Autoridad en 72 horas.
11Enmascaramiento de PII en Registros (Minimización)(KVKK art.4/2-ç / GDPR Art. 5(1)(c))Imprimir console.log(req.body) o incluir números de identificación nacional, correos electrónicos, teléfonos, IP sin enmascarar, contraseñas o tarjetas de crédito en registros de error de Sentry/Datadog.Utilizar una capa de enmascaramiento determinista de PII (redact) en el registrador estructurado (Pino/Winston); enmascarar los campos de correo electrónico, teléfono, número de identificación nacional y token antes de escribirlos en el registro.
12Inteligencia Artificial (LLM) y Decisión Automatizada(KVKK art.9, art.11/1-g / GDPR Art. 22)Enviar datos PII reales de usuarios (nombre, número de identificación nacional, teléfono, información de salud) directamente a APIs LLM externas (OpenAI, Anthropic, Gemini).Seudoanonimizar los datos PII antes de las llamadas a IA externas (<PERSON_1>, <PHONE_1>), desactivar el uso de datos para entrenamiento (Retención de Datos Cero) y añadir el derecho a "Intervención Humana / Apelación" para decisiones automatizadas de puntuación/rechazo.

⚖️ Planificación Profunda de Legislación y Arquitectura desde la Perspectiva de un Abogado

Al diseñar un proyecto de software desde cero o revisar código existente, el agente de IA debe auditar la arquitectura basándose en los siguientes 4 Principios Legales Fundamentales:

1. Análisis de la Base Legal: "Obtener Consentimiento Explícito para Todo" es Ilegal

  • Según KVKK art.5/2 y GDPR Art. 6(1), si existe otra base legal prevista en la ley (por ejemplo, celebración o ejecución de un contrato — registro de usuario, entrega de pedido, emisión de factura), obtener un consentimiento explícito adicional es legalmente inválido y engañoso.
  • Porque el consentimiento explícito siempre es revocable (KVKK art.5 / GDPR Art. 7(3)). Si se basa en el consentimiento explícito para facturar o registrar a un miembro, cuando el usuario revoque su consentimiento, ¡tendría que eliminar la factura, lo que entra en conflicto con la Ley de Procedimiento Tributario No. 213 (VUK) y el Código de Comercio Turco No. 6102 (TTK) (obligación de conservación de 10 años)!
  • Regla de Ingeniería:
    • Formulario de Registro / Pedido / Factura: La base legal es CONTRACT (KVKK art.5/2-c) y LEGAL_OBLIGATION (KVKK art.5/2-ç). Solo se presenta el Texto Informativo; no se coloca ninguna casilla de consentimiento explícito.
    • Marketing / Boletín / Campaña / Perfilado / Herramientas de Marketing en el Extranjero: La base legal es EXPLICIT_CONSENT (KVKK art.5/1, 6563 ETK art.6). Se coloca una casilla separada, opcional y vacía por defecto.

2. Carga de la Prueba (Burden of Proof — GDPR Art. 7(1) y Decisiones de la Junta KVKK)

  • El responsable del tratamiento debe demostrar técnicamente en qué fecha, desde qué dirección IP y con qué versión del texto informativo y del consentimiento explícito (v1.2, etc.) dio su aprobación el interesado.
  • Mantener un único booleano users.marketing_consent = true en la base de datos no cumple con la carga de la prueba.
  • Regla de Ingeniería: Se debe crear una tabla consent_logs (o user_consents) separada en cada proyecto, y cada operación de aprobación/rechazo debe almacenarse como un historial de solo anexar (append-only) con los campos consent_type, granted, policy_version, policy_sha256, ip_address, user_agent, created_at.

3. Transferencia Internacional de Datos (KVKK art.9 — Nuevo Régimen 2024/2026 y GDPR Schrems II)

  • Fugas del Lado del Navegador (Client-Side): Tan pronto como el navegador del usuario se conecta a fonts.googleapis.com, fonts.gstatic.com, cdn.jsdelivr.net, www.googletagmanager.com o connect.facebook.net, se realiza automáticamente una transferencia internacional de datos (dirección IP, información del dispositivo) sin el consentimiento explícito del usuario y, a menudo, sin una base legal adecuada.
  • Fugas del Lado del Servidor: Transferir datos a servicios en la nube de EE. UU. (AWS us-east-1, Vercel US, Supabase US, OpenAI API), APIs de LLM (Anthropic, Gemini) y herramientas de análisis (Google Analytics, Hotjar, Mixpanel) puede requerir un Mecanismo de Transferencia Adecuado según KVKK art.9 y GDPR Art. 44-49.
  • Regla de Ingeniería:
    • Hosting, CDN, Base de Datos: Preferir regiones en Turquía (TR-1) o la UE. Si no es posible, ejecutar una Evaluación de Impacto de la Transferencia (TIA) y firmar las Cláusulas Contractuales Tipo (SCC) de la UE/TR con el proveedor.
    • APIs LLM: No enviar PII sin seudoanonimización; desactivar la retención de datos de entrenamiento (Zero Data Retention). Si el proveedor tiene su sede en EE. UU., obtener un consentimiento explícito por separado para la transferencia internacional de datos.

4. Derechos del Interesado y Automatización (DSAR - Derecho de Acceso, Portabilidad, Supresión)

  • KVKK art.11 y GDPR Art. 15-20 otorgan al usuario derechos como el acceso a sus datos, la portabilidad de datos (transferencia a otro sistema), la supresión (derecho al olvido) y la objeción al procesamiento automatizado. El intruso no debe ignorar estos derechos.
  • Regla de Ingeniería:
    • Implementar el endpoint GET /api/privacy/data que devuelva todos los datos PII del usuario autenticado en formato JSON/CSV (portabilidad).
    • Implementar el endpoint DELETE /api/privacy/account que ponga en cola el trabajo de anonimización/supresión de datos PII (no solo is_active = false).
    • Añadir el estado "Intervención Humana" / "Apelación" para cualquier decisión automatizada (puntuación crediticia, aprobación/rechazo de solicitud) en una cola de moderación separada.
    • Mantener un registro de todas las solicitudes de derechos del interesado en la tabla dsar_requests para demostrar el cumplimiento.

🛡️ Estándares de Seguridad de Datos y Cifrado

Almacenamiento de Contraseñas y Tokens

  • Nunca almacenar contraseñas en texto plano. Usar siempre un algoritmo de hash fuerte como bcrypt con un factor de costo de al menos 12, o argon2id.
  • Almacenar tokens de API, claves de acceso y claves de servicio (como service_role) solo en variables de entorno del lado del servidor; nunca en el código frontend o en archivos .env subidos al repositorio.

Cifrado de Datos en Reposo (At Rest)

  • Para datos de categoría especial (KVKK art.6) y contraseñas: usar cifrado a nivel de columna o cifrado a nivel de aplicación. Recomendado: AES-256-GCM con cifrado de sobre (envelope encryption).
  • Todas las bases de datos deben usar cifrado en reposo (TDE para SQL Server, cifrado LUKS para PostgreSQL, etc.).

Cifrado de Datos en Tránsito (In Transit)

  • Toda la comunicación entre el cliente y el servidor debe usar TLS 1.2 o superior con un conjunto de cifrado seguro.
  • Las conexiones a la base de datos deben estar cifradas (por ejemplo, PostgreSQL sslmode=require).

📋 Lista de Verificación de Auditoría de Cumplimiento para Agentes de IA

Antes de considerar que un proyecto está listo para producción, el agente de IA debe verificar los siguientes puntos:

#Área de ControlEstado
1¿Están habilitadas las políticas RLS en todas las tablas que contienen datos del usuario?❌ / ✅
2¿Está la clave service_role aislada en el backend?❌ / ✅
3¿Se presenta el Texto Informativo (Aydınlatma Metni) en todos los formularios de recogida de datos?❌ / ✅
4¿Se obtiene el Consentimiento Explícito con casillas separadas y sin marcar?❌ / ✅
5¿Existe la tabla consent_logs (append-only)?❌ / ✅
6¿Se verifica el permiso de marketing (marketing_consent) para el envío de correos/SMS?❌ / ✅
7¿Se aprueban el Formulario de Información Previa y el Contrato de Venta a Distancia antes del pago?❌ / ✅
8¿Se alojan las fuentes localmente?❌ / ✅
9¿Están los scripts de análisis/tracking detrás del control de consentimiento?❌ / ✅
10¿Se proporcionan endpoints de exportación y eliminación de datos?❌ / ✅
11¿Se cifran los datos de categoría especial con AES-256-GCM?❌ / ✅
12¿Existe un registro de auditoría (append-only) para accesos a datos críticos?❌ / ✅
13¿Está documentado el plan de respuesta a violaciones de datos de 72 horas?❌ / ✅
14¿Están enmascarados los PII en los registros (logs)?❌ / ✅
15¿Están seudoanonimizados los datos enviados a APIs LLM externas?❌ / ✅
16¿Se ha firmado un Contrato Tipo (SCC) para las transferencias internacionales de datos?❌ / ✅
17¿Se utiliza TLS 1.2+ para todas las comunicaciones?❌ / ✅

🧩 Arquitectura Técnica de Referencia (Proyecto de Referencia)

El proyecto demo de referencia vibecoding-kvkk-gdpr-demo (https://github.com/melihkarasu/vibecoding-kvkk-gdpr-demo) implementa todas las reglas anteriores en un stack moderno (Next.js 15 + Supabase + Drizzle ORM + Resend + iyzico). El agente de IA puede consultar este proyecto para ver ejemplos de código concretos sobre los siguientes temas:

  • Políticas RLS de Supabase (carpeta supabase/policies/)
  • Esquema de la tabla consent_logs (supabase/migrations/)
  • Enmascaramiento de PII en logs (src/lib/logger.ts)
  • Seudoanonimización de datos para LLM (src/lib/anonymizer.ts)
  • Procedimiento de notificación de violación de 72 horas (docs/veri-ihlali-mudahale-plani.md)
  • Formulario de Información Previa y Contrato de Venta a Distancia (src/components/checkout/)

⚠️ Aviso Legal / Descargo de Responsabilidad (Disclaimer)

Este conjunto de reglas (skill) tiene fines educativos y de guía técnica. No constituye asesoramiento legal. Cada proyecto debe ser revisado por un abogado especializado en tecnología y protección de datos. Las sanciones y los importes indicados se basan en la legislación vigente y las decisiones de la Junta en el momento de la redacción, y pueden estar sujetos a cambios. El autor no asume ninguna responsabilidad por el uso de este material.


🤝 Contribuciones y Reporte de Problemas

Las contribuciones son bienvenidas. Si detecta una inexactitud legal, una laguna técnica o desea añadir una nueva regulación, abra un issue o envíe un pull request.


📄 Licencia

Este proyecto está licenciado bajo MIT License.


📬 Contacto

Melih Karasu — Desarrollador Full Stack & Experto en Cumplimiento de Datos


"La privacidad no es una característica que se añade; es una propiedad del sistema que se diseña." — Ann Cavoukian (Privacy by Design)

Skills relacionados