[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-icd10-cm-skill":3,"mdc--kh10i2-key":36,"related-repo-anthropic-icd10-cm-skill":444,"related-org-anthropic-icd10-cm-skill":545},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":34,"mdContent":35},"icd10-cm-skill","extract ICD-10-CM diagnosis codes","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Healthcare","healthcare","tag",{"name":18,"slug":19,"type":16},"Coding","coding",{"name":21,"slug":22,"type":16},"Medical Necessity","medical-necessity",{"name":24,"slug":25,"type":16},"Insurance","insurance",356,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fhealthcare","2026-06-19T09:34:31.578353",null,91,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":29},[],"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fhealthcare\u002Ftree\u002FHEAD\u002Fplugins\u002Fhealthcare\u002Fskills\u002Ficd10-cm","---\nname: icd10-cm-skill\ndescription: 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.\n---\n\n# ICD-10-CM Coding from Clinical Notes\n\nTurn 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.\n\n## Step 1: Decide what belongs on the claim\n\nA claim reflects the encounter, not the patient's chart. Per the ICD-10-CM Official Guidelines for outpatient coding:\n\n**Code, in this order:**\n1. The reason for the visit (first-listed diagnosis). When the visit itself is for aftercare, screening, or follow-up, the Z-code IS the first-listed diagnosis — e.g. orthopedic aftercare\u002Fhardware removal (Z47.x), suture removal (Z48.02), a scheduled wellness exam (Z00.0x).\n2. Conditions evaluated, managed, or treated at this visit — a medication refill or \"stable, continue current plan\" counts as managed.\n3. Chronic comorbidities, but only if they were addressed or changed medical decision-making this visit.\n\n**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.\n\n**Leave off the claim:**\n- Uncertain diagnoses — \"probable\", \"suspected\", \"rule out\". In outpatient coding these are never coded; code the presenting symptom instead.\n- Conditions mentioned only as history and not treated today.\n- Wellness-exam codes (Z00.0x) on a problem-focused visit. They belong only when the encounter is an actual scheduled physical.\n- Status, lifestyle, and counseling codes — nicotine dependence (F17.x), alcohol use (F10.x), long-term medication (Z79.x), device\u002Fstent status (Z95.x), counseling (Z71.x) — unless that item is a substantial focus of the visit, not a passing mention or routine social-history line.\n- External-cause codes (V00–Y99, how an injury happened): outpatient claims rarely carry them and most payers don't require them — the injury code itself carries the claim. Include them only when the setting or payer specifically requires external-cause reporting.\n\nA 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.\n\n## Step 2: Code at the documented specificity\n\nThis is where most miscoding happens. Two rules:\n\n**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.\n\n**Code exactly what the note documents — never above it, never below it.**\n- **Default to unspecified when the note doesn't subtype.** \"Asthma\" with no severity → J45.909. \"Psoriatic arthritis\" with no subtype → L40.50. \"Type 2 diabetes\" with no complication linked in the note → E11.9. \"Hepatitis C\" without documented chronicity → B19.20. Unspecified (.9, .50, .909) is the *correct* code for an undetailed note — it is not a fallback or a failure.\n- **Do not infer** chronicity, severity grades, laterality, episode type, or diabetes-complication links that the note doesn't state. An ulcer coded with a severity character (L97.x1x \"limited to breakdown of skin\") requires the note to actually stage the depth; otherwise use unspecified severity (L97.x19).\n- **A complication or subtype must be linked by the clinician, not assembled from data.** Lab values, vitals, and imaging findings in the note do not by themselves make a complication codable — an elevated A1c does not establish \"T2DM with hyperglycemia,\" and an echo finding does not establish the heart-failure subtype, unless the clinician's own assessment states it. Code from the assessment wording; if the assessment names the condition without the complication, code it unspecified.\n- **Add-on codes accompany their base code, never replace it.** Resistant hypertension I1A.0 is assigned in addition to I10; if you use an add-on, the base code stays on the claim.\n- **\"Other specified\" (.8, .59) is not \"unspecified.\"** Use it only when the note names a specific subtype that has no code of its own. No subtype documented → unspecified, not \"other.\"\n- **Never output a bare category.** J45, F32, E11, N20 alone are not billable codes. Every code must be carried to its full billable length.\n- **Use the documentation when it IS specific.** \"Acute on chronic systolic heart failure\" → I50.23, not I50.9. Under-coding documented detail loses exactly as much as over-inferring.\n\n## Step 3: Find the exact code via the ICD-10 connector\n\nLook 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.\n\n- Use `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.\n- Take the first result whose description matches the note's wording. If the first result's type, laterality, or complication status contradicts the note (e.g. \"Type 1\" when the note says \"type 2\"), it is not a match — move to the next result or refine the query once. Don't page through more than the top few results.\n- Confirm the chosen code with `lookup_code` or `validate_code` — every code on the claim must be valid and billable.\n- The connector returns complete codes, including 7th characters (A\u002FD\u002FS) and X placeholders for injury codes. Copy the code exactly as the connector returns it — if it includes a dot, keep the dot; if not, don't add one. Do not reformat, strip, or extend what the connector gave you.\n\n**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.\n\n## Working style\n\nWork 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.\n\n## Step 4: Final check\n\nWalk your draft list once before answering. For each code ask:\n1. Does the note show this condition was evaluated, managed, or treated *at this visit*?\n2. Is the specificity exactly what the note documents — unspecified if undetailed, detailed if documented?\n3. Is this the ONLY code on the list for this diagnosis, at full billable length, taken from a lookup result, dots removed?\n\nKeep the code only if all three hold. If two codes describe the same diagnosis, delete one before answering.\n\n## Answer format\n\nEnd with the codes on their own labeled lines so the first-listed diagnosis is unambiguous:\n\n```\nFirst-listed: E11.65\nSecondary: I10, Z79.4\n```\n\nCodes appear exactly as returned by the connector — dots included. Any reformatting for a specific claims system happens downstream, not here.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,71,78,83,92,112,122,130,159,164,170,175,192,200,280,286,298,354,364,370,375,381,386,411,416,422,427,439],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"icd-10-cm-coding-from-clinical-notes",[47],{"type":48,"value":49},"text","ICD-10-CM Coding from Clinical Notes",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,56,62,64,69],{"type":48,"value":55},"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 ",{"type":42,"tag":57,"props":58,"children":59},"em",{},[60],{"type":48,"value":61},"which",{"type":48,"value":63}," conditions belong on the claim, then find the ",{"type":42,"tag":57,"props":65,"children":66},{},[67],{"type":48,"value":68},"exact",{"type":48,"value":70}," 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.",{"type":42,"tag":72,"props":73,"children":75},"h2",{"id":74},"step-1-decide-what-belongs-on-the-claim",[76],{"type":48,"value":77},"Step 1: Decide what belongs on the claim",{"type":42,"tag":51,"props":79,"children":80},{},[81],{"type":48,"value":82},"A claim reflects the encounter, not the patient's chart. Per the ICD-10-CM Official Guidelines for outpatient coding:",{"type":42,"tag":51,"props":84,"children":85},{},[86],{"type":42,"tag":87,"props":88,"children":89},"strong",{},[90],{"type":48,"value":91},"Code, in this order:",{"type":42,"tag":93,"props":94,"children":95},"ol",{},[96,102,107],{"type":42,"tag":97,"props":98,"children":99},"li",{},[100],{"type":48,"value":101},"The reason for the visit (first-listed diagnosis). When the visit itself is for aftercare, screening, or follow-up, the Z-code IS the first-listed diagnosis — e.g. orthopedic aftercare\u002Fhardware removal (Z47.x), suture removal (Z48.02), a scheduled wellness exam (Z00.0x).",{"type":42,"tag":97,"props":103,"children":104},{},[105],{"type":48,"value":106},"Conditions evaluated, managed, or treated at this visit — a medication refill or \"stable, continue current plan\" counts as managed.",{"type":42,"tag":97,"props":108,"children":109},{},[110],{"type":48,"value":111},"Chronic comorbidities, but only if they were addressed or changed medical decision-making this visit.",{"type":42,"tag":51,"props":113,"children":114},{},[115,120],{"type":42,"tag":87,"props":116,"children":117},{},[118],{"type":48,"value":119},"Symptoms:",{"type":48,"value":121}," 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.",{"type":42,"tag":51,"props":123,"children":124},{},[125],{"type":42,"tag":87,"props":126,"children":127},{},[128],{"type":48,"value":129},"Leave off the claim:",{"type":42,"tag":131,"props":132,"children":133},"ul",{},[134,139,144,149,154],{"type":42,"tag":97,"props":135,"children":136},{},[137],{"type":48,"value":138},"Uncertain diagnoses — \"probable\", \"suspected\", \"rule out\". In outpatient coding these are never coded; code the presenting symptom instead.",{"type":42,"tag":97,"props":140,"children":141},{},[142],{"type":48,"value":143},"Conditions mentioned only as history and not treated today.",{"type":42,"tag":97,"props":145,"children":146},{},[147],{"type":48,"value":148},"Wellness-exam codes (Z00.0x) on a problem-focused visit. They belong only when the encounter is an actual scheduled physical.",{"type":42,"tag":97,"props":150,"children":151},{},[152],{"type":48,"value":153},"Status, lifestyle, and counseling codes — nicotine dependence (F17.x), alcohol use (F10.x), long-term medication (Z79.x), device\u002Fstent status (Z95.x), counseling (Z71.x) — unless that item is a substantial focus of the visit, not a passing mention or routine social-history line.",{"type":42,"tag":97,"props":155,"children":156},{},[157],{"type":48,"value":158},"External-cause codes (V00–Y99, how an injury happened): outpatient claims rarely carry them and most payers don't require them — the injury code itself carries the claim. Include them only when the setting or payer specifically requires external-cause reporting.",{"type":42,"tag":51,"props":160,"children":161},{},[162],{"type":48,"value":163},"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.",{"type":42,"tag":72,"props":165,"children":167},{"id":166},"step-2-code-at-the-documented-specificity",[168],{"type":48,"value":169},"Step 2: Code at the documented specificity",{"type":42,"tag":51,"props":171,"children":172},{},[173],{"type":48,"value":174},"This is where most miscoding happens. Two rules:",{"type":42,"tag":51,"props":176,"children":177},{},[178,183,185,190],{"type":42,"tag":87,"props":179,"children":180},{},[181],{"type":48,"value":182},"Don't hedge on a diagnosis.",{"type":48,"value":184}," Never list sibling codes, candidate alternatives, or a category plus its children for the ",{"type":42,"tag":57,"props":186,"children":187},{},[188],{"type":48,"value":189},"same",{"type":48,"value":191}," 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.",{"type":42,"tag":51,"props":193,"children":194},{},[195],{"type":42,"tag":87,"props":196,"children":197},{},[198],{"type":48,"value":199},"Code exactly what the note documents — never above it, never below it.",{"type":42,"tag":131,"props":201,"children":202},{},[203,220,230,240,250,260,270],{"type":42,"tag":97,"props":204,"children":205},{},[206,211,213,218],{"type":42,"tag":87,"props":207,"children":208},{},[209],{"type":48,"value":210},"Default to unspecified when the note doesn't subtype.",{"type":48,"value":212}," \"Asthma\" with no severity → J45.909. \"Psoriatic arthritis\" with no subtype → L40.50. \"Type 2 diabetes\" with no complication linked in the note → E11.9. \"Hepatitis C\" without documented chronicity → B19.20. Unspecified (.9, .50, .909) is the ",{"type":42,"tag":57,"props":214,"children":215},{},[216],{"type":48,"value":217},"correct",{"type":48,"value":219}," code for an undetailed note — it is not a fallback or a failure.",{"type":42,"tag":97,"props":221,"children":222},{},[223,228],{"type":42,"tag":87,"props":224,"children":225},{},[226],{"type":48,"value":227},"Do not infer",{"type":48,"value":229}," chronicity, severity grades, laterality, episode type, or diabetes-complication links that the note doesn't state. An ulcer coded with a severity character (L97.x1x \"limited to breakdown of skin\") requires the note to actually stage the depth; otherwise use unspecified severity (L97.x19).",{"type":42,"tag":97,"props":231,"children":232},{},[233,238],{"type":42,"tag":87,"props":234,"children":235},{},[236],{"type":48,"value":237},"A complication or subtype must be linked by the clinician, not assembled from data.",{"type":48,"value":239}," Lab values, vitals, and imaging findings in the note do not by themselves make a complication codable — an elevated A1c does not establish \"T2DM with hyperglycemia,\" and an echo finding does not establish the heart-failure subtype, unless the clinician's own assessment states it. Code from the assessment wording; if the assessment names the condition without the complication, code it unspecified.",{"type":42,"tag":97,"props":241,"children":242},{},[243,248],{"type":42,"tag":87,"props":244,"children":245},{},[246],{"type":48,"value":247},"Add-on codes accompany their base code, never replace it.",{"type":48,"value":249}," Resistant hypertension I1A.0 is assigned in addition to I10; if you use an add-on, the base code stays on the claim.",{"type":42,"tag":97,"props":251,"children":252},{},[253,258],{"type":42,"tag":87,"props":254,"children":255},{},[256],{"type":48,"value":257},"\"Other specified\" (.8, .59) is not \"unspecified.\"",{"type":48,"value":259}," Use it only when the note names a specific subtype that has no code of its own. No subtype documented → unspecified, not \"other.\"",{"type":42,"tag":97,"props":261,"children":262},{},[263,268],{"type":42,"tag":87,"props":264,"children":265},{},[266],{"type":48,"value":267},"Never output a bare category.",{"type":48,"value":269}," J45, F32, E11, N20 alone are not billable codes. Every code must be carried to its full billable length.",{"type":42,"tag":97,"props":271,"children":272},{},[273,278],{"type":42,"tag":87,"props":274,"children":275},{},[276],{"type":48,"value":277},"Use the documentation when it IS specific.",{"type":48,"value":279}," \"Acute on chronic systolic heart failure\" → I50.23, not I50.9. Under-coding documented detail loses exactly as much as over-inferring.",{"type":42,"tag":72,"props":281,"children":283},{"id":282},"step-3-find-the-exact-code-via-the-icd-10-connector",[284],{"type":48,"value":285},"Step 3: Find the exact code via the ICD-10 connector",{"type":42,"tag":51,"props":287,"children":288},{},[289,291,296],{"type":48,"value":290},"Look up every diagnosis with the ICD-10 Codes connector's tools — ",{"type":42,"tag":87,"props":292,"children":293},{},[294],{"type":48,"value":295},"including diagnoses you're sure you know.",{"type":48,"value":297}," 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.",{"type":42,"tag":131,"props":299,"children":300},{},[301,323,328,349],{"type":42,"tag":97,"props":302,"children":303},{},[304,306,313,315,321],{"type":48,"value":305},"Use ",{"type":42,"tag":307,"props":308,"children":310},"code",{"className":309},[],[311],{"type":48,"value":312},"search_codes",{"type":48,"value":314}," with ",{"type":42,"tag":307,"props":316,"children":318},{"className":317},[],[319],{"type":48,"value":320},"code_type=\"diagnosis\"",{"type":48,"value":322},", 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.",{"type":42,"tag":97,"props":324,"children":325},{},[326],{"type":48,"value":327},"Take the first result whose description matches the note's wording. If the first result's type, laterality, or complication status contradicts the note (e.g. \"Type 1\" when the note says \"type 2\"), it is not a match — move to the next result or refine the query once. Don't page through more than the top few results.",{"type":42,"tag":97,"props":329,"children":330},{},[331,333,339,341,347],{"type":48,"value":332},"Confirm the chosen code with ",{"type":42,"tag":307,"props":334,"children":336},{"className":335},[],[337],{"type":48,"value":338},"lookup_code",{"type":48,"value":340}," or ",{"type":42,"tag":307,"props":342,"children":344},{"className":343},[],[345],{"type":48,"value":346},"validate_code",{"type":48,"value":348}," — every code on the claim must be valid and billable.",{"type":42,"tag":97,"props":350,"children":351},{},[352],{"type":48,"value":353},"The connector returns complete codes, including 7th characters (A\u002FD\u002FS) and X placeholders for injury codes. Copy the code exactly as the connector returns it — if it includes a dot, keep the dot; if not, don't add one. Do not reformat, strip, or extend what the connector gave you.",{"type":42,"tag":51,"props":355,"children":356},{},[357,362],{"type":42,"tag":87,"props":358,"children":359},{},[360],{"type":48,"value":361},"If the connector's tools are not available, stop.",{"type":48,"value":363}," 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.",{"type":42,"tag":72,"props":365,"children":367},{"id":366},"working-style",[368],{"type":48,"value":369},"Working style",{"type":42,"tag":51,"props":371,"children":372},{},[373],{"type":48,"value":374},"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.",{"type":42,"tag":72,"props":376,"children":378},{"id":377},"step-4-final-check",[379],{"type":48,"value":380},"Step 4: Final check",{"type":42,"tag":51,"props":382,"children":383},{},[384],{"type":48,"value":385},"Walk your draft list once before answering. For each code ask:",{"type":42,"tag":93,"props":387,"children":388},{},[389,401,406],{"type":42,"tag":97,"props":390,"children":391},{},[392,394,399],{"type":48,"value":393},"Does the note show this condition was evaluated, managed, or treated ",{"type":42,"tag":57,"props":395,"children":396},{},[397],{"type":48,"value":398},"at this visit",{"type":48,"value":400},"?",{"type":42,"tag":97,"props":402,"children":403},{},[404],{"type":48,"value":405},"Is the specificity exactly what the note documents — unspecified if undetailed, detailed if documented?",{"type":42,"tag":97,"props":407,"children":408},{},[409],{"type":48,"value":410},"Is this the ONLY code on the list for this diagnosis, at full billable length, taken from a lookup result, dots removed?",{"type":42,"tag":51,"props":412,"children":413},{},[414],{"type":48,"value":415},"Keep the code only if all three hold. If two codes describe the same diagnosis, delete one before answering.",{"type":42,"tag":72,"props":417,"children":419},{"id":418},"answer-format",[420],{"type":48,"value":421},"Answer format",{"type":42,"tag":51,"props":423,"children":424},{},[425],{"type":48,"value":426},"End with the codes on their own labeled lines so the first-listed diagnosis is unambiguous:",{"type":42,"tag":428,"props":429,"children":433},"pre",{"className":430,"code":432,"language":48},[431],"language-text","First-listed: E11.65\nSecondary: I10, Z79.4\n",[434],{"type":42,"tag":307,"props":435,"children":437},{"__ignoreMap":436},"",[438],{"type":48,"value":432},{"type":42,"tag":51,"props":440,"children":441},{},[442],{"type":48,"value":443},"Codes appear exactly as returned by the connector — dots included. Any reformatting for a specific claims system happens downstream, not here.",{"items":445,"total":544},[446,457,475,495,511,522,537],{"slug":447,"name":447,"fn":448,"description":449,"org":450,"tags":451,"stars":26,"repoUrl":27,"updatedAt":456},"clinical-note-extract-skill","extract structured data from clinical notes","Extract structured data from clinical notes with span-level provenance and null-safety. Use when users say \"extract [variables] from this note\", \"abstract this chart\", \"pull structured data from these notes\", \"what does this note say about [field]\", or when building a chart-abstraction, registry, or cohort dataset from unstructured clinical text.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[452,455],{"name":453,"slug":454,"type":16},"Data Analysis","data-analysis",{"name":14,"slug":15,"type":16},"2026-06-28T07:57:18.332447",{"slug":458,"name":458,"fn":459,"description":460,"org":461,"tags":462,"stars":26,"repoUrl":27,"updatedAt":474},"contracts","analyze contract documents with citations","Answer a question across a corpus of contract documents with verified citations. Use when the user asks what a contract says, which contracts have a clause, what changed between amendments, or any question that needs reading and citing across a set of contract files. The corpus must be on the local filesystem (see README).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[463,465,468,471],{"name":464,"slug":458,"type":16},"Contracts",{"name":466,"slug":467,"type":16},"Documents","documents",{"name":469,"slug":470,"type":16},"Legal","legal",{"name":472,"slug":473,"type":16},"Research","research","2026-07-18T05:15:17.073689",{"slug":476,"name":476,"fn":477,"description":478,"org":479,"tags":480,"stars":26,"repoUrl":27,"updatedAt":494},"doc-extract","extract text from documents","Extract plain text from a document file - PDF, DOCX, XLSX, PPTX, RTF, or plain text\u002Fmarkdown\u002FHTML. Use when a binary document needs to be turned into text, for example a contract PDF or an EHR DocumentReference attachment. Other skills (fhir) invoke scripts\u002Fextract.ts directly; the contracts MCP server bundles its own copy (servers\u002Fdocuments\u002Fsrc\u002Fextract.mjs) so its bundle stays self-contained — port fixes to both.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[481,484,485,488,491],{"name":482,"slug":483,"type":16},"Data Cleaning","data-cleaning",{"name":466,"slug":467,"type":16},{"name":486,"slug":487,"type":16},"DOCX","docx",{"name":489,"slug":490,"type":16},"PDF","pdf",{"name":492,"slug":493,"type":16},"Spreadsheets","spreadsheets","2026-07-18T05:15:15.766116",{"slug":496,"name":496,"fn":497,"description":498,"org":499,"tags":500,"stars":26,"repoUrl":27,"updatedAt":510},"fhir","extract clinical data from FHIR servers","Connect to a hospital's FHIR R4 server (Epic, Oracle Health\u002FCerner, MEDITECH, athenahealth, or any SMART-on-FHIR endpoint), pull a patient's clinical data and notes, and extract structured findings. Use when users say \"connect to the EHR\", \"connect to Epic\u002FCerner\", \"pull notes for patient X\", \"what do the last 6 months of notes say about Y\", or any task that starts from a live EHR rather than pasted text.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[501,504,506,507],{"name":502,"slug":503,"type":16},"API Development","api-development",{"name":505,"slug":496,"type":16},"FHIR",{"name":14,"slug":15,"type":16},{"name":508,"slug":509,"type":16},"Interoperability","interoperability","2026-07-03T16:28:01.476883",{"slug":512,"name":512,"fn":513,"description":514,"org":515,"tags":516,"stars":26,"repoUrl":27,"updatedAt":521},"fhir-developer-skill","build FHIR REST healthcare endpoints","FHIR API development guide for building healthcare endpoints. Use when: (1) Creating FHIR REST endpoints (Patient, Observation, Encounter, Condition, MedicationRequest), (2) Validating FHIR resources and returning proper HTTP status codes and error responses, (3) Implementing SMART on FHIR authorization and OAuth scopes, (4) Working with Bundles, transactions, batch operations, or search pagination. Covers FHIR R4 resource structures, required fields, value sets (status codes, gender, intent), coding systems (LOINC, SNOMED, RxNorm, ICD-10), and OperationOutcome error handling.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[517,518,519,520],{"name":502,"slug":503,"type":16},{"name":505,"slug":496,"type":16},{"name":14,"slug":15,"type":16},{"name":508,"slug":509,"type":16},"2026-06-16T09:39:06.471928",{"slug":523,"name":523,"fn":524,"description":525,"org":526,"tags":527,"stars":26,"repoUrl":27,"updatedAt":536},"fraud-detection","detect fraud in healthcare claims","Screen a Medicare\u002FMedicaid claims corpus for fraud, waste, and abuse and produce ranked, fully-cited investigation referrals for an SIU \u002F program-integrity team. Use when asked to run a fraud sweep, screen claims for FWA, find billing anomalies, or generate investigation referrals over a claims dataset.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[528,531,534,535],{"name":529,"slug":530,"type":16},"Audit","audit",{"name":532,"slug":533,"type":16},"Compliance","compliance",{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},"2026-06-26T07:50:49.129616",{"slug":4,"name":4,"fn":5,"description":6,"org":538,"tags":539,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[540,541,542,543],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},9,{"items":546,"total":725},[547,568,582,592,611,624,641,661,675,688,696,709],{"slug":548,"name":548,"fn":549,"description":550,"org":551,"tags":552,"stars":565,"repoUrl":566,"updatedAt":567},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[553,556,559,562],{"name":554,"slug":555,"type":16},"Creative","creative",{"name":557,"slug":558,"type":16},"Design","design",{"name":560,"slug":561,"type":16},"Generative Art","generative-art",{"name":563,"slug":564,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":569,"name":569,"fn":570,"description":571,"org":572,"tags":573,"stars":565,"repoUrl":566,"updatedAt":581},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[574,577,578],{"name":575,"slug":576,"type":16},"Branding","branding",{"name":557,"slug":558,"type":16},{"name":579,"slug":580,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":583,"name":583,"fn":584,"description":585,"org":586,"tags":587,"stars":565,"repoUrl":566,"updatedAt":591},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[588,589,590],{"name":554,"slug":555,"type":16},{"name":557,"slug":558,"type":16},{"name":489,"slug":490,"type":16},"2026-04-06T17:56:03.794732",{"slug":593,"name":593,"fn":594,"description":595,"org":596,"tags":597,"stars":565,"repoUrl":566,"updatedAt":610},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[598,601,602,605,607],{"name":599,"slug":600,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":603,"slug":604,"type":16},"Anthropic SDK","anthropic-sdk",{"name":606,"slug":593,"type":16},"Claude API",{"name":608,"slug":609,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":612,"name":612,"fn":613,"description":614,"org":615,"tags":616,"stars":565,"repoUrl":566,"updatedAt":623},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[617,620],{"name":618,"slug":619,"type":16},"Documentation","documentation",{"name":621,"slug":622,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":487,"name":487,"fn":625,"description":626,"org":627,"tags":628,"stars":565,"repoUrl":566,"updatedAt":640},"create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[629,630,631,634,637],{"name":466,"slug":467,"type":16},{"name":486,"slug":487,"type":16},{"name":632,"slug":633,"type":16},"Office","office",{"name":635,"slug":636,"type":16},"Templates","templates",{"name":638,"slug":639,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":642,"name":642,"fn":643,"description":644,"org":645,"tags":646,"stars":565,"repoUrl":566,"updatedAt":660},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[647,648,651,654,657],{"name":557,"slug":558,"type":16},{"name":649,"slug":650,"type":16},"Frontend","frontend",{"name":652,"slug":653,"type":16},"React","react",{"name":655,"slug":656,"type":16},"Tailwind CSS","tailwind-css",{"name":658,"slug":659,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":662,"name":662,"fn":663,"description":664,"org":665,"tags":666,"stars":565,"repoUrl":566,"updatedAt":674},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[667,670,671],{"name":668,"slug":669,"type":16},"Communications","communications",{"name":635,"slug":636,"type":16},{"name":672,"slug":673,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":676,"name":676,"fn":677,"description":678,"org":679,"tags":680,"stars":565,"repoUrl":566,"updatedAt":687},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[681,682,683,684],{"name":599,"slug":600,"type":16},{"name":502,"slug":503,"type":16},{"name":608,"slug":609,"type":16},{"name":685,"slug":686,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":490,"name":490,"fn":689,"description":690,"org":691,"tags":692,"stars":565,"repoUrl":566,"updatedAt":695},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[693,694],{"name":466,"slug":467,"type":16},{"name":489,"slug":490,"type":16},"2026-04-06T17:56:02.483316",{"slug":697,"name":697,"fn":698,"description":699,"org":700,"tags":701,"stars":565,"repoUrl":566,"updatedAt":708},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[702,705],{"name":703,"slug":704,"type":16},"PowerPoint","powerpoint",{"name":706,"slug":707,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":710,"name":710,"fn":711,"description":712,"org":713,"tags":714,"stars":565,"repoUrl":566,"updatedAt":724},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[715,716,717,720,723],{"name":599,"slug":600,"type":16},{"name":618,"slug":619,"type":16},{"name":718,"slug":719,"type":16},"Evals","evals",{"name":721,"slug":722,"type":16},"Performance","performance",{"name":621,"slug":622,"type":16},"2026-04-19T06:45:40.804",490]