CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

running-zeroshot-ner

Extract arbitrary, custom entity types from clinical or biomedical text with no fine-tuning using OpenMed's GLiNER / GLiNER2 zero-shot support. Use when the user wants to define their own labels on the fly (e.g. Drug, Symptom, Device, Procedure), has no labelled data or a label set not covered by a fine-tuned model, or asks about openmed zero deps/index/infer, the gliner extra, or GLiNER. Pairs adjacent to extracting-clinical-entities (use that for high-accuracy fixed-schema NER) and loading-openmed-models.

Quality

88%

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.

A highly actionable, well-structured skill: the index-then-infer workflow is concrete and executable in both CLI and Python forms, with a genuine gotchas section covering failure modes. The main improvement levers are trimming the duplicated install/deps caveats and folding index validation into the workflow steps themselves.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence — OpenMed-specific facts (index resolution, extras, checkpoint families) dominate and no space is spent on what NER or pip are. Minor redundancy keeps it from anchor 5: the '`zero deps` does not install' caveat appears in both the Install section and Edge cases, and the accuracy-vs-fine-tuned tradeoff is repeated in 'When to use' and gotchas.

4 / 5

Actionability

Everything is executable and copy-paste ready: real `openmed zero index` / `zero infer` invocations with flags and a realistic clinical sentence, a complete `NerRequest` + `infer(...)` Python example with the response shape enumerated, and index-build plus label-utility snippets. It is not 4 because the examples cover the common cases end-to-end with no gaps.

5 / 5

Workflow Clarity

The two-step flow is explicitly numbered ('1. openmed zero index <models_dir> ... 2. openmed zero infer ...') and `openmed zero deps` serves as a dependency checkpoint, with threshold tuning as a recall/precision feedback loop. It falls short of anchor 5 because the key validation — confirming `--model-id` exists in the index before infer — is relegated to the gotchas list rather than being an explicit step with a recovery loop in the sequence itself.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so all guidance is inline; the body is well-sectioned with clear headers and every section earns its place. At ~150 lines with the Python API field listing and label utilities inlined, some material could be split into a reference file, which is the minor organization gap that holds it at anchor 4 rather than 5.

4 / 5

Total

17

/

20

Passed

Description

87%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: third-person, concrete about capability and mechanism, with an explicit and richly detailed Use-when clause plus deliberate disambiguation against adjacent skills. The only gaps are the absent 'named entity recognition'/'NER' phrasing and a single-action rather than multi-action capability list.

DimensionReasoningScore

Specificity

The description states a concrete capability — 'Extract arbitrary, custom entity types from clinical or biomedical text with no fine-tuning using OpenMed's GLiNER / GLiNER2 zero-shot support' — with the mechanism named. It stays at one action family rather than the multiple distinct actions of the anchor-5 example, sitting above the 1–2 actions of anchor 3.

4 / 5

Completeness

Both halves are explicit: 'what' is 'Extract arbitrary, custom entity types ... with no fine-tuning', and 'when' is a full 'Use when the user wants to define their own labels on the fly (e.g. Drug, Symptom, Device, Procedure), has no labelled data or a label set not covered by a fine-tuned model, or asks about openmed zero deps/index/infer ...'. This matches the anchor-5 pattern of concrete what + concrete trigger phrases; not 4 because the when-clause is fully explicit, not merely present.

5 / 5

Trigger Term Quality

Strong natural phrasing users would actually say: 'define their own labels on the fly', 'no labelled data', 'Drug, Symptom, Device, Procedure', 'GLiNER', 'openmed zero deps/index/infer'. A few natural terms are missing — 'named entity recognition'/'NER' never appears as a phrase, so it does not reach comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (custom-label zero-shot NER) and actively disambiguates the closest competitor: 'Pairs adjacent to extracting-clinical-entities (use that for high-accuracy fixed-schema NER)'. With GLiNER-specific triggers and explicit routing guidance, conflict risk is minimal.

5 / 5

Total

18

/

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/running-zeroshot-ner/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.