davidcastagnetoa/skills

pii_anonymizer_presidio

Detectar y enmascarar automáticamente datos personales en logs para cumplimiento GDPR

First seen Mar 6, 2026

Installation

$ npx skills add davidcastagnetoa/skills --skill pii_anonymizer_presidio

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from davidcastagnetoa/skills · top by installs.

npx skills add davidcastagnetoa/skills

Browse all from davidcastagnetoa/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,990 B
  • docs SUMMARY.md 117 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 6 installs

SKILL.md

piianonymizerpresidio

Microsoft Presidio analiza texto en busca de PII (nombres, DNIs, fechas de nacimiento, IBANs, emails) y los reemplaza por tokens antes de que lleguen a los logs o a cualquier sistema de almacenamiento secundario.

When to use

Usar como middleware de logging y antes de cualquier export de datos a sistemas externos (Loki, Jaeger, Grafana). Aplicar también sobre los campos textuales extraídos por OCR antes de persistirlos en auditoría.

Instructions

  1. Instalar: pip install presidio-analyzer presidio-anonymizer
  2. Descargar modelo spaCy: python -m spacy download escorenewslg (español) y encoreweblg (inglés).
  3. Inicializar en backend/core/privacy.py:

``python from presidioanalyzer import AnalyzerEngine from presidioanonymizer import AnonymizerEngine analyzer = AnalyzerEngine() anonymizer = AnonymizerEngine() ``

  1. Función de enmascarado:

``python def anonymizetext(text: str, language: str = "es") -> str: results = analyzer.analyze(text=text, language=language) return anonymizer.anonymize(text=text, analyzerresults=results).text ``

  1. Añadir processor personalizado en structlog que aplique anonymize_text() al campo message de cada log entry.
  2. Configurar entidades a detectar: PERSON, IDNUMBER, DATETIME, IBANCODE, EMAILADDRESS, PHONE_NUMBER.
  3. Para campos de OCR (nombre, DOB, número de documento), aplicar antes de INSERT en PostgreSQL.

Notes

  • Presidio opera completamente offline — no envía datos a ningún servicio externo.
  • El modelo spaCy es el más preciso para español; para rendimiento en producción usar escorenews_sm.
  • Los campos MRZ y embeddings NO deben llegar nunca a los logs — filtrarlos antes de la capa de anonimización.