Extract billable ICD-10-CM diagnosis codes from a clinical note the way a professional coder builds the claim. Use when users say "code this encounter", "assign ICD-10 codes", "what diagnosis codes apply", "code this chart", or when turning clinical documentation into claim-ready diagnosis codes.
npx skills add https://github.com/anthropics/healthcare --skill icd10-cm-skill
Turn a clinical note into the diagnosis codes a professional coder would submit on the claim for that encounter. This happens in two distinct steps: first decide *which* conditions belong on the claim, then find the *exact* code for each. Both steps cause errors: coders miss claims by listing the wrong conditions, and by coding the right condition at the wrong specificity.
A claim reflects the encounter, not the patient's chart. Per the ICD-10-CM Official Guidelines for outpatient coding:
Code, in this order:
Symptoms: when the patient came in FOR a symptom and the visit ends with no established diagnosis, that symptom is the first-listed diagnosis — code it (low back pain M54.5x, joint pain M25.5xx). That is the only time a symptom is coded. A symptom that accompanies a coded diagnosis (headache with a coded neck injury, dizziness with coded vertigo, fatigue with coded anemia) is part of that diagnosis and never coded separately.
Leave off the claim:
A correctly coded outpatient encounter is short — usually 1 to 4 codes. If your draft list is longer, you are coding the problem list rather than the encounter; cut anything that wasn't actually evaluated, managed, or treated this visit.
This is where most miscoding happens. Two rules:
Don't hedge on a diagnosis. Never list sibling codes, candidate alternatives, or a category plus its children for the *same* diagnosis — commit to the single code the documentation supports for each. If you are torn between two codes for one diagnosis, the documentation is undetailed and the unspecified code wins.
Code exactly what the note documents — never above it, never below it.
Look up every diagnosis with the ICD-10 Codes connector's tools — including diagnoses you're sure you know. Code sets change every October and your memory of common codes can be stale; for example, "depression, unspecified" has been F32.A (not F32.9) since 2022. The connector has the current set; trust it over recall.
search_codes with code_type="diagnosis", building the query from the note's own wording plus the specificity decision from Step 2 — if you decided "unspecified," put "unspecified" in the search terms.lookup_code or validate_code — every code on the claim must be valid and billable.If the connector's tools are not available, stop. Tell the user the ICD-10 Codes connector needs to be installed or enabled, and do not produce codes from memory — codes recalled without verification are exactly where stale-code-set errors come from.
Work through Steps 1–3 using tool calls only. Don't write explanatory text between searches — no running commentary, no candidate-by-candidate analysis in prose. Your reply is consumed by a claims pipeline that reads every code string in it, so the only prose you produce is the final answer itself, and the only code strings in it are the claim.
Walk your draft list once before answering. For each code ask:
Keep the code only if all three hold. If two codes describe the same diagnosis, delete one before answering.
End with the codes on their own labeled lines so the first-listed diagnosis is unambiguous:
First-listed: E11.65
Secondary: I10, Z79.4
Codes appear exactly as returned by the connector — dots included. Any reformatting for a specific claims system happens downstream, not here.
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.
Take anthropics/icd10-cm-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.