CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

shifting-clinical-dates

Apply consistent per-patient date shifting in OpenMed that preserves intervals between events while satisfying HIPAA Safe Harbor's date rule. Use when the user needs to de-identify dates but keep temporal structure for research, shift all dates by the same offset per patient, preserve days-between-events for survival or longitudinal analysis, cap ages over 89, or strip everything but the year. Covers deidentify(method="shift_dates", date_shift_days=..., keep_year=...) and per-patient reproducible offsets via consistent=True, seed=.... Pairs with OpenMed deidentifying-clinical-text and auditing-safe-harbor-checklist.

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 high-quality, immediately usable skill: executable code for both quick start and the harder per-patient-seed case, a clear workflow with validation, and a sharp gotcha section capturing real failure modes (zero offsets, global seeds, age-capping). The only improvements are trimming the redundant interval-math explanation and adding recovery guidance after the audit step.

Suggestions

Trim the 'How interval preservation works' section (keep the one-line rationale, drop the ASCII diagram) — the code comments and 'Admit -> antibiotics is still 2 days' line already convey it, saving tokens.

Add a feedback loop after the workflow's verification step, e.g. 'If audit=True flags a calendar leak or broken interval, check for a global seed or keep_year=True before re-running'.

DimensionReasoningScore

Conciseness

The body is lean and dense with domain-specific knowledge (offset policy, seed derivation, edge cases), but the 'How interval preservation works' section and ASCII diagram restate what the code comments and one-line rationale already convey, and the intro overlaps the description. Anchor 4 (efficient, minor trimming possible) fits better than 5; better than 3 since nothing explains generic concepts Claude already knows.

4 / 5

Actionability

Both code blocks are complete and executable — the quick start with parameter comments, and a full HMAC-based per-patient seed function — and the workflow steps cite concrete flags ('consistent=True', 'keep_year=False', 'audit=True'). Specific examples cover the common cases; no pseudocode.

5 / 5

Workflow Clarity

The 5-step workflow is clearly sequenced with an explicit validation step ('Verify intervals are preserved and no calendar leaked via audit=True') and a well-chosen gotcha list, but no feedback loop for what to do when the audit fails — anchor 4 (most checkpoints, minor gaps) rather than 5, which requires fix-and-retry guidance. Well above 3 since validation is present, not just implied.

4 / 5

Progressive Disclosure

No bundle files exist, and the single-file structure is well-organized with clear headers and one-level hand-offs to named sibling skills and standards URLs. Slightly above a pure overview (~127 body lines with the seed-derivation code and edge-case detail inlined rather than split out), which keeps it at anchor 4 rather than 5.

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.

The description is a strong example: concrete capabilities with exact API parameters, an explicit 'Use when...' clause with natural trigger phrasing, third-person voice, and clear delineation from related skills. It would reliably surface for the right requests while avoiding conflicts.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Apply consistent per-patient date shifting', 'preserves intervals between events', 'cap ages over 89', 'strip everything but the year' — plus exact API surface ('deidentify(method="shift_dates", date_shift_days=..., keep_year=...)', 'consistent=True, seed=...'), giving comprehensive coverage with no generic filler.

5 / 5

Completeness

Explicitly answers 'what' ('Apply consistent per-patient date shifting in OpenMed that preserves intervals... satisfying HIPAA Safe Harbor's date rule') and 'when' ('Use when the user needs to de-identify dates but keep temporal structure for research...') with concrete trigger phrases — matching the 5-anchor example's structure exactly.

5 / 5

Trigger Term Quality

Natural user phrases are comprehensively covered with synonyms: 'de-identify dates', 'keep temporal structure', 'shift all dates by the same offset per patient', 'preserve days-between-events for survival or longitudinal analysis', 'cap ages over 89', 'strip everything but the year' — the phrasing users would actually use for this need.

5 / 5

Distinctiveness Conflict Risk

Clear niche — date shifting that preserves temporal structure — with triggers distinct from general redaction; sibling skills are explicitly named as pairs ('Pairs with OpenMed deidentifying-clinical-text and auditing-safe-harbor-checklist'), delineating rather than overlapping. The age-89 mention is scoped as a distinct date-related concern.

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

Path

skills/shifting-clinical-dates/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.