Agent skill

Coding Hcc Risk Adjustment

by maziyarpanahi in maziyarpanahi/openmed

Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support.

Apache-2.0Auto-check passed

Install Coding Hcc Risk Adjustment

skills CLI
$ npx skills add maziyarpanahi/openmed --skill coding-hcc-risk-adjustment -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install maziyarpanahi/openmed coding-hcc-risk-adjustment --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/coding-hcc-risk-adjustment .claude/skills/coding-hcc-risk-adjustment && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
coding-hcc-risk-adjustment
GitHub stars
5.5k
Token cost
~2.2k tokens
SKILL.md length
683 words
Files
1
Skills in repo
74
Repo updated
First seen
Licence
Apache-2.0

At a glance

Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support.

  • Works in 7 steps: Extract condition spans with OpenMed… → Code each to ICD-10-CM (see… → Map ICD-10-CM → V28 HCC via the CMS… → …
  • The user wants to surface risk-adjustable diagnoses from notes
  • SKILL.md covers When to use, Quick start (public CMS…, Workflow and Hand-off from OpenMed, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Coding Hcc Risk Adjustment is an agent skill from maziyarpanahi/openmed. Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support. Use when the user wants to surface risk-adjustable diagnoses from notes, map ICD-10-CM codes to HCC categories, estimate or reconcile a patient/panel RAF, find suspected-but-undocumented HCCs, or check MEAT documentation support. Trigger keywords: HCC, CMS-HCC, V28, RAF score, risk adjustment, Medicare Advantage, hierarchical condition category, MEAT…

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Local-first healthcare AI: clinical NER and HIPAA PII de-identification on hardware you control. 2,200+ medical models, 35 model-backed PII languages, and Python, MLX, Android… The licence is Apache-2.0.

When your agent uses it

  • The user wants to surface risk-adjustable diagnoses from notes
  • Map ICD-10-CM codes to HCC categories
  • Reconcile a patient/panel RAF
  • Find suspected-but-undocumented HCCs

Example prompts

  • “/coding-hcc-risk-adjustment”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Extract condition spans with OpenMed (Disease/Pathology/Oncology models).
  2. Code each to ICD-10-CM (see coding-icd10) — HCCs key off ICD-10-CM.
  3. Map ICD-10-CM → V28 HCC via the CMS crosswalk.
  4. Apply the hierarchy so only the most severe HCC in each family counts.
  5. Sum coefficients for the correct model segment + add the demographic factor
  6. Attach MEAT evidence: for each candidate HCC, cite the note text that
  7. Emit candidate HCCs + estimated RAF + supporting offsets for human review.

What it can do on your machine

Read from SKILL.md and the folder at commit 9dca507. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • cms.gov

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Coding Hcc Risk Adjustment loads about 2.2k tokens when it runs. Until then it costs about 216 tokens; SKILL.md has 683 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~216
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from maziyarpanahi/openmed at commit 9dca507, republished under its Apache-2.0 licence (© maziyarpanahi). 683 words, ~2,231 tokens.

Download SKILL.mdSave it as .claude/skills/coding-hcc-risk-adjustment/SKILL.md (or your agent's skills folder).
name
coding-hcc-risk-adjustment
description
Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support. Use when the user wants to surface risk-adjustable diagnoses from notes, map ICD-10-CM codes to HCC categories, estimate or reconcile a patient/panel RAF, find suspected-but-undocumented HCCs, or check MEAT documentation support. Trigger keywords: HCC, CMS-HCC, V28, RAF score, risk adjustment, Medicare Advantage, hierarchical condition category, MEAT, recapture, suspect HCC, RADV. Pairs after OpenMed NER + ICD-10 coding: consume Disease/Pathology entities from openmed.analyze_text, code them (see coding-icd10), then roll up to HCCs. CMS-HCC mappings and weights are public from CMS. This is a coding-support aid for human review, never autonomous risk-adjustment coding.
license
Apache-2.0
metadata.project
OpenMed
metadata.category
terminology-coding
metadata.pairs
after
metadata.version
1.0

Mapping conditions to CMS-HCC V28 and estimating RAF

Surface and risk-adjust the chronic conditions OpenMed extracts by mapping them to CMS-HCC categories (the V28 model, phasing in for payment years 2024–2026) and estimating a RAF (Risk Adjustment Factor) score. CMS pays Medicare Advantage plans based on RAF, so accurate, documented capture of chronic disease matters — and much of that signal lives in the narrative note, exactly what OpenMed reads.

This is decision support for coders/clinicians, not autonomous coding. The output is "candidate HCCs + estimated RAF + the documentation that supports (or fails to support) each one," for human validation.

CMS-HCC crosswalks (ICD-10-CM → HCC) and the category coefficients are public — CMS publishes them annually. Nothing restricted is bundled.

When to use

  • You want to find risk-adjustable diagnoses mentioned in a note that may not be on the coded problem list ("suspect HCCs" / recapture).
  • You need to map ICD-10-CM codes to V28 HCCs and apply the hierarchy.
  • You want an estimated RAF for a patient or panel for review.
  • You need to check whether a diagnosis has MEAT support (Monitored, Evaluated, Assessed, Treated) in the documentation.

Pairs with coding-icd10 (you need ICD-10-CM codes first) and may consume mapping-to-snomed output upstream.

Quick start (public CMS crosswalk + coefficients)

CMS publishes the V28 ICD-10-CM→HCC mapping and the model coefficients. Load them locally (public files) and apply the model:

python
import csv

# 1) ICD-10-CM -> HCC (V28) crosswalk from the CMS Risk Adjustment files.
icd_to_hcc = {}                       # "E1122" -> "HCC38" (Diabetes w/ complication)
with open("cms_hcc_v28_icd_map.csv") as fh:
    for row in csv.DictReader(fh):
        icd_to_hcc[row["icd10cm"].replace(".", "")] = row["hcc_v28"]

# 2) HCC -> RAF coefficient for the relevant model segment (e.g. CNA community).
hcc_weight = {}                       # "HCC38" -> 0.166 (illustrative)
with open("cms_hcc_v28_coefficients.csv") as fh:
    for row in csv.DictReader(fh):
        hcc_weight[row["hcc"]] = float(row["coefficient"])

# 3) Apply the HCC hierarchy: a more severe HCC in a family suppresses milder
#    ones (e.g. acute MI suppresses angina). Load the hierarchy from CMS.
hierarchy = {                         # parent HCC -> HCCs it zeroes out
    # "HCC37": {"HCC38"},  # illustrative; use the official V28 hierarchy file
}

def apply_hierarchy(hccs: set[str]) -> set[str]:
    kept = set(hccs)
    for parent in hccs:
        kept -= hierarchy.get(parent, set())
    return kept

def estimate_raf(icd_codes: list[str], demo_factor: float = 0.0) -> dict:
    hccs = {icd_to_hcc[c] for c in icd_codes if c in icd_to_hcc}
    hccs = apply_hierarchy(hccs)
    disease_raf = sum(hcc_weight.get(h, 0.0) for h in hccs)
    return {"hccs": sorted(hccs),
            "disease_raf": round(disease_raf, 3),
            "estimated_raf": round(disease_raf + demo_factor, 3)}

The demo_factor (age/sex, dual/disability, institutional status) comes from the CMS demographic tables — add it for a full RAF; omit for the disease component.

Workflow

  1. Extract condition spans with OpenMed (Disease/Pathology/Oncology models).
  2. Code each to ICD-10-CM (see coding-icd10) — HCCs key off ICD-10-CM.
  3. Map ICD-10-CM → V28 HCC via the CMS crosswalk.
  4. Apply the hierarchy so only the most severe HCC in each family counts.
  5. Sum coefficients for the correct model segment + add the demographic factor to estimate RAF.
  6. Attach MEAT evidence: for each candidate HCC, cite the note text that Monitors/Evaluates/Assesses/Treats the condition. No MEAT → flag as "unsupported / needs clinician confirmation," not a captured HCC.
  7. Emit candidate HCCs + estimated RAF + supporting offsets for human review.

Hand-off from OpenMed

openmed.analyze_text(..., output_format="dict") returns entities, each a dict with text, label, confidence, start, end. Use the offsets to pull MEAT evidence sentences:

python
import openmed

note = ("Problem list: type 2 diabetes with diabetic nephropathy; COPD. "
        "Plan: continue metformin, ordered HbA1c, refer nephrology.")
result = openmed.analyze_text(
    note,
    model_name="disease_detection_superclinical",   # Disease category
    output_format="dict",
)

DX_LABELS = {"DISEASE", "CONDITION", "PATHOLOGY"}
suspects = []
for ent in result["entities"]:
    if ent["label"] in DX_LABELS:
        # 1) code to ICD-10-CM (coding-icd10) -> e.g. "E1122"
        icd = map_to_icd10cm(ent["text"])           # your coding step
        hcc = icd_to_hcc.get(icd)
        if hcc:
            # MEAT: capture the sentence around the span for the reviewer
            sent = note[max(0, ent["start"] - 60): ent["end"] + 80]
            suspects.append({"condition": ent["text"], "icd10cm": icd,
                             "hcc": hcc, "span": (ent["start"], ent["end"]),
                             "meat_context": sent})

raf = estimate_raf([s["icd10cm"] for s in suspects])
print(raf, suspects)        # candidates + estimate, for coder validation

Carry OpenMed's start/end offsets so every suspect HCC links to the exact documentation; this is what makes the suggestion auditable for RADV. Store codes, HCCs, and offsets — not the raw note.

Show full SKILL.md (286 more words)Show less

Edge cases & gotchas

  • Decision support, never autonomous coding. Risk-adjustment coding is audited (CMS RADV) and has direct payment and compliance consequences. Output suspects with evidence for a certified coder/clinician; never submit HCCs automatically.
  • MEAT is required. A diagnosis merely mentioned (e.g. in history) without being Monitored/Evaluated/Assessed/Treated in the encounter generally cannot be captured. Always attach MEAT evidence and flag bare mentions as unsupported.
  • V28 dropped ~2,000 codes. The V28 transition removed many ICD-10-CM codes from HCC mapping (notably diabetes-without-complication, some vascular and inflammatory codes). A code that mapped under V24 may map to nothing under V28 — use the V28 crosswalk, not V24, and don't assume continuity.
  • Hierarchy suppression. Within a disease family only the most severe HCC counts; summing all of them inflates RAF. Apply the official V28 hierarchy.
  • Model segment matters. Coefficients differ by segment (community vs institutional, aged vs disabled, new enrollee). Use the right segment's table or the RAF is wrong.
  • Negation/uncertainty. "No evidence of CHF" or "rule out malignancy" must not become captured HCCs. Resolve assertion/negation in OpenMed before mapping.
  • Annual model updates. CMS revises the model and weights yearly and is blending V24/V28 across payment years 2024–2026; pin and record which model version and payment year your estimate used.
  • Licensing. CMS-HCC crosswalks/coefficients and ICD-10-CM are public. Do not bundle restricted vocabularies (CPT, SNOMED, UMLS) to support this — keep those user-supplied and out-of-process.
  • Local-first. OpenMed NER runs on-device; HCC mapping uses local CMS tables. No PHI needs to leave the process at all.

Standards & references

© maziyarpanahi, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/coding-hcc-risk-adjustment of maziyarpanahi/openmed.

Open the folder on GitHubat commit 9dca507

Compare with similar skills

Coding Hcc Risk Adjustment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Coding Hcc Risk Adjustment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Coding Hcc Risk Adjustment this skillmaziyarpanahi/openmed5.5k—~2.2kAutomated safety check: PassApache-2.0
Google Maps Contact Extractbrowser-act/skills6.1k—~2.9kAutomated safety check: PassMIT
Token Mapnexu-io/open-design100k—~1.4kAutomated safety check: PassApache-2.0
Design Extractnexu-io/open-design100k—~549Automated safety check: PassApache-2.0
Extractalirezarezvani/claude-skills28k—~1.4kAutomated safety check: PassMIT
Maps Geographyasgeirtj/system_prompts_leaks69k—~717Automated safety check: PassCC0-1.0

Similar skills

  • Google Maps Contact Extract

    browser-act/skills

    Extracts business contact details from Google Maps search results and place detail pages, then visits each business website to collect emails, phone numbers, and social media profiles (Facebook…

    6.1k GitHub stars~2.9k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Token Map

    nexu-io/open-design

    Map an extracted Figma / source-code token bag onto the active OD design system, producing a deterministic mapping the generate stage can consume.

    100k GitHub stars~1.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Design Extract

    nexu-io/open-design

    Extract design tokens (color / typography / spacing) from imported source code, screenshots, or Figma exports into the canonical token bag token-map consumes.

    100k GitHub stars~549 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Extract

    alirezarezvani/claude-skills

    Turn a proven pattern or debugging solution into a standalone reusable skill with SKILL.md, reference docs, and examples.

    28k GitHub stars~1.4k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Maps Geography

    asgeirtj/system_prompts_leaks

    Accurate maps from real geo data — use for any map, or whenever geography would make a good graphic for a deliverable

    69k GitHub stars~717 tokensUpdated today
    Auto-check passed
  • Brand Extract

    nexu-io/open-design

    Extract a complete Brand Kit from a live website by driving the in-app browser.

    100k GitHub stars~3.1k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from maziyarpanahi/openmed

All 74 skills in this repo
  • Checks OpenMed de-identified clinical text against the 18 HIPAA Safe Harbor identifier categories and reports gaps and residual re-identification risk.

    5.5k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • OpenMed Model Card Writer

    maziyarpanahi/openmed

    Fills in a model card for an OpenMed clinical NER or de-identification model from its evaluation reports: intended use, metrics, subgroups and limitations.

    5.5k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Walks a data pipeline against the HIPAA Privacy and Security Rule checklist and produces a gap report before it processes patient data.

    5.5k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • ICD-10 Coding Assistant

    maziyarpanahi/openmed

    Suggests candidate ICD-10-CM diagnosis and ICD-10-PCS procedure codes for clinical text extracted by OpenMed, with rationale for a certified coder to review.

    5.5k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • OpenMed ETL to OMOP CDM

    maziyarpanahi/openmed

    Maps OpenMed-extracted, terminology-coded conditions, drugs and measurements into OMOP CDM v5.4 tables for OHDSI and ATLAS analytics.

    5.5k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Extracting SDOH and Z-Codes

    maziyarpanahi/openmed

    Finds social risks such as housing instability or food insecurity in clinical notes and proposes matching ICD-10-CM Z-codes for a coder to confirm.

    5.5k GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Coding Hcc Risk Adjustment

What does Coding Hcc Risk Adjustment do?

Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support. Coding Hcc Risk Adjustment is an agent skill from maziyarpanahi/openmed. Maps chronic conditions extracted by OpenMed to CMS-HCC V28 risk-adjustment categories and estimates a RAF (Risk Adjustment Factor) score as decision support.

When should I use Coding Hcc Risk Adjustment?

Coding Hcc Risk Adjustment fits situations like: the user wants to surface risk-adjustable diagnoses from notes; map ICD-10-CM codes to HCC categories; reconcile a patient/panel RAF; find suspected-but-undocumented HCCs.

How do I install Coding Hcc Risk Adjustment in Claude Code?

Run `npx skills add maziyarpanahi/openmed --skill coding-hcc-risk-adjustment -a claude-code`. Or copy the skill folder (skills/coding-hcc-risk-adjustment in maziyarpanahi/openmed) into .claude/skills/coding-hcc-risk-adjustment in your project. Claude Code loads it when a task matches its description.

How do I install Coding Hcc Risk Adjustment in Codex?

Run `npx skills add maziyarpanahi/openmed --skill coding-hcc-risk-adjustment -a codex`. Or copy the skill folder (skills/coding-hcc-risk-adjustment in maziyarpanahi/openmed) into .agents/skills/coding-hcc-risk-adjustment in your project. Codex loads it when a task matches its description.

Can I use Coding Hcc Risk Adjustment in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add maziyarpanahi/openmed --skill coding-hcc-risk-adjustment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding-hcc-risk-adjustment, .gemini/skills/coding-hcc-risk-adjustment, .github/skills/coding-hcc-risk-adjustment and .opencode/skills/coding-hcc-risk-adjustment in your project.

What does Coding Hcc Risk Adjustment need to run?

SKILL.md names no scripts, command-line tools or credentials: Coding Hcc Risk Adjustment is instructions for the agent only. Our summary lists: Python 3.

Does Coding Hcc Risk Adjustment access the network?

SKILL.md names 1 domain. As links in the text: cms.gov. This is read from the text; nothing was executed.

Is Coding Hcc Risk Adjustment safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Coding Hcc Risk Adjustment use?

Coding Hcc Risk Adjustment is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Coding Hcc Risk Adjustment use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Coding Hcc Risk Adjustment?

Skills that share tags, products or a category with Coding Hcc Risk Adjustment: Google Maps Contact Extract (browser-act/skills, 6.1k stars), Token Map (nexu-io/open-design, 100k stars), Design Extract (nexu-io/open-design, 100k stars) and Extract (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Coding Hcc Risk Adjustment?

maziyarpanahi (a GitHub user) maintains it in maziyarpanahi/openmed, which has 5,500 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on October 9, 2026.

Source: maziyarpanahi/openmed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.