CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

normalizing-rxnorm

Normalizes drug mentions extracted by OpenMed to RxNorm RxCUIs using the free public RxNav/RxNorm REST API. Use when the user wants to code, standardize, or de-duplicate medication names, resolve a brand/generic/ingredient to a stable RxCUI, link strength+dose-form to an SCD/SBD, attach NDCs, or build a US Core Medication resource. Trigger keywords: RxNorm, RxCUI, RxNav, drug normalization, medication coding, NDC, ingredient, SCD, SBD, brand vs generic, getApproximateMatch. Pairs after OpenMed NER: consume Pharmaceutical/Chemical entities from openmed.analyze_text and map each drug span to an RxCUI. RxNorm and RxNav are fully public and free — no API key, no license barrier, the lowest-friction terminology in this set.

73

Quality

92%

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

81%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, executable body: real API calls, a validated multi-step workflow with fallback loops, and a sharp edge-cases section. Weaknesses are minor — repeated licensing statements, a missing code sample for strength/form span reassembly, and an all-inline structure at ~165 lines.

Suggestions

State the free/no-API-key licensing point once (e.g., in the intro) and drop the repetitions in the edge-cases section; also trim the 'highest value-to-friction ratio' batch-comparison line.

Add a short code example for workflow step 2: reassembling name + strength + dose form from adjacent OpenMed spans using the start/end offsets, since this is flagged as a primary gotcha but has no executable guidance.

Complete the NDC snippet (define rxcui, add timeout=10 like the other calls) so every code block is independently copy-paste runnable.

DimensionReasoningScore

Conciseness

Mostly lean and code-dense, but the 'fully public and free / no API key' licensing point is repeated three times (intro, licensing gotcha, and implied in the description) and 'this one has the highest value-to-friction ratio — start here' is batch-comparison fluff that could be trimmed. Fits anchor 4 (efficient, minor over-explanation) rather than 5 (every token earns its place).

4 / 5

Actionability

The quick-start and hand-off code is copy-paste ready with real endpoints, params, and response parsing, but workflow step 2 — reassembling name + strength + dose form from adjacent spans, flagged as a key gotcha — has no executable example, and the NDC one-liner uses an undefined variable and omits a timeout. Mostly executable with minor gaps, so anchor 4 rather than 5.

4 / 5

Workflow Clarity

The 6-step workflow (extract → parse → exact match → pick TTY → validate → emit) has an explicit validation checkpoint ('confirming the tty and name match expectations', 'record the score... as a confidence signal'), an exact→approximate fallback loop, obsolete-RxCUI remap handling, and cross-TTY recovery via /related.json. This matches the anchor-5 pattern of clear sequence with explicit validation and error-recovery feedback loops.

5 / 5

Progressive Disclosure

Sections are well-organized and easy to navigate (When to use / Quick start / Workflow / Hand-off / Edge cases / Standards), and the external standards links are clearly signaled. However, at ~165 lines with everything inline in a single file and no bundle split, it does not qualify for the under-50-lines simple-skill exception; good structure with minor organization gaps fits anchor 4.

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: concrete third-person capability statement, explicit 'Use when' trigger clause, comprehensive natural keyword list, and a well-defined niche. All four dimensions sit at the top anchor.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Normalizes drug mentions... to RxNorm RxCUIs', 'code, standardize, or de-duplicate medication names', 'resolve a brand/generic/ingredient to a stable RxCUI', 'link strength+dose-form to an SCD/SBD', 'attach NDCs', 'build a US Core Medication resource' — with comprehensive coverage of the skill's capability space, matching the top anchor.

5 / 5

Completeness

Both questions are explicitly answered: the first sentence states clearly what the skill does, and 'Use when the user wants to code, standardize, or de-duplicate medication names...' provides explicit, concrete trigger guidance. This matches the anchor-5 good example pattern.

5 / 5

Trigger Term Quality

Trigger keywords are comprehensive and include natural synonyms users would actually say: 'RxNorm, RxCUI, RxNav, drug normalization, medication coding, NDC, ingredient, SCD, SBD, brand vs generic'. Coverage matches the anchor-5 example's breadth (synonyms and specific identifiers, like file extensions in the PDF example).

5 / 5

Distinctiveness Conflict Risk

The RxNorm/RxCUI/RxNav/NDC vocabulary carves out a clear niche that sibling terminology skills (e.g., SNOMED mapping) would not trigger on, and the 'Pairs after OpenMed NER' positioning further distinguishes it. Conflict risk is minimal, matching the top anchor.

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/normalizing-rxnorm/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.