CtrlK
BlogDocsLog inGet started
Tessl Logo

deidentifying-multilingual-text

De-identify non-English clinical text on-device with OpenMed by passing lang= and locale= to deidentify(). Use when the user has Spanish, German, French, Italian, Portuguese, Dutch, Hindi, Telugu, Arabic, Japanese, or Turkish medical notes, needs locale-aware fake surrogates, must handle language-specific national IDs (DNI, NIR, Steuer-ID, codice fiscale, BSN, CPF, TCKN, Aadhaar), or asks which languages OpenMed PII supports. Covers SUPPORTED_LANGUAGES, get_pii_models_by_language, get_patterns_for_language, LANG_TO_LOCALE, and accent normalization. Pairs with OpenMed deidentifying-clinical-text and generating-synthetic-surrogates.

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

76%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, actionable body with executable multilingual examples and a well-organized structure, held back mainly by a Workflow that omits an explicit validation step for a destructive operation. Conciseness and progressive disclosure are good but have minor room to improve.

Suggestions

Add an explicit validation step to the Workflow — e.g. step 6: "Verify with audit=True and review the no-PHI report for residual identifiers before shipping; re-run if any remain" — so the destructive de-identification loop has a validate→fix→retry checkpoint and workflow_clarity can exceed 3.

For this >50-line skill, consider splitting the national-ID validator table and per-language gotchas into a references/ file (e.g. references/national-ids.md) and summarizing inline, improving progressive disclosure toward the split-file ideal.

Tighten the "When to use this skill" section and the comments in the discovery code block, which lightly duplicate the frontmatter description, to lift conciseness to the top anchor.

DimensionReasoningScore

Conciseness

Efficient and focused on OpenMed-specific internals Claude would not know (SUPPORTED_LANGUAGES, LANG_TO_LOCALE, accent-normalization behavior), with executable code rather than concept explanation; minor trimming possible in the "When to use this skill" section and the discovery code comments, which lightly overlap the frontmatter description.

4 / 5

Actionability

Fully executable, copy-paste-ready examples covering common cases: a complete Spanish quick-start, a German one-liner, a runtime discovery snippet, plus concrete workflow steps with real function names and parameter values like `lang="pt", locale="pt_BR"`.

5 / 5

Workflow Clarity

The 5-step Workflow is clearly sequenced (confirm language, pass lang=, set locale=, let accent normalization happen, keep surrogates stable), but de-identification is a destructive operation and the sequence lacks an explicit validation/verification checkpoint — audit=True appears only in Edge cases, not as a workflow step — so the destructive-operation cap holds at 3.

3 / 5

Progressive Disclosure

Well-organized with clear section headers (Quick start, Workflow, national IDs, Hand-off, Edge cases, Standards & references) and clearly signaled one-level-deep pointers to OpenMed source files; no bundle files exist, so all content is inline in a single >50-line file, keeping it just short of the split-file ideal.

4 / 5

Total

16

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: third-person voice, concrete actions, an explicit "Use when" clause with comprehensive natural trigger terms (named languages and national IDs), and clear delineation from sibling OpenMed skills. Every dimension lands at the top anchor with no verbosity or over-claiming.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "De-identify non-English clinical text on-device with OpenMed by passing lang= and locale= to deidentify()", handling language-specific national IDs, and accent normalization — giving comprehensive coverage rather than just naming the domain.

5 / 5

Completeness

Explicitly answers both: WHAT ("De-identify non-English clinical text on-device... by passing lang= and locale= to deidentify()") and WHEN with a concrete "Use when the user has... medical notes, needs locale-aware fake surrogates, must handle... national IDs... or asks which languages OpenMed PII supports" trigger clause.

5 / 5

Trigger Term Quality

Comprehensive natural trigger terms users would actually say: 11 named languages ("Spanish, German, French... medical notes"), 8+ named national IDs (DNI, NIR, Steuer-ID, codice fiscale, BSN, CPF, TCKN, Aadhaar), and "which languages OpenMed PII supports".

5 / 5

Distinctiveness Conflict Risk

Clear niche (non-English/multilingual de-identification) with distinct triggers (specific languages, specific national IDs) and explicit sibling boundaries ("Pairs with OpenMed deidentifying-clinical-text and generating-synthetic-surrogates"), giving minimal conflict risk with the English skill.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
maziyarpanahi/openmed
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.