CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

building-patient-timelines

Assemble a chronological patient timeline from OpenMed-extracted clinical events, normalizing dates and resolving relative time expressions on-device. Use when the user wants to build a patient timeline, order events from clinical notes, reconstruct a longitudinal history, plot a course of illness, or turn analyze_text/deidentify output into a sorted sequence of dated encounters, diagnoses, medications, and procedures. Covers temporal normalization (absolute and relative), event modeling toward FHIR Encounter/Condition.onsetDateTime, anchoring to a document/admission date, and handling undated or ambiguous events. Consumes OpenMed analyze_text entities plus clinical temporality (resolving-clinical-context); produces a sorted event list ready for charting or FHIR export.

69

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

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, appropriately terse body with an executable quick start, a clearly sequenced workflow, and genuinely useful gotchas. The main gaps are the undefined resolve_event_date core step in the worked example and the absence of any reference files to offload resolver and standards detail.

Suggestions

Implement resolve_event_date (or provide it in a scripts/ or references/ file and link to it) so the worked example's to_timeline is fully executable, and pass note into to_timeline to fix the dangling reference.

Remove the duplicated entity-format explanation — it appears both as a quick-start comment and again in the paragraph below the code block.

Move the standards/background material (FHIR URLs, ISO 8601, TimeML/i2b2 links) into a references/ file to slim the body and improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dense and skill-specific with no padding on concepts Claude already knows, but it has minor trimmable fat: the intro defines what a patient timeline is, the entity dict format is stated twice (in the quick-start comment and again in the following paragraph), and 'When to use this skill' repeats the frontmatter description — fitting the 4 anchor (efficient, minor over-explanation) rather than the every-token-earns-its-place 5.

4 / 5

Actionability

The quick start is executable and formats are concrete ({text, label, confidence, start, end}, FHIR field mappings), but the core normalization step is deferred — resolve_event_date is marked '# your resolver' and to_timeline references a note variable it never receives — so guidance is mostly but not fully copy-paste ready, matching the 4 anchor with minor gaps.

4 / 5

Workflow Clarity

A clear 7-step numbered workflow (de-identify → extract → resolve temporality → normalize dates → build records → sort/dedup → emit) with most checkpoints present (flag unresolvable relatives, undated bucket, preserve granularity, drop negated/hypothetical/family-history mentions). Not a 5: validation guidance lives mostly in the edge-cases section rather than as explicit inline checkpoints with feedback loops.

4 / 5

Progressive Disclosure

The single SKILL.md is well sectioned (Quick start, Workflow, Worked example, Hand-off, Edge cases, Standards) with clearly signaled external links and no nested references, but there are no bundle files despite the body having enough material (date-resolver rules, standards detail, i2b2 background) that could be split into a references/ file — good structure with minor organization gaps, i.e., a 4.

4 / 5

Total

16

/

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: concrete, comprehensive capabilities stated in third person with an explicit 'Use when…' clause carrying natural trigger phrases. The only weakness is modest synonym coverage in its trigger terms.

Suggestions

Add one or two more common trigger phrasings such as 'sort clinical events by date', 'chronology of events', or 'timeline from discharge notes' to broaden natural-keyword coverage.

Consider shortening the final two sentences ('Covers…' and 'Consumes…'), which restate capabilities and inputs already covered, to keep the description lean.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Assemble a chronological patient timeline", "normalizing dates and resolving relative time expressions", "event modeling toward FHIR Encounter/Condition.onsetDateTime, anchoring to a document/admission date, and handling undated or ambiguous events" — with comprehensive coverage and correct third-person voice, matching the 5 anchor exactly.

5 / 5

Completeness

It explicitly answers both what ("Assemble a chronological patient timeline from OpenMed-extracted clinical events, normalizing dates and resolving relative time expressions") and when ("Use when the user wants to build a patient timeline, order events from clinical notes, reconstruct a longitudinal history, plot a course of illness…") with concrete trigger phrases — a clear 5.

5 / 5

Trigger Term Quality

"Use when the user wants to build a patient timeline, order events from clinical notes, reconstruct a longitudinal history, plot a course of illness" gives natural, well-varied trigger phrases, but a few common variations (e.g., "sort clinical events by date", "chronology", "timeline from notes") are missing, fitting the 4 anchor (good coverage, few natural terms missing) rather than the exhaustive synonym coverage of 5.

4 / 5

Distinctiveness Conflict Risk

It carves a clear niche (timelines from OpenMed-extracted events) and explicitly disambiguates from sibling skills ("If you only need to extract entities, use extracting-clinical-entities; if you need negation/temporality on a single mention, use resolving-clinical-context"), giving 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

Path

skills/building-patient-timelines/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.