⚖️ VibeCoding KVKK & GDPR Regras
Diretriz de Proteção de Dados, Arquitetura Privacy-by-Design e Conformidade Legal para Agentes de Codificação de IA (KVKK · GDPR · ETK/İYS · TKHK · 5651)
📖 Visão Jurídica e Escopo (Visão Geral)
VibeCoding KVKK & GDPR Regras foi projetado com o rigor de um Advogado de TI e Proteção de Dados para evitar que aplicações desenvolvidas por agentes de IA (Claude Code, Cursor, Windsurf, OpenClaw, GitHub Copilot e fluxos de trabalho de software autônomos) enfrentem pesadas multas administrativas, bloqueios de acesso ou ações de indenização antes mesmo de fazer uma única venda ou no primeiro dia de lançamento.
No desenvolvimento de software tradicional, a conformidade legal é muitas vezes vista como "textos adicionados" após o lançamento do produto. No entanto, de acordo com o Artigo 12 da KVKK e o Artigo 25 do GDPR (Proteção de Dados desde a Concepção e por Padrão), a proteção de dados deve ser construída diretamente no código-fonte, desde o esquema do banco de dados (Row Level Security, consent_logs), componentes de front-end (caixas de consentimento explícito não marcadas, fontes locais), filas de e-mail/SMS (İYS e RFC 8058 List-Unsubscribe), até a arquitetura de logging.
🚀 Integração Rápida (Quick Integration)
# 1. Clone o repositório
git clone https://github.com/melihkarasu/vibecoding-kvkk-gdpr.git
# 2. Adicione ao projeto como OpenAI Codex (AGENTS.md), Cursor (.cursorrules) ou 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. Ou instale como Skill do OpenClaw / Claude Code Agent
mkdir -p ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr
cp vibecoding-kvkk-gdpr/SKILL.md ~/.openclaw/workspace/skills/vibecoding-kvkk-gdpr/SKILL.md
| Arquivo | Plataforma / Agente Compatível | Propósito |
|---|---|---|
SKILL.md | OpenClaw · Claude Code · Codex Skills | Habilidade (Skill) de agente completa com metadados YAML (frontmatter). |
AGENTS.md | OpenAI Codex CLI / Codex Agent | Diretriz de diretório raiz do projeto para agentes Codex. |
CLAUDE.md | Claude Code (claude.md) | Arquivo de memória jurídica e de privacidade automático baseado em projeto para Claude Code. |
.cursorrules | Cursor IDE | Conjunto de regras KVKK e GDPR carregado automaticamente para Cursor AI. |
VibeCoding_KVKK_GDPR_Rules.md | Windsurf · Copilot · LLM Personalizado | Referência de regras e auditoria Markdown independente. |
README.md | GitHub & Documentação | Tabelas de referência rápida, matriz de penalidades 2026 e guia de integração. |
🚨 Matriz de Multas Administrativas e Sanções para 2026
Os agentes de IA devem agir sabendo que cada deficiência técnica listada abaixo corresponde diretamente a uma sanção administrativa concreta ao codificar ou auditar:
| Área de Violação | Base Legal | Multa Administrativa / Valor da Sanção em 2026 | Causa Raiz Técnica Típica (Erro de Código) |
|---|---|---|---|
| Violação da Obrigação de Informar | KVKK art. 10(Multa: art. 18/1-a) | 85.437 TL – 1.709.200 TL | Ausência de link para o texto de informação em camadas ao coletar dados em formulários de registro, contato ou newsletter, ou confusão com consentimento. |
| Violação de Segurança de Dados & Notificação em 72h | KVKK art. 12(Multa: art. 18/1-b & Conselho 2019/10) | 256.357 TL – 17.092.242 TL | Tabelas com RLS desligado no esquema public do Supabase/PostgreSQL, vazamento de chave service_role no front-end, ausência de log de auditoria e plano de violação em 72h. |
| Descumprimento de Decisões do Conselho | KVKK art. 15(Multa: art. 18/1-c) | 427.263 TL – 17.092.242 TL | Falta de criptografia/mascaramento adicional para dados sensíveis (Conselho 2018/10), vinculação do consentimento a uma condição de serviço. |
| Violação da Obrigação de Registro no VERBİS | KVKK art. 16(Multa: art. 18/1-ç) | 341.800 TL – 17.092.242 TL | Inconsistência entre as categorias de dados processados na base de código e os prazos de retenção no Inventário de Dados (ROPA). |
| Violação de Notificação de Transferência Internacional (Cláusulas Padrão) | KVKK art. 9(Multa: art. 18/1-d — Reforma 2024/2026) | Multa Administrativa por Transferência Internacional | Não notificar o Conselho da Cláusula Padrão com provedores de nuvem/IA/SaaS estrangeiros dentro de 5 dias úteis ou transferência não autorizada de IP/dados. |
| Comunicação Eletrônica Comercial Não Autorizada (Spam) | ETK nº 6563 art. 6(Multa: art. 12/1-a) | 2.859 TL – 14.309 TL(Envio em massa: 10 vezes: 143.090 TL) | Envio de e-mails/SMS promocionais para usuários sem permissão (marketing_consent), falta de sincronização İYS e link de cancelamento de assinatura. |
| Violação de Informação Prévia & Venda à Distância | TKHK nº 6502 art. 48/2(Multa: art. 77/1-a) | 3.973 TL por Venda/Contrato | Não obter aprovação do Formulário de Informação Prévia e do Contrato de Venda à Distância antes da etapa de pagamento, ocultar termos de renovação/cancelamento de assinatura. |
| Usuários da UE & Vazamento de Dados Internacionais | GDPR Art. 5, 6, 25, 32, 44-49(Multa: Art. 83 & Art. 82) | 20.000.000 EUR ou 4% do Faturamento Global Anual+ Indenização por Visitante (ex., 100 EUR) | Transferência do endereço IP de visitantes da UE (incluindo aplicativos gratuitos) para fora da UE/TR através de CDN do Google Fonts, Analytics/Pixel não autorizado ou APIs LLM. |
🔟 12 Regras de Ouro Jurídicas e de Privacidade para Agentes de IA (As 12 Regras de Ouro)
| # | Área Jurídica & Técnica | ❌ Nunca Faça (Ilegal / Risco de Multa) | ✅ Sempre Aplique (Padrão Privacy-by-Design) |
|---|---|---|---|
| 01 | Segurança de Banco de Dados & RLS(KVKK art. 12 / GDPR Art. 32) | Deixar RLS desligado no esquema public do Supabase/PostgreSQL, criar tabelas sem políticas ou usar a chave service_role no front-end. | Defina ENABLE ROW LEVEL SECURITY e uma política auth.uid() = user_id para cada tabela; mantenha a chave service_role apenas no lado do servidor (Server Actions / Route Handlers). |
| 02 | Distinção entre Informação e Consentimento Explícito(KVKK art. 5, art. 10 / GDPR Art. 7, 13) | Usar uma única caixa de seleção com "Li e aceito o texto de informação e o consentimento explícito" ou deixar a caixa pré-marcada (checked). | Apresente o Texto de Informação como um link/em camadas sem exigir aprovação; obtenha o Consentimento Explícito apenas quando necessário, com caixas separadas e não marcadas (checked={false}) com base na finalidade do processamento. |
| 03 | Não Condicionamento do Serviço ao Consentimento(KVKK art. 4, art. 5 / GDPR Art. 7(4)) | Tornar o consentimento para marketing ou compartilhamento com terceiros como required (obrigatório) em uma operação suficiente para a execução do contrato (registro/pedido) (Bundled Consent). | Não coloque o atributo required em nenhuma caixa de consentimento explícito que não seja essencial para a prestação do serviço básico; o usuário deve poder se registrar e fazer compras sem dar consentimento. |
| 04 | Comunicação Eletrônica Comercial & İYS(6563 ETK art. 6-8 / CAN-SPAM) | Enviar e-mails/SMS promocionais em massa para toda a tabela users, não registrar a data da permissão ou não incluir um link de cancelamento no rodapé. | Adicione a condição WHERE marketing_consent = true AND unsubscribed_at IS NULL à consulta de envio, registre o carimbo de data/hora da permissão/recusa compatível com İYS e forneça List-Unsubscribe com um clique em cada comunicação. |
| 05 | Pagamento, Assinatura & Venda à Distância(6502 TKHK art. 48 / EU 2011/83) | Direcionar o usuário diretamente para a tela de pagamento Stripe/iyzico sem registrar a aprovação do Formulário de Informação Prévia e do Contrato de Venda à Distância. | Obtenha a aprovação do Formulário de Informação Prévia e do Contrato de Venda à Distância antes de acionar o pagamento; registre na tabela contract_acceptances juntamente com o resumo SHA-256 do texto do contrato; na assinatura, indique claramente o preço, a data de renovação e a forma de cancelamento. |
| 06 | Transferência Internacional de Dados & Fontes/CDN(KVKK art. 9 / GDPR Art. 44 / LG München) | Vazar o endereço IP do visitante para o exterior carregando fontes/scripts diretamente de fonts.googleapis.com, cdnjs ou CDNs externas através do navegador. | Incorpore todas as fontes ao projeto e hospede em seu próprio servidor (next/font/local ou .woff2 local); passe solicitações externas de terceiros por meio de um proxy de servidor ou vincule ao consentimento explícito. |
| 07 | Gestão de Cookies & Rastreadores(Guia de Cookies KVKK / ePrivacy) | Executar scripts do Google Analytics, Meta Pixel, Hotjar ou Clarity assim que a página carregar; ocultar o botão "Recusar" no banner de cookies. | Coloque todos os scripts não essenciais atrás de uma verificação consent.analytics === true; mostre os botões "Aceitar" e "Recusar Todos" na mesma tela, com igual tamanho e contraste no banner de cookies (No Dark Patterns). |
| 08 | Exclusão, Anonimização & DSAR(KVKK art. 7, art. 11 / GDPR Art. 15-20) | No botão "Excluir Minha Conta", apenas definir is_active = false e manter todos os dados PII indefinidamente, ou não oferecer a opção de exportar dados. | Forneça ao usuário endpoints para baixar seus dados em JSON/CSV (/api/privacy/export) e excluir sua conta (/api/privacy/delete-account); anonimize criptograficamente os dados PII cujo prazo de retenção expirou. |
| 09 | Dados Pessoais Sensíveis(KVKK art. 6, Conselho 2018/10 / GDPR Art. 9) | Armazenar dados de saúde, biométricos, vida sexual, religião, raça ou condenações criminais como texto simples em colunas de texto padrão (TEXT). | Submeta dados sensíveis à criptografia de envelope AES-256-GCM na camada de aplicação, armazene as chaves no KMS/HSM e registre cada operação de leitura no log de auditoria. |
| 10 | Violação de Dados em 72 Horas & Log de Auditoria(KVKK art. 12/5, 2019/10 / GDPR Art. 33) | Não manter registros de acesso/erro para detectar acessos não autorizados e vazamentos de dados, e não ter um plano de resposta a violações de dados no projeto. | Registre acessos críticos a dados em uma tabela imutável (append-only) audit_logs e mantenha um arquivo docs/veri-ihlali-mudahale-plani.md no repositório contendo o procedimento de notificação ao Conselho/Autoridade em 72 horas. |
| 11 | Mascaramento de PII em Logs (Minimização)(KVKK art. 4/2-ç / GDPR Art. 5(1)(c)) | Imprimir console.log(req.body) ou incluir CPF, e-mail, telefone, IP aberto, senha ou cartão de crédito em registros de erro do Sentry/Datadog. | Use uma camada de mascaramento PII determinístico (redact) no logger estruturado (Pino/Winston); mascare campos de e-mail, telefone, CPF e token antes de gravá-los no log. |
| 12 | Inteligência Artificial (LLM) & Decisão Automatizada(KVKK art. 9, art. 11/1-g / GDPR Art. 22) | Enviar dados PII reais do usuário (nome, CPF, telefone, informações de saúde) diretamente para APIs LLM externas (OpenAI, Anthropic, Gemini). | Pseudo-anonimize os dados PII antes de chamadas de IA externas (<PERSON_1>, <PHONE_1>), desative o uso de dados para treinamento (Zero Data Retention) e adicione o direito de "Intervenção Humana / Recurso" a decisões automatizadas de pontuação/negação. |
⚖️ Planejamento Aprofundado de Legislação e Arquitetura com Visão Jurídica
Ao projetar um projeto de software do zero ou revisar o código existente, o agente de IA deve auditar a arquitetura com base nas seguintes 4 Doutrinas Jurídicas Fundamentais:
1. Análise da Base Legal: "Obter Consentimento Explícito para Tudo" é Ilegal!
- De acordo com o KVKK art. 5/2 e GDPR Art. 6(1), se uma das outras bases legais previstas em lei existir (por exemplo, execução de um contrato — registro de usuário, entrega de pedido, emissão de fatura), obter consentimento explícito separado é juridicamente inválido e enganoso.
- Porque o consentimento explícito pode ser retirado a qualquer momento (KVKK art. 5 / GDPR Art. 7(3)). Se você confiar no consentimento explícito para emitir faturas ou registrar membros, quando o usuário retirar o consentimento, você precisará excluir a fatura, o que entra em conflito com o Código Tributário de Procedimento (VUK) nº 213 e o Código Comercial Turco (TTK) nº 6102 (obrigação de retenção de 10 anos)!
- Regra de Engenharia:
- Formulário de Registro / Pedido / Fatura: A base legal é
CONTRACT(KVKK art. 5/2-c) eLEGAL_OBLIGATION(KVKK art. 5/2-ç). Apenas o Texto de Informação é apresentado; uma caixa de seleção de consentimento explícito não é colocada. - Marketing / Newsletter / Campanha / Perfilamento / Ferramentas de Marketing Internacional: A base legal é
EXPLICIT_CONSENT(KVKK art. 5/1, 6563 ETK art. 6). Uma caixa de seleção separada, opcional e vazia por padrão é colocada.
- Formulário de Registro / Pedido / Fatura: A base legal é
2. Ônus da Prova (Burden of Proof — GDPR Art. 7(1) & Decisões do Conselho KVKK)
- O controlador de dados deve provar tecnicamente em que data, de qual endereço IP e qual versão do texto de informação e do consentimento explícito (
v1.2, etc.) o titular dos dados aprovou. - Manter apenas uma coluna booleana
users.marketing_consent = trueno banco de dados não cumpre o ônus da prova! - Regra de Engenharia: Uma tabela
consent_logs(ouuser_consents) separada deve ser criada em cada projeto, e cada operação de aceitação/recusa deve ser armazenada como append-only (histórico imutável) com os camposconsent_type,granted,policy_version,policy_sha256,ip_address,user_agent,created_at.
3. Transferência Internacional de Dados (KVKK art. 9 — Novo Regime 2024/2026 & GDPR Schrems II)
- Vazamentos Originados do Navegador (Client-Side): Quando o navegador do usuário se conecta a
fonts.googleapis.com,fonts.gstatic.com,cdn.jsdelivr.net,www.googletagmanager.comouconnect.facebook.net, o endereço IP do visitante é transferido para fora da Turquia/UE. Isso constitui uma transferência internacional de dados sem consentimento explícito ou cláusulas contratuais padrão. - Vazamentos Originados do Servidor (Server-Side): Dados PII do usuário armazenados na aplicação, como nome, endereço, telefone ou e-mail, são enviados para serviços de IA baseados nos EUA (OpenAI, Anthropic, Google Gemini) ou para serviços de nuvem/banco de dados localizados no exterior.
- Regra de Engenharia:
- Client-Side: Use CDNs locais ou auto-hospedadas (fontes próprias, scripts analíticos); implemente um banner de cookies com consentimento obrigatório para serviços de terceiros.
- Server-Side: Implemente um proxy reverso para serviços de IA que possa filtrar PII; execute modelos de IA locais (Llama 3, Mistral) via ONNX/llama.cpp para evitar a transferência de dados; ou obtenha consentimento explícito para transferência internacional.
4. Aplicação da Lei 5651 e Conformidade com a Remoção de Conteúdo
- Embora o foco principal desta skill seja a proteção de dados pessoais, o ecossistema digital turco exige conformidade com a Lei nº 5651 (Regulamentação de Publicações na Internet e Combate a Crimes). Esta lei impõe obrigações de remoção de conteúdo para plataformas que hospedam conteúdo gerado por usuários (comentários, avaliações, postagens).
- A não remoção de conteúdo criminoso (injúria, calúnia, violação de privacidade, pornografia infantil, apologia ao crime) dentro de 24 horas (ou dentro do prazo especificado em uma decisão judicial) pode resultar em bloqueio de acesso ao site ou redução de largura de banda.
- Regra de Engenharia: Classes de modelo (ex.,
Post,Comment) devem ter os camposlaw_5651_removed_atelaw_5651_removal_reasonpara rastrear remoções. Deve ser implementado um endpointPOST /api/moderation/remove-contentonde administradores (e agentes de IA) possam remover conteúdo e registrar o motivo. Revise esta seção separadamente com um advogado especializado em direito da internet.
📋 Guia de Uso e Referência para Agentes
Esta seção descreve como os agentes de IA devem usar este arquivo de skill. Cada plataforma de agente carrega este skill de forma diferente:
- OpenClaw: O arquivo
SKILL.mdé carregado diretamente como uma skill. - Claude Code: O agente usa o
CLAUDE.mdcorrespondente como memória de projeto. - Cursor: As regras em
.cursorrulessão aplicadas automaticamente. - OpenAI Codex CLI: O arquivo
AGENTS.mdna raiz do projeto define as diretrizes.
Fluxo de Trabalho do Agente
- Análise de Requisitos: Ao iniciar um novo projeto ou analisar uma funcionalidade, o agente deve primeiro verificar se a aplicação coleta, processa ou armazena dados pessoais de forma alguma.
- Aplicação das Regras: Uma vez identificado o processamento de dados, o agente consulta as 12 Regras de Ouro e a Matriz de Penalidades desta skill para orientar todas as decisões de codificação posteriores.
- Verificações de Arquitetura: Antes de escrever qualquer código de banco de dados, front-end ou back-end, o agente deve garantir que os princípios "Privacy by Design" sejam seguidos (ex., esquemas de dados, tratamento de consentimento, armazenamento de logs).
- Geração de Código: O agente gera código aderindo estritamente à coluna "✅ Sempre Aplique" na tabela de regras.
- Auditoria de Código: O agente audita o código existente em busca de violações, focando especialmente em vulnerabilidades listadas na coluna "Típica Causa Raiz Técnica" da matriz de penalidades.
🤝 Contribuição e Repositório
Este projeto é de código aberto e licenciado sob a Licença MIT. Contribuições são bem-vindas! Sinta-se à vontade para enviar pull requests ou relatar problemas em nosso repositório.
⚠️ Aviso Legal
Este documento e as regras associadas são fornecidos apenas para fins informativos e educacionais. Eles não constituem aconselhamento jurídico. As leis e regulamentos estão sujeitos a alterações. Você deve consultar um advogado qualificado para obter aconselhamento específico para sua situação. O(s) autor(es) e mantenedor(es) deste projeto não assumem qualquer responsabilidade por quaisquer penalidades, multas ou ações legais resultantes do uso deste material.