CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

configuring-privacy-policies

Select and customize OpenMed's seven bundled privacy policy profiles for de-identification, and build custom surrogate generators. Use when the user asks which policy fits HIPAA Safe Harbor vs Expert Determination vs GDPR vs PIPEDA vs a research limited dataset vs strict no-leak, wants to pass policy= to deidentify(), needs to keep quasi-identifiers for research, or must register a custom MRN/name/address surrogate provider. Covers the profile-to-use-case map, AnonymizerConfig/Anonymizer for fine control, and register_clinical_provider / register_label_generator. Pairs with OpenMed deidentifying-clinical-text and generating-synthetic-surrogates.

68

Quality

85%

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

75%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 well-organized, information-dense skill: the seven-profile comparison table and regulation-to-profile decision map directly answer the selection question, and edge cases (mappings are PHI, global registry mutation, licensing) anticipate real failure modes. Weaknesses are minor: one non-executable placeholder in the customization code, some restatement after the code block, and validation that lives in a sibling skill rather than an inline checkpoint.

Suggestions

Define or stub MyClinicalProvider in the customization snippet (or replace it with a minimal concrete BaseProvider subclass) so all shown code is copy-paste executable.

Trim the paragraph following the customization code block — the annotated code and its comments already convey when to use register_label_generator vs register_clinical_provider vs AnonymizerConfig.custom_providers.

Add a one-line inline validation checkpoint (e.g. "run deidentify(..., audit=True) and confirm zero residual identifiers before treating output as compliant") so the verification loop doesn't depend on loading a sibling skill.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence — the profile table, dimension list, and gotchas are project-specific knowledge rather than re-taught concepts, and the opening definition of a policy profile is necessary context. It falls short of the lean anchor only because the paragraph after the customization code block ("Use register_label_generator(canonical_label, fn) to swap one label's surrogate; use register_clinical_provider(provider)...") restates what the annotated code directly above already demonstrates.

4 / 5

Actionability

The Quick start is copy-paste ready for three distinct profiles and the customization snippet is concrete (a real hospital_mrn generator with signature shown), but `register_clinical_provider(MyClinicalProvider)` references an undefined placeholder class, so that snippet is not executable as-is. This is exactly the 'mostly executable with minor gaps' anchor rather than fully copy-paste ready.

4 / 5

Workflow Clarity

The 'Choosing: map regulation → profile' section gives an unambiguous decision sequence, and verification is addressed by hand-off ("Verify coverage: auditing-deidentification-runs (audit=True)"), but no validation checkpoint is executed inline — the user must consult the paired skill to verify a run. Fits 'clear sequence with most checkpoints present; minor validation gaps', not the explicit inline validate-fix-retry loop of level 5.

4 / 5

Progressive Disclosure

Sections are clear and well-ordered (quick start, profile table, decision map, customization, hand-offs, gotchas), with sibling-skill and source-path references clearly signaled (openmed/core/policies/<name>.json). No bundle files exist, so everything is inlined; the core selection table earns its place, but the standards citations and deep edge-case/legal detail could live in a reference file to keep the overview leaner — 'good structure; minor organization gaps'.

4 / 5

Total

16

/

20

Passed

Description

88%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: third-person, concrete, and explicit about both capability and trigger conditions, with regulation-specific vocabulary that makes it highly discoverable. Its only weaknesses are a handful of missing domain synonyms (PHI, pseudonymize) and mild overlap with the companion surrogate-generation skill.

DimensionReasoningScore

Specificity

"Select and customize OpenMed's seven bundled privacy policy profiles for de-identification, and build custom surrogate generators" names multiple concrete, distinct actions (select profiles, customize via AnonymizerConfig, register custom surrogate generators), matching the comprehensive-coverage anchor. It sits above the 'several specific actions with minor gaps' anchor because every capability the body delivers is named.

5 / 5

Completeness

Both questions are answered explicitly: the what ("Select and customize... profiles... and build custom surrogate generators") and the when ("Use when the user asks which policy fits... wants to pass policy= to deidentify()... needs to keep quasi-identifiers for research, or must register a custom MRN/name/address surrogate provider"). Matches the anchor for concrete what-and-when trigger phrases; the level-4 anchor's weaker 'when' clause clearly undersells this text.

5 / 5

Trigger Term Quality

Natural regulatory and API phrases users would actually say are well covered ("HIPAA Safe Harbor", "Expert Determination", "GDPR", "PIPEDA", "research limited dataset", "quasi-identifiers", "policy=", "deidentify()"), but a few common synonyms like "PHI", "pseudonymize", or "anonymize" are absent. This falls between the 'comprehensive coverage' (5) and 'good coverage, a few natural terms missing' (4) anchors, noticeably above the midpoint.

4 / 5

Distinctiveness Conflict Risk

"OpenMed's seven bundled privacy policy profiles" carves out a clear niche with named regulations, and it explicitly delineates siblings ("Pairs with OpenMed deidentifying-clinical-text and generating-synthetic-surrogates"). However, "build custom surrogate generators" overlaps the paired generating-synthetic-surrogates skill's territory, giving minor overlap risk with a closely related skill — the level-4 anchor rather than 5.

4 / 5

Total

18

/

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

Path

skills/configuring-privacy-policies/SKILL.md

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.