CtrlK
BlogDocsLog inGet started
Tessl Logo

benchmarking-clinical-ner

Score an OpenMed clinical or biomedical NER model against a user-supplied gold corpus with entity-level precision, recall, and F1, then break errors down per label. Use when the user wants a seqeval-style scorecard, strict vs partial (relaxed) span matching, a per-label confusion matrix, false-negative / false-positive examples, or to debug why a model misses entities. Trigger on "evaluate NER", "entity-level F1", "seqeval", "precision recall F1", "confusion matrix", "error analysis", "strict vs partial match", or "score against gold" in an OpenMed context. The gold corpus is user-supplied; OpenMed bundles no i2b2/n2c2/MIMIC data.

74

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%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, executable scorecard skill: copy-paste code, a sequenced diagnostic workflow, and well-organized sections with one-level-deep references. Its only weaknesses are minor — a few justificatory sentences could be trimmed and an explicit fixture-validation checkpoint before the batch run would sharpen the workflow.

Suggestions

Add an explicit 'validate fixtures shape' checkpoint as step 1.5 of the Workflow (check that each item has text + well-formed gold_spans of {start,end,label}) before invoking run_suite, giving the batch eval a clear pass/fail gate.

Trim justificatory asides like 'because clinical entities are multi-token... and token-level accuracy hides boundary errors' to a single clause; the 'Token F1 lies; report span F1' gotcha already makes the point.

If the edge-case matching rules (overlapping/nested spans) grow, consider extracting them into a references/ file referenced one level deep to keep SKILL.md a lean overview.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's domain competence — it does not explain what NER, seqeval, or F1 are — with a tight table for match modes and executable snippets; a few justificatory sentences (e.g. "because clinical entities are multi-token...") could be trimmed, placing it just below the level-5 'every token earns its place' anchor but above the 3-anchor's 'some unnecessary explanation'.

4 / 5

Actionability

Copy-paste-ready executable code covers the common cases — run_suite with fixture-shape comments, error_report with example_cap, and direct compute_exact_span_f1 / compute_relaxed_span_f1 calls — matching the level-5 anchor for fully executable, specific examples.

5 / 5

Workflow Clarity

The 6-step Workflow is clearly sequenced with a diagnostic checkpoint (step 4: read both F1s, interpret the strict/relaxed gap) and triage feedback (steps 5-6), but lacks an explicit validate-fixtures-shape step before running the batch eval, so it sits at the level-4 anchor (clear sequence, minor validation gap) rather than 5; the batch cap at 3 is avoided because read-only evaluation here includes verification via the F1-gap check and error_report.

4 / 5

Progressive Disclosure

No bundle files exist, and the body is organized into well-labeled sections (When to use, Match modes, Quick start, Workflow, Hand-off, Edge cases, Standards & references) with one-level-deep, clearly signaled references to external standards and OpenMed source files; it is not a level-5 because a few sections (e.g. edge-case matching rules) could conceivably live in a deeper reference, but it is well above the 3-anchor's buried/inline critique.

4 / 5

Total

17

/

20

Passed

Description

100%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 exemplary: it states concrete capabilities, an explicit Use-when/Trigger-on clause with natural synonyms, and a clearly scoped OpenMed niche that distinguishes it from adjacent skills. Every dimension lands at the top anchor.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "entity-level precision, recall, and F1", "break errors down per label", "strict vs partial (relaxed) span matching", "per-label confusion matrix", "false-negative / false-positive examples" — covering the task comprehensively, matching the level-5 anchor rather than the 4-anchor which only expects several actions with minor gaps.

5 / 5

Completeness

Explicitly answers both what ("Score an OpenMed clinical or biomedical NER model... with entity-level precision, recall, and F1, then break errors down per label") and when ("Use when the user wants a seqeval-style scorecard... Trigger on..."), with concrete trigger phrases, matching the level-5 anchor exactly.

5 / 5

Trigger Term Quality

Explicit "Trigger on" clause enumerates natural phrases users would say — "evaluate NER", "entity-level F1", "seqeval", "precision recall F1", "confusion matrix", "error analysis", "strict vs partial match", "score against gold" — giving comprehensive coverage including synonyms, matching the level-5 anchor.

5 / 5

Distinctiveness Conflict Risk

Scoped to "OpenMed clinical or biomedical NER" with an explicit "in an OpenMed context" qualifier and a redirect of PHI de-id to a different skill, giving a clear niche with minimal conflict risk per the level-5 anchor.

5 / 5

Total

20

/

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
maziyarpanahi/openmed
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.