Author and run Microsoft Presidio PII detection - wraps presidio-analyzer (PII detector) + presidio-anonymizer (replace/redact/mask/hash/encrypt operators) for scanning datasets, log streams, and free-text fields. Covers AnalyzerEngine + AnonymizerEngine setup, built-in recognizers (PERSON, EMAIL_ADDRESS, CREDIT_CARD, US_SSN, IBAN_CODE, country-specific IDs across US/UK/Spain/Italy/Poland/Singapore/Australia/India and more), custom PatternRecognizer authoring, score thresholds, and CI gating. Use when scanning *existing* data for PII (vs synthesising fresh fixtures with synthetic-pii-generator).
74
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Low
Low-risk findings.
1 low severity finding. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
The skill’s runtime workflow ingests free-text from files/inputs provided to the caller (e.g., `pii-fixture-scan.py` reads `*.json` from `tests/fixtures/` via `path.read_text()` and passes that text into `analyzer.analyze(text=text, ...)`), so outsider-authored content can be scanned without any required prior selection step by the agent.
local JSON/CSV files (user's test fixtures and datasets)
content-type · 5 sites
The plugin instructs the agent to read local JSON files (via rglob/read_text) and CSV files (via csv.DictReader) and pass their text content into presidio's analyzer.analyze(), which processes the free-text content.
SKILL.md
252
for path in Path(sys.argv[1]).rglob("*.json"):
SKILL.md
253
text = path.read_text()
SKILL.md
254
for r in analyzer.analyze(text=text, language="en", score_threshold=0.5):
SKILL.md
174
with open("input.csv") as src, open("masked.csv", "w") as dst:
SKILL.md
181
hits = analyzer.analyze(text=val, language="en")