CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

extracting-sdoh

Extracts social determinants of health (SDOH) — housing instability, food insecurity, unemployment, transportation barriers, social isolation, financial strain — from clinical narrative and maps the spans to ICD-10-CM Z-codes (Z55–Z65). Use after running OpenMed NER when the user wants SDOH surfacing, Z-code suggestion, health-equity analytics, or to recover SDOH that is documented in free text but not coded. Pairs with OpenMed analyze_text output. Standards: ICD-10-CM Z55–Z65, Gravity Project value sets, n2c2 2022 SDOH track. Trigger keywords: SDOH, social determinants, Z-codes, housing, food insecurity, health equity, Gravity Project.

70

Quality

88%

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

78%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 well-structured, domain-expert body: executable quick-start, clearly sequenced workflow with human-in-the-loop safeguards, and exemplary progressive disclosure. Weaknesses are minor — a non-runnable import of the reference dict, no explicit error-recovery loop, and light motivational padding.

Suggestions

Make the Quick start copy-paste runnable by inlining a 3–4 entry starter dict (e.g., housing_instability, food_insecurity, transportation_barrier) and noting the full table lives in references/sdoh_zcode_map.md, instead of importing a module that does not exist.

Add an explicit low-confidence/no-match handling step to the Workflow (e.g., a confidence threshold below which spans are flagged rather than mapped, and what to do when no label matches the lookup).

Trim the motivational opening statistics and fold the "When to use" bullets into a single shorter list, since the description frontmatter already carries that trigger information.

DimensionReasoningScore

Conciseness

Sections are lean and domain-dense (Z-code family table, edge cases like negation/hypotheticals, restricted-terminology notes) with little Claude-already-knows explanation, but the motivational stats ("drive an estimated 80% of health outcomes ... coded with a Z-code under ~2% of the time") and a "When to use" section that repeats the description are trimmable padding. Not 5: a few tokens do not earn their place operationally; not 3: over-explanation is minor, not "some unnecessary explanation" throughout.

4 / 5

Actionability

The Quick start is concrete, runnable-shaped Python (deidentify → analyze_text → label→code lookup with span offsets), but "from sdoh_zcode_map import SDOH_ZCODES" does not resolve as written — the dict lives in references/sdoh_zcode_map.md and must be assembled by hand — and the NER model choice is left open ("Pick a model whose label set covers social concepts"). Not 5: not copy-paste ready end-to-end; not 3: the code is real, specific, and nearly complete rather than pseudocode.

4 / 5

Workflow Clarity

The 5-step Workflow (de-identify → extract → map → stage for confirmation → normalize) is clearly sequenced with an explicit human checkpoint ("Do not auto-bill a Z-code from an inference alone") and required context resolution. Not 5: there is no feedback/error-recovery loop (e.g., what to do when no entity label matches the lookup, or how to treat low-confidence spans beyond "keep the confidence"). Not 3: checkpoints are explicit, not merely implied; the destructive/batch cap does not apply since this is read/annotate decision support.

4 / 5

Progressive Disclosure

The bulky label→code lookup is correctly offloaded to a real, clearly signaled one-level-deep reference ([references/sdoh_zcode_map.md], linked twice), while the body keeps a compact Z-code-family summary table; navigation is easy and nothing that belongs in a bundle file is inlined. Matches the anchor-5 pattern.

5 / 5

Total

17

/

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.

A strong description with explicit what/when structure, concrete multi-action capability statement, and a well-scoped niche. The only weakness is trigger-term coverage missing a few natural synonyms (social needs, unhoused, social risk).

Suggestions

Add natural synonyms to the trigger keyword list, e.g. "social needs", "social risk", "unhoused/homeless", and "transportation barriers", so users phrasing the need colloquially still match.

DimensionReasoningScore

Specificity

"Extracts social determinants of health (SDOH) — housing instability, food insecurity, unemployment, transportation barriers, social isolation, financial strain — from clinical narrative and maps the spans to ICD-10-CM Z-codes (Z55–Z65)" names multiple concrete actions (extract, map, surface/suggest, recover uncoded SDOH) with six enumerated sub-domains — comprehensive coverage. Not 4: the action set covers the domain fully rather than having minor gaps.

5 / 5

Completeness

Explicitly answers both: what — "Extracts ... SDOH ... and maps the spans to ICD-10-CM Z-codes (Z55–Z65)"; when — "Use after running OpenMed NER when the user wants SDOH surfacing, Z-code suggestion, health-equity analytics, or to recover SDOH that is documented in free text but not coded." Matches the anchor-5 example structure exactly; the when-clause has multiple concrete trigger conditions.

5 / 5

Trigger Term Quality

"Trigger keywords: SDOH, social determinants, Z-codes, housing, food insecurity, health equity, Gravity Project" gives good natural-phrase coverage, but misses common synonyms users would say such as "social needs", "social risk", "unhoused/homeless", or "transportation". Not 5: coverage is not comprehensive with synonyms/extensions; not 3: most natural terms a user would utter are present.

4 / 5

Distinctiveness Conflict Risk

A clear niche — SDOH spans to Z55–Z65 paired with OpenMed NER output — with distinct triggers unlikely to fire a generic skill. Not 4: even closely related clinical-coding skills would not claim this specific SDOH→Z-code mapping scope.

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/extracting-sdoh/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.