CtrlK
BlogDocsLog inGet started
Tessl Logo

mapping-to-snomed

Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server (the user's own Ontoserver, Snowstorm, or UMLS/UTS), never a bundled vocabulary. Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT, run an ECL query, translate via a ConceptMap, or resolve a span to a concept id with FHIR $lookup/$translate/$validate-code. Trigger keywords: SNOMED CT, SNOMED concept id, ECL, ConceptMap, $translate, $lookup, Ontoserver, Snowstorm, SCTID, post-coordination, terminology server. Pairs after OpenMed NER: consume Disease/Anatomy/Pharmaceutical entities from openmed.analyze_text and map each span out-of-process. SNOMED CT is license-restricted — it is NEVER bundled; the user calls their own affiliate-licensed server.

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, highly actionable body: executable FHIR terminology-server code, a clear extract→constrain→search→validate→emit workflow with a real validation step, and a sharp edge-cases section (negation, over-specification, edition drift, licensing). Weaknesses are minor: some repeated licensing emphasis and definitional text, and no feedback loop for empty or ambiguous search results.

Suggestions

State the licensing boundary once (the callout) and have the 'Never bundle SNOMED CT' edge-case bullet reference it in one line instead of restating the rationale, trimming the SCTID/ECL definitional sentences Claude can infer.

Add one feedback-loop step to the Workflow, e.g. 'If $expand returns no candidates, fall back to the parent hierarchy ECL (<<404684003) or the unmapped-code $translate path; if matches are ambiguous, prefer the shortest fully-entailed concept and record the runner-up.'

Move the per-label ECL routing table and edition/licensing details into a small references/ file (e.g. ecl-hierarchies.md) so SKILL.md stays a lean overview with clearly signaled one-level-deep references.

DimensionReasoningScore

Conciseness

Mostly efficient — two tight code blocks, a numbered workflow, and a focused gotchas list — but with minor trim candidates: 'the comprehensive clinical reference terminology' plus SCTID/ECL definitions explain things partly known, and the licensing boundary is stated three times (intro, callout, edge case). Not 3 since there is no real padding; not 5 since the repetition could be tightened.

4 / 5

Actionability

Two fully executable, copy-paste-ready Python blocks ($lookup, ValueSet/$expand with ECL, ConceptMap/$translate; the openmed.analyze_text hand-off with an ECL_FOR_LABEL routing table) using real SCTIDs and env-injected config, covering the common cases. The only uncoded operation, $validate-code, is a trivial parameter variant of the shown $lookup.

5 / 5

Workflow Clarity

The 7-step Workflow (Extract → Pick ECL → Search → Rank & disambiguate → Validate → Translate → Emit) is clearly sequenced with an explicit validation checkpoint ('**Validate** with $validate-code; $lookup to capture the FSN'). Falls short of 5 because there is no error-recovery feedback loop, e.g. what to do when $expand returns no candidates or ambiguous matches.

4 / 5

Progressive Disclosure

Well-sectioned single-level structure with no buried references and no bundle files, so everything is appropriately one level deep. However, the ~160-line body keeps edge cases, the ECL reference codes, and licensing detail fully inline with no reference split, and it exceeds the under-50-line simple-skill exception, so 5 does not fit.

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.

An exemplary description: third-person, concrete actions, an explicit 'Use when' clause with concrete trigger scenarios, comprehensive natural keywords including synonyms, and a well-differentiated niche. The licensing emphasis is unusual but states a real capability boundary rather than padding.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions — 'Maps clinical concept spans... to SNOMED CT concepts', 'run an ECL query', 'translate via a ConceptMap', 'resolve a span to a concept id with FHIR $lookup/$translate/$validate-code' — with comprehensive coverage; consistently third-person voice ('Maps', 'Pairs'), so no voice penalty.

5 / 5

Completeness

Explicitly answers both what ('Maps clinical concept spans extracted by OpenMed to SNOMED CT concepts through a USER-SUPPLIED terminology server') and when ('Use when the user wants to code findings, disorders, procedures, body structures, or substances to SNOMED CT...') with concrete trigger phrases; the 'when' clause is maximally explicit, so 4 does not fit.

5 / 5

Trigger Term Quality

'SNOMED CT, SNOMED concept id, ECL, ConceptMap, $translate, $lookup, Ontoserver, Snowstorm, SCTID, post-coordination, terminology server' gives comprehensive natural-term coverage including synonyms and product names a user would actually say when needing SNOMED coding.

5 / 5

Distinctiveness Conflict Risk

Clear niche — SNOMED CT coding via a user-supplied FHIR terminology server — with distinct triggers (SCTID, ECL, Ontoserver, Snowstorm) that are unlikely to fire for sibling coding skills (ICD-10, RxNorm, LOINC).

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.