CtrlK
BlogDocsLog inGet started
Tessl Logo

deidentifying-clinical-text

Remove, mask, or replace PHI/PII in clinical free text on-device with OpenMed's deidentify(). Use when the user needs to de-identify medical notes, strip patient identifiers, redact PHI before sharing or analysis, anonymize discharge summaries, or pick a de-id method (mask vs remove vs replace vs hash vs shift_dates). Covers confidence_threshold for safety, consistent+seed for stable surrogates, keep_mapping for reversible de-id, policy= profiles, and the DeidentificationResult fields. Pairs with OpenMed extract_pii (detect spans), reidentify (restore), configuring-privacy-policies, and auditing-deidentification-runs.

75

Quality

94%

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

93%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 high-quality, dense skill body: executable examples, exact attribute names, a deliberate threshold-setting workflow, and strong PHI-handling hygiene throughout. The main improvement is closing the feedback loop in the Workflow section by stating what to do when coverage verification fails.

Suggestions

Add an explicit error-recovery branch to the Workflow (e.g., step 6: 'If residual PHI is found, lower confidence_threshold and/or extend the policy profile, then re-run and re-audit') to complete the validate-fix-retry loop.

Consolidate the threshold guidance currently split between Workflow step 2 and the Edge cases section ('Threshold is a safety dial, not an accuracy dial') into one place so the recovery action is discoverable at the verification step.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: no space is spent explaining what PHI, HIPAA, or de-identification libraries are; tables carry the method and field information compactly, and every section delivers skill-specific facts (attribute names, thresholds, mapping-handling rules). It fits the anchor-5 'every token earns its place' profile rather than anchor 4's 'minor instances of over-explanation'.

5 / 5

Actionability

Two fully executable code blocks (the quick start and the consistent-surrogates/reversibility example with an assert), a before/after redaction example in comments ("Patient [NAME] (MRN [ID_NUM])"), and a field table with exact attribute names give copy-paste-ready guidance covering the common cases, which matches the anchor-5 example.

5 / 5

Workflow Clarity

The 6-step Workflow is clearly sequenced with real checkpoints (step 3: inspect pii_entities by offset and label to confirm coverage; step 6: "Verify, don't assume" with audit=True and the 18-identifier checklist), so the destructive/batch cap at 3 does not apply. However, an explicit error-recovery branch is absent — there is no 'if coverage is incomplete, lower confidence_threshold and re-run' instruction tying the safety-dial guidance into the workflow — so it sits at anchor 4 rather than anchor 5's feedback loops for error recovery.

4 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/), and none are needed: all inline content is overview-appropriate with nothing that clearly belongs in a separate file inlined. Sections are well organized and sibling-skill pointers are clearly signaled one level deep (e.g., 'See configuring-privacy-policies', 'auditing-deidentification-runs', 'shifting-clinical-dates'), matching the anchor-5 'clear overview with well-signaled one-level-deep references'.

5 / 5

Total

19

/

20

Passed

Description

92%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 strong description: it names concrete actions, all five methods, key parameters, and an explicit multi-trigger 'Use when' clause, while differentiating adjacent skills in the same family. The only gap is a few natural trigger synonyms (HIPAA, Safe Harbor, sanitize) that users in this domain commonly say.

Suggestions

Add high-affinity domain trigger terms such as 'HIPAA' or 'Safe Harbor compliant' to the Use-when clause, since users seeking de-identification frequently phrase the request that way.

Include a natural synonym like 'scrub' or 'sanitize patient data' alongside 'de-identify' and 'redact' to broaden natural-language coverage.

DimensionReasoningScore

Specificity

Concrete actions are enumerated directly ("Remove, mask, or replace PHI/PII in clinical free text on-device with OpenMed's deidentify()") and comprehensively extended by "(mask vs remove vs replace vs hash vs shift_dates)" plus parameter-level coverage (confidence_threshold, consistent+seed, keep_mapping, policy= profiles, DeidentificationResult fields). This matches the anchor-5 comprehensive-coverage example; it exceeds anchor 4, which expects minor gaps.

5 / 5

Completeness

Both halves are explicit: the what ("Remove, mask, or replace PHI/PII in clinical free text on-device with OpenMed's deidentify()") and a concrete when clause ("Use when the user needs to de-identify medical notes, strip patient identifiers, redact PHI before sharing or analysis, anonymize discharge summaries, or pick a de-id method"). This mirrors the anchor-5 example structure; anchor 4 would require a when-clause that 'could be more explicit', which is not the case here.

5 / 5

Trigger Term Quality

Natural user phrases are strong ("de-identify medical notes", "strip patient identifiers", "redact PHI before sharing or analysis", "anonymize discharge summaries"), but a few common natural terms in this domain are missing — notably HIPAA / Safe Harbor and synonyms like "sanitize" or "scrub". Good keyword coverage with a few natural terms missing fits anchor 4; it is well above anchor 3's 'some relevant keywords but missing common variations'.

4 / 5

Distinctiveness Conflict Risk

A clear clinical de-identification niche with distinct triggers, and it explicitly disambiguates adjacent skills ("Pairs with OpenMed extract_pii (detect spans), reidentify (restore), configuring-privacy-policies, and auditing-deidentification-runs"), minimizing conflict risk — matching the anchor-5 'clear niche with distinct triggers; minimal conflict risk'.

5 / 5

Total

19

/

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.