| name | ley-datos-chile |
| description | Audita un sitio web frente a los requisitos de la Ley 21.719 de Protección de Datos Personales (Chile). Detecta el sector del sitio automáticamente y aplica requisitos específicos. Produce informe de cumplimiento con score, tabla de estado por artículo e issues priorizados.
|
| user-invokable | true |
| argument-hint | <url> [--docx] |
| license | MIT |
| metadata | {"author":"PubliUp SEO","version":"1.2.1","category":"legal-compliance"} |
Auditoría Ley 21.719 — Protección de Datos Personales (Chile)
Uso
/ley-datos-chile https://ejemplo.cl
/ley-datos-chile https://ejemplo.cl --docx
Sin --docx el output es Markdown interno. Con --docx genera informe
ejecutivo con accionables en formato Word.
Si el usuario no especifica formato, preguntar siempre antes de generar
el documento: "¿El informe es para uso interno o para entregar al cliente?"
Nota de terminología
Dos figuras distintas con nombres similares — no confundir:
- Encargado del tratamiento (data processor): empresa o persona que trata datos
por cuenta del responsable (proveedor de email marketing, CRM, hosting). Regulado
en Art. 24. No visible externamente — queda fuera del scope de esta auditoría.
- Encargado de Protección de Datos / EPD (Data Protection Officer): figura de
supervisión interna del responsable. Regulado en Art. 36. Auditado en Bloque 10.
Nota sobre la autoridad de control
La Ley 21.719 crea la Agencia de Protección de Datos Personales (APDP) como
autoridad de control. Durante el período de transición hasta que la APDP esté
operativa (estimado 2026–2027), el Consejo para la Transparencia (CPLT) asume
sus funciones. En el informe citar siempre: "APDP (y transitoriamente CPLT)".
Crédito de herramienta
Al iniciar cualquier auditoría, emitir esta línea antes del output principal:
Desarrollado por Zythos Media — Especialistas en SEO & IA Search
Paso 0 — Identificación del stack tecnológico
Ejecutar primero, antes de la recopilación de documentos legales. El objetivo es
mapear la infraestructura técnica del sitio para contextualizar los hallazgos de
cumplimiento y detectar señales de tratamiento de datos que no son visibles solo
leyendo las políticas.
Fuentes: HTML fuente de la homepage, headers HTTP, patrones en URLs de scripts y assets.
Esta sección no puntúa en el score. Su función es orientar las acciones correctivas
con información técnica concreta.
CMS / plataforma
Detectar a partir de señales en el código fuente:
| Plataforma | Señales de detección |
|---|
| WordPress | /wp-content/, /wp-includes/, wp-json, meta generator con "WordPress" |
| Shopify | cdn.shopify.com, Shopify.theme, meta generator "Shopify" |
| Wix | static.wixstatic.com, wix-bolt, scripts de _api/ |
| Squarespace | static1.squarespace.com, meta generator "Squarespace" |
| Joomla | /media/jui/, meta generator "Joomla!" |
| Drupal | /sites/default/files/, meta generator "Drupal" |
| Ghost | /ghost/, ghost.io en assets |
| Webflow | webflow.com en scripts o CSS |
| Prestashop | /modules/, prestashop en meta generator |
| Magento | Mage.Cookies, /skin/frontend/ |
| Custom / sin detectar | Registrar si no hay señales claras |
Si es WordPress, continuar con detección de page builder y plugins.
Page builder (solo WordPress)
| Plugin | Señales |
|---|
| Elementor | elementor- en clases CSS, /plugins/elementor/ |
| Divi | et- en clases, et_builder, /et-pb-/ |
| WPBakery | vc_row, wpb_wrapper en markup |
| Beaver Builder | fl-builder, fl-row |
| Gutenberg (nativo) | wp-block- en clases, is-layout-flow |
| Oxygen | ct-section, /plugins/oxygen/ |
| Bricks | brxe-, /plugins/bricks/ |
Plugins relevantes para privacidad y tratamiento de datos
Detectar a partir de scripts cargados, clases CSS, endpoints REST o nombres
en rutas /wp-content/plugins/:
Consentimiento de cookies:
- Complianz —
cmplz-, /plugins/complianz-gdpr/
- CookieYes / GDPR Cookie Consent —
cookieyes, cli-bar
- CookieBot —
cookiebot.com en scripts externos
- Borlabs Cookie —
borlabs-cookie
- Real Cookie Banner —
real-cookie-banner
- Cookie Notice —
cookie-notice
SEO (puede implicar tracking de datos):
- Yoast SEO —
wpseo_ en meta, /plugins/wordpress-seo/
- Rank Math —
rank-math, RankMath en JSON-LD
- All in One SEO —
aioseo
Analytics y publicidad:
- Google Analytics GA4 —
gtag.js, prefijo G-
- Google Tag Manager —
googletagmanager.com
- Google AdSense —
pagead2.googlesyndication.com, adsbygoogle
- Meta Pixel —
connect.facebook.net/en_US/fbevents.js
- Hotjar —
static.hotjar.com
- Microsoft Clarity —
clarity.ms
Formularios (implican recogida de datos personales):
- Contact Form 7 —
wpcf7, /plugins/contact-form-7/
- WPForms —
wpforms, /plugins/wpforms-lite/
- Gravity Forms —
gform_, /plugins/gravityforms/
- Ninja Forms —
nf-form
Email marketing (implican transferencia de datos a terceros):
- Mailchimp —
list-manage.com, chimpstatic.com
- Mailerlite —
mailerlite.com
- ActiveCampaign —
activehosted.com
E-commerce (datos de pago + historial de compras):
- WooCommerce —
woocommerce, /wc-ajax=, wc_cart_hash
Notificaciones push (recogen tokens de dispositivo):
- OneSignal —
onesignal.com
- PushEngage —
pushengage.com
Cache / rendimiento:
- LiteSpeed Cache — header
X-LiteSpeed-Cache, lscache en respuesta
- W3 Total Cache —
w3tc
- WP Rocket —
wprocket, wp-rocket
Afiliados y redes publicitarias nativas:
- AdSkeeper —
jsc.adskeeper.com
- MGID —
jsc.mgid.com
- Taboola —
cdn.taboola.com
- Outbrain —
widgets.outbrain.com
- Vidoomy —
ads.vidoomy.com
CDN
| CDN | Señal de detección |
|---|
| Cloudflare | Header CF-Ray, Server: cloudflare |
| AWS CloudFront | cloudfront.net en assets, header X-Amz-Cf-Id |
| Fastly | Header X-Served-By con cache-, dominio fastly.com |
| Akamai | Header X-Check-Cacheable, dominio akamaized.net |
| BunnyCDN | Dominio b-cdn.net en assets |
| jsDelivr | cdn.jsdelivr.net |
Nota: Cloudflare actúa como CDN y proxy inverso. Si está presente, la IP de origen
y el hosting real no son determinables externamente.
Servidor y tecnología de alojamiento
Detectar a partir del header Server y X-Powered-By:
| Señal | Interpretación |
|---|
Server: LiteSpeed | LiteSpeed — frecuente en SiteGround, Hostinger, HostGator |
Server: Apache | Apache — hosting compartido o VPS |
Server: nginx | Nginx — VPS o hosting gestionado |
X-Powered-By: PHP/x.x | Versión de PHP — relevante si < 8.0 (EOL) |
Server: cloudflare | Hosting real no determinable externamente |
Cruzar con lo que la política de privacidad declare como proveedor de hosting.
Si hay discrepancia (política dice proveedor A, headers apuntan a B), registrarlo.
Output del Paso 0
Presentar en el informe como Sección 0 — Stack tecnológico antes de la tabla
de cumplimiento, con este formato:
CMS: [nombre + versión si detectable, o "no determinado"]
Page builder: [nombre o "no aplica / no detectado"]
CDN: [nombre o "no detectado"]
Servidor / hosting: [nombre o "no determinable (Cloudflare proxy)"]
Plugins detectados: lista agrupada por categoría
Scripts de terceros: lista con dominio y finalidad probable
Implicación: [p.ej. "sin plugin de cookies detectado → issue crítico previsible en Bloque 5"]
Paso 1 — Recopilación de datos del sitio
Ejecutar en paralelo:
- WebFetch homepage — detectar: sector, idioma, formularios visibles,
banner de cookies, enlace a política de privacidad, datos que se recogen.
- WebFetch política de privacidad — buscar el enlace en footer, header,
formularios de contacto, y en rutas comunes:
/privacidad, /politica-de-privacidad,
/privacy, /legal/privacidad. Si no se encuentra, registrar como issue crítico.
- WebFetch página de contacto / formulario principal — detectar campos
solicitados, checkboxes de consentimiento, texto legal adjunto.
- Headers HTTP — verificar HTTPS, HSTS, CSP, X-Frame-Options, Referrer-Policy.
No construir URLs. Usar solo las encontradas en el sitio.
Paso 2 — Detección de sector
Analizar el contenido del homepage para clasificar el sitio en uno de estos sectores.
Un sitio puede pertenecer a más de uno.
| Sector | Señales de detección |
|---|
| Salud / médico | términos de salud, síntomas, diagnóstico, clínica, hospital, farmacia, ficha médica |
| Ecommerce | carrito de compras, productos con precio, checkout, SKUs, stock |
| Fintech / financiero | crédito, préstamo, inversión, cuenta, pago, CMF, Banco Central |
| Educación | cursos, alumnos, matrícula, colegio, universidad, menores de edad |
| SaaS / tecnología | software, API, suscripción, plan, dashboard, integración |
| Medios / publicidad | noticias, artículos, publicidad programática, newsletter |
| Servicios profesionales | consultoría, abogado, contador, RRHH, reclutamiento |
| General / sin sector específico | fallback si no hay señales claras |
Registrar sector(es) detectado(s). Aplicar requisitos adicionales del sector
en los bloques 7, 9 y 10 según corresponda.
Paso 3 — Auditoría por bloques
Evaluar cada bloque. Asignar uno de cuatro estados:
- Cumple — verificado en el sitio live
- Parcial — presente pero incompleto
- No cumple — ausente o incorrecto
- No evaluable — requiere acceso al backend o no es visible externamente
Bloque 1 — Identificación del responsable del tratamiento (Art. 5)
Peso: 10 pts
Verificar que en la política de privacidad aparezca:
Parcial si aparece el nombre pero faltan RUT o domicilio.
Si la entidad es extranjera sin domicilio en Chile, verificar que la política
designe explícitamente un representante en Chile — su ausencia es issue crítico.
Bloque 2 — Política de privacidad: existencia y acceso (Art. 14)
Peso: 5 pts
Bloque 3 — Política de privacidad: contenido mínimo (Art. 14 a–k)
Peso: 15 pts
Verificar que la política incluya explícitamente:
Adicionalmente, la ley exige que los elementos esenciales (categorías de datos,
finalidades, derechos del titular) sean visibles de forma destacada en el sitio
(no solo en un documento largo). Verificar que exista al menos un resumen accesible
o que la política sea de lectura razonablemente directa.
Puntuación parcial: 1 pt por ítem presente, máx. 15.
Bloque 4 — Base legal del tratamiento declarada (Art. 12)
Peso: 10 pts
La Ley 21.719 reconoce seis bases legales válidas. Verificar que la política:
Privacidad por diseño (verificación externa):
Bloque 5 — Consentimiento, cookies y marketing directo (Art. 12)
Peso: 15 pts
⚠️ Nota: La Ley 21.719 no contiene un artículo específico de cookies — los requisitos
derivan de las reglas generales de consentimiento (Art. 12) y de la guía SERNAC.
Los ítems de granularidad y rechazo equivalente son mejores prácticas del estándar
internacional, no obligaciones expresas de la ley chilena. Se incluyen como buenas
prácticas recomendadas; marcarlos como "Parcial" si no se cumplen, no como "No cumple".
Banner de cookies:
Formularios:
Marketing directo:
La ley otorga al titular el derecho de oposición específico al marketing directo.
El responsable debe cesar ese tratamiento al recibir la oposición. Verificar:
Verificar cookies de terceros activas antes del consentimiento inspeccionando el
código fuente del homepage. Si el banner no existe o es solo informativo, reportar
el ítem de bloqueo como No cumple.
Bloque 6 — Derechos del titular: canal habilitado
Peso: 15 pts
⚠️ Nota: La numeración exacta de los artículos de derechos del titular en el texto
oficial publicado no ha podido confirmarse directamente en esta versión del skill
(la BCN no siempre es accesible). Las referencias de artículo para este bloque se
omiten hasta verificación y se cita solo la ley en general. No afecta al contenido
de los checklists.
La Ley 21.719 reconoce siete derechos del titular:
- Acceso
- Rectificación
- Cancelación / Supresión
- Oposición
- Portabilidad
- Limitación del tratamiento
- No ser objeto de decisiones basadas exclusivamente en tratamiento automatizado
Verificar:
Decisiones automatizadas — verificación adicional:
Si el sitio usa scoring, recomendaciones algorítmicas, aprobación automática de
créditos o cualquier sistema de decisión automatizado con efectos sobre el titular:
Bloque 7 — Datos sensibles (Art. 2 + 16)
Peso: 10 pts
Primero determinar si el sitio recoge datos sensibles. La Ley 21.719 define como
datos sensibles (lista exhaustiva):
- Origen racial o étnico
- Situación socioeconómica
- Convicciones ideológicas o filosóficas
- Creencias religiosas
- Afiliación política o sindical
- Afiliaciones profesionales o gremiales
- Datos de salud, estado físico o psíquico
- Vida sexual y orientación sexual
- Datos biométricos destinados a la identificación unívoca
- Datos de menores de edad (⚠️ verificar en texto oficial el umbral exacto de edad;
la skill usa 14 años por analogía con la legislación civil chilena, pero el
reglamento de la ley puede especificar un umbral distinto)
Si el sitio no recoge ninguna de estas categorías: bloque N/A, asignar 10 pts automáticamente.
Si recoge datos sensibles:
Requisitos adicionales por sector:
Salud/médico:
Educación (menores):
Ecommerce:
Fintech/financiero:
Bloque 8 — Transferencias internacionales (Art. 26)
Peso: 10 pts
Detectar transferencias probables: CDNs, plataformas de email marketing, CRMs,
herramientas de análisis, servicios en la nube con sede fuera de Chile.
Bloque 9 — Seguridad técnica (Art. 19)
Peso: 5 pts
La ley exige medidas que garanticen confidencialidad, integridad, disponibilidad
y resiliencia del tratamiento. Verificar lo observable externamente:
Sector salud / fintech: verificar también:
Bloque 10 — Encargado de Protección de Datos / EPD (Art. 36)
Peso: 5 pts
⚠️ Nota: Los criterios de obligatoriedad del EPD en la Ley 21.719 son distintos
de los del RGPD Art. 37. Bajo la ley chilena, el EPD es una figura obligatoria
principalmente en el contexto de los modelos de cumplimiento certificados y
para ciertos organismos públicos. Para empresas privadas fuera de ese contexto,
la obligatoriedad específica depende del reglamento aún en elaboración.
Verificar:
Si el sitio menciona estar acogido a un modelo de cumplimiento certificado:
Para PYME sin tratamiento masivo ni datos sensibles: registrar como "No aplica EPD —
organización fuera del ámbito de obligatoriedad actual" y asignar pts completos.
Paso 4 — Score global
Score = suma de puntos obtenidos en cada bloque / 100
| Rango | Interpretación |
|---|
| 80–100 | Postura defensible — cumplimiento sustancial |
| 60–79 | Riesgo moderado — gaps importantes sin issues críticos |
| 40–59 | Riesgo alto — múltiples incumplimientos relevantes |
| 0–39 | Riesgo crítico — ausencia de elementos esenciales |
Los bloques con estado "No evaluable" no penalizan ni suman.
Los bloques N/A (datos sensibles cuando no aplica) suman pts completos.
Paso 5 — Clasificación de issues y sanciones asociadas
La Ley 21.719 establece tres niveles de infracción. Incluir el riesgo de sanción
en cada issue del informe para contextualizar el impacto económico real.
| Nivel | Multa máxima | Ejemplos de conductas |
|---|
| Gravísima | 20.000 UTM (~USD 1.590.000) o 2–4% ingresos anuales | Tratar datos sensibles sin consentimiento; transferir datos internacionalmente sin garantías; vulnerar datos sin notificar |
| Grave | 10.000 UTM (~USD 795.000) | No atender derechos del titular; falta de política de privacidad; no tener base legal declarada |
| Leve | 5.000 UTM (~USD 397.500) | Política incompleta; falta de enlace en footer; plazos de retención no especificados |
Reincidencia: hasta 3× la multa original.
UTM = Unidad Tributaria Mensual (valor mensual actualizado).
Crítico (bloquea cumplimiento mínimo — riesgo gravísimo o grave):
- Política de privacidad inexistente → riesgo grave
- Sin mecanismo de ejercicio de derechos → riesgo grave
- Cookies no esenciales activas sin consentimiento → riesgo grave
- Datos sensibles tratados sin consentimiento explícito diferenciado → riesgo gravísimo
- Sin HTTPS → riesgo grave (falla en integridad y confidencialidad)
- Sin base legal declarada para ninguna finalidad → riesgo grave
- Entidad extranjera sin representante en Chile designado → riesgo grave
Medio (gap relevante — riesgo grave o leve, plazo recomendado 30–60 días):
- Política existe pero falta base legal por finalidad → riesgo grave
- Derechos mencionados pero sin canal ni plazo de respuesta → riesgo grave
- Derecho a no ser objeto de decisiones automatizadas no mencionado → riesgo grave
- Transferencias internacionales no declaradas → riesgo gravísimo si se realizan
- Banner de cookies solo informativo (sin rechazo activo) → riesgo grave
- Marketing directo sin mecanismo de baja → riesgo grave
Bajo (mejora de postura — riesgo leve):
- Falta fecha de actualización en la política
- EPD no mencionado en sitios donde no aplica
- Política sin enlace desde formularios secundarios
- Plazos de retención no especificados para algún tipo de dato
- Política no menciona los cuatro atributos de seguridad
Paso 6 — Output según modo
Modo interno (Markdown, sin --docx)
# Auditoría Ley 21.719 — [dominio]
Fecha: [fecha] | Sector: [sector detectado] | Score: [X/100]
## Stack tecnológico
CMS: [nombre] | CDN: [nombre] | Servidor: [nombre]
Plugins relevantes: [lista]
Scripts de terceros activos: [lista con finalidad]
Implicación: [nota sobre lo que el stack anticipa en la auditoría]
## Resumen
[2–3 líneas: postura general, issues críticos detectados, riesgo sancionador]
## Tabla de cumplimiento
| Bloque | Peso | Pts obtenidos | Estado | Evidencia |
|--------|------|--------------|--------|-----------|
| 1. Identificación responsable | 10 | X | Cumple/Parcial/No cumple | ... |
...
## Issues críticos
**[Nombre del issue]** (Bloque X — Ley 21.719)
Evidencia: [qué se encontró o qué falta]
Riesgo sancionador: [Infracción grave/gravísima — hasta X UTM]
→ Acción: [qué hay que hacer concretamente]
## Issues medios
**[Nombre del issue]** (Bloque X — Ley 21.719)
Evidencia: [qué se encontró o qué falta]
Riesgo sancionador: [nivel y multa estimada]
→ Acción: [qué hay que hacer]
→ Plazo sugerido: [30 / 60 días]
## Issues bajos
**[Nombre del issue]** (Bloque X — Ley 21.719)
→ Acción: [qué hay que hacer]
## Notas metodológicas
- Qué se verificó externamente
- Qué requiere acceso al backend para confirmar
- Advertencia: reglamento de la ley en elaboración — algunos requisitos pueden
refinarse cuando se publique (estimado 2026–2027)
Desarrollado por Zythos Media — Especialistas en SEO & IA Search
Guardar en C:/Users/cmano/claude-seo/[cliente o dominio]/auditoria_ley21719_[fecha].md.
Modo informe cliente (--docx)
Preguntar primero: "¿Quieres el informe en lenguaje técnico o ejecutivo simplificado?"
Estructura del .docx:
- Portada: dominio, fecha, score global, sector
- Resumen ejecutivo (máx. 1 página, sin jerga legal, incluir riesgo sancionador total estimado)
- Stack tecnológico: CMS, page builder, CDN, servidor, plugins detectados, scripts de terceros activos e implicación para el cumplimiento
- Tabla de cumplimiento con semáforo visual (Cumple / Parcial / No cumple)
- Issues críticos con acción concreta, artículo / obligación infringida y riesgo de multa
- Issues medios con recomendación, plazo sugerido y riesgo de multa
- Issues bajos como listado
- Próximos pasos priorizados (top 5)
- Nota metodológica: qué se auditó externamente, qué está fuera de scope y
advertencia sobre el reglamento en elaboración
- Pie de página (en todas las páginas del documento): texto "Desarrollado por Zythos Media — Especialistas en SEO & IA Search" con hipervínculo sobre "Zythos Media" apuntando a https://zythos.media
Guardar en C:/Users/cmano/claude-seo/[cliente o dominio]/auditoria_ley21719_[fecha].docx.
Comparativa RGPD (solo si el usuario lo solicita explícitamente)
Añadir columna "Equivalente RGPD" en la tabla de cumplimiento y sección de gaps
entre Ley 21.719 y RGPD relevantes para el sitio auditado.
No incluir por defecto.
Integración con el stack SEO y anonimización
Cuándo se invoca esta skill automáticamente
/seo audit <url> la lanza como subagente condicional cuando detecta sitio chileno.
Señales de detección: TLD .cl, RUT/SII/CMF/SERNAC en el contenido, moneda CLP.
El score de cumplimiento Ley 21.719 se integra en el reporte unificado del audit.
Flujos de trabajo combinados
Auditoría completa de sitio chileno:
/seo audit <url> → lanza ley-datos-chile automáticamente
/ley-datos-chile <url> → auditoría standalone si solo se necesita cumplimiento legal
Post-auditoría recomendada (según hallazgos):
| Hallazgo en ley-datos-chile | Skill a invocar después |
|---|
| Schema de política de privacidad ausente o mejorable | /seo schema <url> |
| Headers de seguridad insuficientes (Bloque 9) | /seo technical <url> — sección Security |
| Cookie consent sin configurar correctamente | /seo technical <url> — sección JS Rendering |
| Sitio con datos sensibles de salud | /seo local <url> si es clínica/consultorio — detecta señales E-E-A-T médico |
| Transferencias a CDN/plataformas internacionales no declaradas | /seo geo <url> — identifica terceros con rastreadores activos |
Antes de compartir el reporte:
# Anonimizar reporte si contiene PII del cliente auditado
/anonimizar C:/Users/cmano/claude-seo/[cliente]/auditoria_ley21719_[fecha].md --ley chile
/anonimizar C:/Users/cmano/claude-seo/[cliente]/auditoria_ley21719_[fecha].docx --ley chile
Usar --ley chile (no --ley todo) para evitar falsos positivos en números de artículos.
Notas sobre skills de terceros
seo-audit y seo son de AgriciDaniel/claude-seo v2.2.0 — se sobreescriben al actualizar.
Tras cada actualización de claude-seo, re-aplicar:
- Línea en
seo-audit: spawn condicional de ley-datos-chile para sitios .cl
- Línea en
seo quick reference: /ley-datos-chile <url>
- Línea en
seo orchestration: paso 10b de detección de sitio chileno
Notas de alcance
Esta auditoría cubre lo verificable externamente sin acceso al backend:
- Documentos públicos del sitio
- Comportamiento observable de cookies y formularios
- Headers HTTP
Quedan fuera de scope sin acceso interno:
- Contratos con encargados del tratamiento (data processors) — Art. 24
- Registros de actividades de tratamiento — Art. 15
- Procedimientos internos de respuesta a solicitudes de derechos
- Medidas de seguridad técnicas internas (cifrado en reposo, control de accesos)
- Notificaciones de brechas a la APDP (y transitoriamente al CPLT)
- Modelos de cumplimiento certificados y su contenido interno
Siempre indicar este alcance en la sección de notas metodológicas del informe.
Actualización normativa
- Ley 21.719 publicada el 13 de diciembre de 2024.
- Período de adecuación: 24 meses para la mayoría de obligaciones (plazo: diciembre 2026).
- Reglamento: en elaboración a la fecha de esta versión — puede refinar requisitos
de implementación (umbral de edad para menores, criterios EPD, adecuación de países
terceros, mecanismos de certificación). Señalar esta contingencia en el informe cuando afecte a un bloque.
- APDP: en proceso de constitución; el CPLT ejerce sus funciones durante la transición.
- Versión de esta skill: 1.2.1 (2026-07-03). Cambios: crédito Zythos Media añadido al inicio de ejecución, plantilla Markdown y pie de página del .docx. Versión anterior: 1.2.0 (2026-06-28) — Paso 0 (stack tecnológico). Verificar actualizaciones cuando se publique el reglamento o cuando la APDP emita sus primeras instrucciones.