CtrlK
BlogDocsLog inGet started
Tessl Logo

reidentifying-text

Reversibly de-identify clinical text with OpenMed and later restore the original PHI from a saved mapping. Use when the user needs pseudonymization rather than permanent anonymization, wants to mask PHI now and re-link it later under authorization (e.g. recontact, adjudication, GDPR pseudonymization), asks about deidentify keep_mapping, reidentify, or how to store and protect the re-identification mapping. Covers when reversibility is and is not appropriate (pseudonymization vs HIPAA Safe Harbor anonymization). Pairs after extracting-pii-entities and deidentifying-clinical-text.

74

Quality

93%

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

82%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, executable reference: every code block runs as written, the reversible-vs-irreversible decision is tabulated, and the security posture of the mapping is enforced with concrete storage patterns. The round-trip has a validation assert and a pitfall checklist but no recovery loop, and a couple of rationale passages and the standards appendix could be trimmed or externalized.

Suggestions

Add a short recovery note after the round-trip assert — e.g. what to check when reidentify() output != original (surrogate collisions, wrong mapping file) — to close the workflow_clarity gap.

Move the 'Standards & references' URLs and the GDPR/HIPAA citation detail into a one-level-deep reference file, keeping SKILL.md focused on the API workflow and improving progressive disclosure.

Tighten the conceptual opening (pseudonymization vs anonymization definition) to two or three lines, since the 'Do NOT use reversibility when' section already communicates the same decision boundary operationally.

DimensionReasoningScore

Conciseness

Mostly lean — code blocks carry comments only where they change behavior ("# <-- required to enable reidentify()", "# SECRET: store separately, encrypted") and there is no tutorial padding about what de-identification is. A few passages could be trimmed: the pseudonymization-vs-anonymization conceptual opening, "consistent=True keeps surrogates stable so analytics on the pseudonymized text stay coherent", and the standards section restate things the workflow sections already imply. Not 5 because these rationale sentences are mild over-explanation; not 3 because nothing is generic background Claude already knows — the GDPR/HIPAA policy specifics are genuinely non-obvious.

4 / 5

Actionability

Four complete, copy-paste-runnable code blocks (round-trip, consistent surrogates, separate-store save, authorized reload + reidentify) plus a decision table mapping each goal to the exact call ("deidentify(..., keep_mapping=True, policy='gdpr_pseudonymization')" vs "method='remove'" vs "method='hash'"). Concrete API surface is pinned ("Result field is .deidentified_text… not .text/.entities"). Common cases are covered directly; nothing is pseudocode.

5 / 5

Workflow Clarity

The sequence is clear and numbered in-code ("# 1) De-identify AND capture the reversal mapping" … "# 2) Later, under authorization, restore") with one explicit validation checkpoint ("assert restored == note") and a gotchas section that pre-empts the main failure mode (mask collisions making round-trips lossy, with the concrete fix: "use method='replace' with consistent=True/seed"). Not 5 because there is no error-recovery loop — nothing says what to do when the assert fails or the round-trip is lossy, only how to avoid it. Not 3 because a verification checkpoint and a pitfall checklist are explicitly present.

4 / 5

Progressive Disclosure

The body is a single well-organized SKILL.md with clear section headers (When to use, Quick start, consistent surrogates, secure storage, decision table, hand-off, edge cases, standards); there are no bundle files (no references/, scripts/, or assets/ directories), so all paths are self-contained and nothing is buried or nested. Not 5 because at ~165 lines some material — the standards/URLs section and the edge-case catalog — would arguably live better in a one-level-deep reference file, keeping SKILL.md a tighter overview. Not 3 because the inline content is short and well-signaled, not a monolithic dump.

4 / 5

Total

17

/

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.

A model description: concrete third-person actions, an explicit and multi-trigger 'Use when' clause, comprehensive natural synonyms, and deliberate boundary-setting against the irreversible-anonymization sibling skills. Nothing is padded or over-claimed.

DimensionReasoningScore

Specificity

Quotes multiple specific concrete actions with comprehensive coverage: "Reversibly de-identify clinical text with OpenMed and later restore the original PHI from a saved mapping", "mask PHI now and re-link it later under authorization", "store and protect the re-identification mapping". Third-person voice throughout; matches the anchor-5 pattern of listing several specific actions with no generic filler. Not 4 because no concrete action is missing for this niche (de-identify, restore, mask, re-link, store/protect the mapping).

5 / 5

Completeness

Explicitly answers both questions with concrete trigger phrases: what ("Reversibly de-identify clinical text with OpenMed and later restore the original PHI from a saved mapping") and when ("Use when the user needs pseudonymization rather than permanent anonymization, wants to mask PHI now and re-link it later under authorization…, asks about deidentify keep_mapping, reidentify, or how to store and protect the re-identification mapping"). This mirrors the anchor-5 example structure; the 'when' clause is explicit, not implied.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms and both API and plain-English phrasings: "pseudonymization", "re-link it later", "recontact, adjudication", "deidentify keep_mapping", "reidentify", "re-identification mapping", "HIPAA Safe Harbor". Not 4 because both colloquial ("mask PHI now", "restore the original PHI") and technical trigger forms are present, covering how both lay and API-aware users would phrase the request.

5 / 5

Distinctiveness Conflict Risk

Clear niche — reversible pseudonymization — with distinct triggers (keep_mapping, reidentify, recontact, adjudication) and an explicit boundary against sibling skills: "Covers when reversibility is and is not appropriate (pseudonymization vs HIPAA Safe Harbor anonymization). Pairs after extracting-pii-entities and deidentifying-clinical-text". Unlikely to fire on generic de-identification requests since every trigger presupposes reversibility intent. Not 4 because the overlap with a sibling de-identification skill is explicitly disambiguated rather than merely minor.

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.

Validation — 16 / 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.