compliance-uy — motor de auditoría de protección de datos (Uruguay)
Audita un repositorio de software y genera un paquete inicial de cumplimiento de protección de datos personales para Uruguay (Ley N° 18.331, Decreto 414/009, Ley 19.670 arts. 37-40, Decreto 64/020 y guías de la URCDP). Úsala siempre que el usuario pida "auditar protección de datos", "cumplimiento de datos personales", "Ley 18.331", "habeas data", "URCDP", "política de privacidad", "datos personales en Uruguay", "GDPR uruguayo", "DPO", "transferencias internacionales de datos" o quiera detectar qué datos personales y proveedores maneja su código y qué le falta para cumplir la normativa uruguaya, aunque no nombre la ley exacta. Genera borradores y diagnósticos; NO es asesoramiento legal.
compliance-uy — motor de auditoría de protección de datos (Uruguay)
Disclaimer obligatorio (incluir textualmente en TODO documento generado y en el resumen): "Este software no constituye asesoramiento legal ni garantiza cumplimiento. Genera borradores y diagnósticos técnicos fundados en fuentes oficiales para facilitar una primera implementación."
Esta skill audita el repositorio actual y produce un paquete inicial de cumplimiento de la
Ley N° 18.331 y normativa complementaria de Uruguay, en .compliance/.
Principios no negociables
- Solo fuentes oficiales uruguayas. Toda afirmación normativa cita
(Norma, art. — sources/archivo.md). Nunca se copia texto legal de otras jurisdicciones (incluidocompliance-cl). - Trazabilidad. Las fuentes están en
/sources. El catálogo de controles enreferences/controls.md. El detalle normativo del pack enpacks/ley-18331/pack.md. Lee esos archivos cuando los necesites; no inventes artículos. - Honestidad epistémica. Lo que no se pueda verificar contra fuente oficial se marca
[verificar contra fuente oficial]. Las detecciones en código son heurísticas: orientan, no prueban. Toda conclusión nace en estadorequiere_revision. - No es asesoramiento legal. Incluir el disclaimer; recomendar validación por profesional habilitado.
Flujo de trabajo
Ejecuta en orden. Mantén una lista de tareas si tienes esa capacidad.
Paso 0 — Cargar contexto normativo
- Lee
references/controls.md(catálogo de controles C-01..C-14). - Lee
packs/ley-18331/pack.md(mapa norma→control→evidencia, plazos, definiciones). - Ten presentes las fuentes de
/sources. Si falta el texto íntegro de una norma en/sources, avísalo y continúa marcando lo afectado como[verificar contra fuente oficial].
Paso 1 — Datos de la empresa
Pregunta (usa la herramienta de inputs si está disponible, una pregunta clara a la vez; o un solo bloque si el usuario prefiere). Recolecta:
- Razón social
- RUT
- Domicilio
- Contacto (email/teléfono)
- Representante legal
- Responsable de datos / Delegado de Protección de Datos (DPO), si existe
Guarda lo recibido en .compliance/empresa.json. Si el usuario no sabe un dato, regístralo como "[verificar contra fuente oficial]" y sigue. Nunca inventes RUT, domicilio ni nombres.
Paso 2 — Leer el código (Grep/Glob)
Usa Glob para mapear el repo y Grep para buscar señales. No abras binarios. Prioriza: modelos/esquemas de datos, migraciones, formularios, configuración, variables de entorno (.env.example), dependencias (package.json, requirements.txt, go.mod, etc.), infra/, legal/, docs/.
Paso 3 — Detectar datos personales
Busca señales (heurísticas) de estas categorías y anota archivo:línea:
| Categoría | Señales de ejemplo (regex/keywords) |
|---|---|
email, correo, e_mail, patrones @ en validaciones | |
| Teléfono | phone, telefono, celular, mobile, whatsapp |
| Cédula (CI) | cedula, ci, documento, doc_id, validadores de CI uruguaya |
| RUT | rut, ruc, tax_id, registro_unico |
| Dirección | direccion, address, domicilio, calle, codigo_postal |
| IP | ip_address, remote_addr, x-forwarded-for |
| Ubicación | lat, lng, location, geo, coordinates, gps |
| Mensajes | message, chat, mensaje, inbox, conversation |
| Archivos | upload, file, attachment, document, s3, storage |
| Pagos | card, tarjeta, payment, iban, cvv, stripe, mercadopago |
| Salud (sensible) | salud, health, diagnostico, medical, historia_clinica |
| Menores (sensible/especial) | edad, age, birthdate, menor, kid, parental |
| Biométricos (sensible) | biometric, huella, fingerprint, face, iris, voiceprint |
| Origen/ideología/etc. (sensible) | religion, etnia, raza, sindicato, orientacion, politica |
Marca como sensibles (art. 18 / art. 4 — sources/ley-18331.md) salud, biométricos, origen racial/étnico, opiniones políticas, convicciones religiosas/morales, afiliación sindical y vida sexual. Trata datos de menores con especial cuidado.
Paso 4 — Detectar proveedores
Busca en dependencias, SDKs, variables de entorno y configuración:
AWS, GCP, Azure, Supabase, Firebase, Vercel, Render, Railway, Stripe, MercadoPago, OpenAI,
Anthropic, Twilio, SendGrid, Mailchimp, HubSpot, Google/otros Analytics, Sentry, New Relic,
Datadog, Cloudflare. Para cada uno anota: nombre, para qué se usa (heurístico), archivo:línea,
y si probablemente actúa como encargado del tratamiento.
Paso 5 — Mapear transferencias internacionales
Por cada proveedor del Paso 4, estima si los datos salen de Uruguay (la mayoría de estos
servicios alojan fuera del país). Registra: proveedor, país/región estimada, categorías de
datos involucradas, base legal posible (art. 23 — sources/ley-18331.md) y si requiere
autorización URCDP o cumple por nivel adecuado/excepción. Marca lo incierto como
[verificar contra fuente oficial].
Paso 6 — Evaluar controles
Recorre C-01..C-14 de references/controls.md. Para cada control determina estado
(cumple/parcial/no_cumple/no_aplica/requiere_revision), evidencia (archivo:línea),
riesgo (alto/medio/bajo) y remediación. Sé conservador: ante duda, requiere_revision.
Paso 7 — Generar documentos
Crea .compliance/docs/ y genera, a partir de templates/, completando con los hallazgos:
inventario-datos.mdmatriz-tratamientos.mdpolitica-privacidad.mdcontrato-encargado.mdmatriz-proveedores-transferencias.mdprocedimiento-derechos-titulares.mdplan-respuesta-incidentes.mdregistro-incidentes.mdevaluacion-riesgo-privacidad.mdresumen-cumplimiento.md
Cada documento debe: (a) incluir el disclaimer; (b) citar base legal por afirmación; (c)
marcar lo no verificable con [verificar contra fuente oficial]; (d) referenciar evidencia
archivo:línea cuando exista.
Paso 8 — Generar state.json
Escribe .compliance/state.json siguiendo templates/state.schema.json: por cada control,
id, estado, evidencia (lista de {archivo, linea, nota}), riesgo, remediacion,
base_legal. Incluye metadatos: empresa, fecha, version_skill, fuentes usadas.
Paso 9 — Cierre
Muestra al usuario el resumen-cumplimiento.md: hallazgos por riesgo, controles en
no_cumple/parcial, y próximos pasos. Reitera el disclaimer y la recomendación de validar
con un profesional habilitado y de inscribir las bases ante la URCDP cuando corresponda.
Estructura de salida
.compliance/
├── empresa.json
├── state.json
└── docs/
├── inventario-datos.md
├── matriz-tratamientos.md
├── politica-privacidad.md
├── contrato-encargado.md
├── matriz-proveedores-transferencias.md
├── procedimiento-derechos-titulares.md
├── plan-respuesta-incidentes.md
├── registro-incidentes.md
├── evaluacion-riesgo-privacidad.md
└── resumen-cumplimiento.md
Recursos del repo (lee según necesidad)
references/controls.md— catálogo de controles y mapa control→documento.packs/ley-18331/pack.md— detalle normativo, plazos y definiciones.sources/— fuentes oficiales y citación canónica.templates/— plantillas de cada documento ystate.schema.json.
Last updated: October 13, 2026
Files (34)
CHANGELOG.mdAssetsCONTRIBUTING.mdAssetsexamples/ejemplo-saas/.compliance/docs/resumen-cumplimiento.mdAssetsexamples/ejemplo-saas/.compliance/state.jsonAssetsexamples/ejemplo-saas/empresa.example.jsonAssetsexamples/README.mdAssets.github/ISSUES_INICIALES.mdAssets.github/ISSUE_TEMPLATE/normativa.mdAssets.gitignoreAssetsLICENSEAssetsNOTICE.mdAssetspacks/ley-18331/pack.mdAssetsREADME.mdAssetsreferences/controls.mdReferencesROADMAP.mdAssetsSECURITY.mdAssetsSKILL.mdSKILL.mdsources/decreto-414-009.mdAssetssources/decreto-64-020.mdAssetssources/ley-18331.mdAssetssources/ley-19670-arts-37-40.mdAssetssources/README.mdAssetssources/urcdp-guias.mdAssetstemplates/contrato-encargado.mdAssetstemplates/evaluacion-riesgo-privacidad.mdAssetstemplates/inventario-datos.mdAssetstemplates/matriz-proveedores-transferencias.mdAssetstemplates/matriz-tratamientos.mdAssetstemplates/plan-respuesta-incidentes.mdAssetstemplates/politica-privacidad.mdAssetstemplates/procedimiento-derechos-titulares.mdAssetstemplates/registro-incidentes.mdAssetstemplates/resumen-cumplimiento.mdAssetstemplates/state.schema.jsonAssets
- Jurisdicción
- 🇺🇾 Uruguay
- Área de práctica
- Data protection
- Licencia
- MIT
- Autor
- juliancardozo
Test compliance-uy — motor de auditoría de protección de datos (Uruguay)
Ask a legal question — get an answer generated live from this skill’s instructions.
Sign in to test this skill.