CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

coding-icd10

Suggests candidate ICD-10-CM diagnosis codes (and ICD-10-PCS procedure codes) for diagnoses and procedures extracted by OpenMed, with rationale and a human-coder caveat. Use when the user wants to code a problem list, map a diagnosis span to a billable ICD-10-CM code, route a finding to the right chapter, cross-walk ICD-9 via GEMs, or pre-fill an encounter for coder review. Trigger keywords: ICD-10-CM, ICD-10-PCS, diagnosis coding, billable code, GEMs, problem list coding, encounter diagnosis, chapter range, CMS code lookup. references/icd10-chapters.md holds the chapter/section ranges. Pairs after OpenMed NER: consume Disease/Pathology entities from openmed.analyze_text and propose codes a certified coder validates. ICD-10-CM/PCS files are public domain from CMS — no license barrier (unlike CPT, which is restricted and out of scope).

72

Quality

91%

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

86%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.

The body is a strong, dense skill document: executable code for both data paths, a clear six-step workflow with mandatory human-coder validation checkpoints, and a well-signaled one-level reference for chapter ranges. Minor weaknesses are slight repetition of the licensing/public-domain point and the absence of explicit error-recovery guidance for failed or empty searches.

Suggestions

State the licensing/public-domain constraint once (e.g. in 'Edge cases & gotchas') instead of three times across the intro, gotchas, and description.

Add a short error-recovery step to the workflow, e.g. what to do when a search returns no candidates (broaden the term, fall back to chapter-range browsing) or when the NLM API call fails (fall back to the local CMS table).

Trim the 'When to use' section, which largely restates the frontmatter description; a single pointer to the chapter reference would suffice.

DimensionReasoningScore

Conciseness

Quotes: "ICD-10-CM and ICD-10-PCS are public domain. CMS publishes the complete annual code files..." and the intro paragraph "This is decision support for a certified coder, not autonomous billing". The body is dense and domain-specific (GEMs lossy, Excludes1/Excludes2, combination codes, Oct 1 fiscal-year updates — all non-obvious), but the public-domain/licensing point is stated three times (intro, gotchas, description) and the 'When to use' section repeats the frontmatter, so minor trimming is possible per the score-4 anchor. Not 5: there is a small amount of repetition; not 3: the padding is minor and most sections earn their tokens.

4 / 5

Actionability

Quotes: "billable = line[14] == '1'" (concrete CMS file column parsing), "requests.get('https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search', params={'sf': 'code,name', ...})", and "openmed.analyze_text(note, model_name='disease_detection_superclinical', output_format='dict')". Two fully executable search paths plus an executable NER hand-off snippet, with copy-paste-ready code, concrete column offsets, API URL, FHIR system URI, and a named model — matching the score-5 anchor. Not 4: the common cases (local CMS file and public API search, plus entity consumption) are all covered with runnable code.

5 / 5

Workflow Clarity

Quotes: the six-step Workflow ("Extract... Route to a chapter... Search... Apply ICD-10-CM specificity rules... Rank... Emit"), with validation checkpoints like "Flag where the note lacks the detail a billable code requires" and "marked status: needs-coder-review", plus "Human-in-the-loop is mandatory". The sequence is clear with most checkpoints present, but there is no explicit error-recovery guidance (e.g. what to do when a search returns no candidates or the API call fails), matching the score-4 anchor rather than the feedback-loop-rich score-5 anchor.

4 / 5

Progressive Disclosure

Quotes: "see references/icd10-chapters.md for code ranges" and "Chapter/section ranges: references/icd10-chapters.md". The single referenced file exists, is one level deep, is clearly signaled with its purpose, and holds exactly the content that belongs outside SKILL.md (the 22-chapter range table), while the body stays a lean overview — matching the score-5 anchor. Not 4: there are no organization gaps; the split is appropriate.

5 / 5

Total

18

/

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.

The description is highly specific and complete: it states concrete capabilities, an explicit 'Use when' clause with concrete triggers, and a dense keyword list. Its only weakness is that the keyword list omits a few natural synonyms a user might say, and the description is long, though the length is informative rather than padded.

Suggestions

Add one or two natural user phrasings to the trigger keywords, e.g. "medical coding", "ICD-10 lookup", or "diagnosis code", which users may say instead of the current technically-flavored terms like "chapter range" or "CMS code lookup".

Consider trimming the integration detail (e.g. "consume Disease/Pathology entities from openmed.analyze_text") to keep the description lean; it mostly duplicates information the body already covers.

DimensionReasoningScore

Specificity

Quotes: "Suggests candidate ICD-10-CM diagnosis codes (and ICD-10-PCS procedure codes)", "map a diagnosis span to a billable ICD-10-CM code, route a finding to the right chapter, cross-walk ICD-9 via GEMs, or pre-fill an encounter for coder review". This lists multiple specific concrete actions (suggest codes, map spans, route chapters, GEM cross-walk, pre-fill encounters) covering the skill comprehensively, matching the score-5 anchor. Not 4: coverage has no notable gaps — the main use cases are all named.

5 / 5

Completeness

Quotes: "Suggests candidate ICD-10-CM diagnosis codes... with rationale and a human-coder caveat" (what) and "Use when the user wants to code a problem list, map a diagnosis span to a billable ICD-10-CM code, route a finding to the right chapter..." (when, with concrete trigger phrases). Both what and when are explicitly and clearly answered, matching the score-5 anchor exactly.

5 / 5

Trigger Term Quality

Quotes: "Trigger keywords: ICD-10-CM, ICD-10-PCS, diagnosis coding, billable code, GEMs, problem list coding, encounter diagnosis, chapter range, CMS code lookup". Good keyword coverage including synonyms (GEMs / cross-walk ICD-9), but a few natural user phrasings are missing (e.g. "medical coding", "ICD-10 lookup", "diagnosis code"), matching the score-4 anchor rather than the comprehensive-with-synonyms-and-extensions score-5 anchor.

4 / 5

Distinctiveness Conflict Risk

Quotes: "route a finding to the right chapter", "unlike CPT, which is restricted and out of scope", "Pairs after OpenMed NER: consume Disease/Pathology entities from openmed.analyze_text". A clear niche (ICD-10-CM/PCS classification coding within the OpenMed pipeline) with distinct triggers and an explicit contrast against adjacent code systems, so conflict risk is minimal per the score-5 anchor.

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/coding-icd10/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.