CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

reporting-adverse-events

Structures adverse-event mentions that OpenMed extracts into FAERS / ICH E2B(R3) reportable fields — suspect drug, reaction (MedDRA PT), seriousness criteria, and outcome. Use when the user needs to build an individual case safety report (ICSR), populate a FAERS submission, map a narrative to E2B(R3) data elements, classify seriousness (death, life-threatening, hospitalization, disability, congenital anomaly), or assign reaction outcomes. Trigger keywords: adverse event, ADR, ICSR, FAERS, E2B, E2B(R3), suspect drug, seriousness, MedDRA, reaction outcome, pharmacovigilance case. Pairs after OpenMed NER: consume Pharmaceutical/Chemical and Disease entities from openmed.analyze_text. MedDRA is licensed and user-supplied — never bundled. De-identify the narrative with openmed.deidentify before any external submission.

Quality

87%

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

75%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-crafted, domain-dense body: executable quick-start code, exact regulatory value sets, a gated workflow, and genuinely useful edge-case guidance (seriousness-as-OR, licensed MedDRA handling, suspect-vs-concomitant). It falls just short of top marks on minor points: a placeholder deidentify policy, no validate/retry loop for de-identification, and slightly trimmable prose.

Suggestions

Specify a concrete policy argument (or a minimal example) for 'openmed.deidentify' in the workflow's step 1 so the code is fully executable.

Add an explicit validation checkpoint after de-identification — e.g., re-scan the de-identified text for residual names/MRN/dates before export — to create a validate-and-fix feedback loop.

Consider moving the E2B value-set tables and standards link list into a small reference file (e.g., references/value_sets.md) to tighten the main SKILL.md body.

DimensionReasoningScore

Conciseness

The body is dense and information-rich — value-set tables, an edge-cases section, and a tight quick start — with no generic filler explaining concepts Claude already knows. It sits at the score-4 anchor ('efficient; minor instances that could be trimmed') rather than 5 because the 5-line motivation intro, the hand-off section's cross-skill prose, and the standards link list carry some tokens that a leaner version would cut.

4 / 5

Actionability

The quick start is near copy-paste ready (two concrete 'openmed.analyze_text' calls with model_name and output_format, plus a complete ICSR skeleton dict) and the value sets give exact codes and FAERS field names. It stops short of the score-5 anchor due to minor gaps: 'openmed.deidentify(narrative, policy=...)' leaves the policy argument unspecified, and MedDRA PT coding is deferred to the user's licensed dictionary (explicitly and reasonably justified).

4 / 5

Workflow Clarity

The 7-step workflow is clearly sequenced with explicit gates ('De-identify first', 'Never invent PTs', hand-off to a qualified safety reviewer) and correct ordering (de-identify before export, characterize before coding). It matches the score-4 anchor ('clear sequence with most checkpoints present; minor validation gaps') rather than 5 because there is no explicit validate-and-retry feedback loop (e.g., verifying de-identification actually removed identifiers before proceeding).

4 / 5

Progressive Disclosure

No bundle files exist, and the single-file body is well organized with clear section headers (When to use, Quick start, value sets, Workflow, Hand-off, Edge cases, Standards) and one-level-deep external links. This is good structure with minor organization gaps — the E2B value-set tables and standards link list could live in a reference file — matching the score-4 anchor rather than the score-5 ideal of well-signaled separate references.

4 / 5

Total

16

/

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: third-person, concrete about both capability and triggers, with comprehensive domain keyword coverage and explicit integration/de-identification boundaries. The only notable gap is the absence of the most natural lay synonym 'side effect' among the trigger keywords.

Suggestions

Add 'side effect' (and possibly 'drug reaction' or 'safety report') to the trigger keyword list to capture the most common non-expert phrasing.

DimensionReasoningScore

Specificity

The description lists multiple concrete, specific capabilities: 'Structures adverse-event mentions... into FAERS / ICH E2B(R3) reportable fields — suspect drug, reaction (MedDRA PT), seriousness criteria, and outcome', and the Use-when clause enumerates concrete sub-tasks (build an ICSR, populate a FAERS submission, map a narrative to E2B(R3) data elements, classify seriousness, assign reaction outcomes). Coverage is comprehensive with no notable gaps, matching the score-5 anchor rather than the score-4 anchor ('minor gaps in coverage').

5 / 5

Completeness

It explicitly answers both 'what' ('Structures adverse-event mentions... into FAERS / ICH E2B(R3) reportable fields') and 'when' ('Use when the user needs to build an individual case safety report (ICSR), populate a FAERS submission, map a narrative to E2B(R3) data elements, classify seriousness..., or assign reaction outcomes') with concrete trigger phrases — a direct match for the score-5 anchor and the good-overall examples.

5 / 5

Trigger Term Quality

Trigger keywords are extensive and domain-natural: 'adverse event, ADR, ICSR, FAERS, E2B, E2B(R3), suspect drug, seriousness, MedDRA, reaction outcome, pharmacovigilance case' — good acronym and synonym coverage. It falls short of the score-5 anchor only because the most common natural lay phrase 'side effect' (and variants like 'drug side effect') is missing.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (regulatory adverse-event reporting into FAERS/E2B(R3)) with distinct triggers (ICSR, E2B, MedDRA, seriousness), and explicitly disambiguates sibling skills ('Pairs after OpenMed NER', 'consume Pharmaceutical/Chemical and Disease entities from openmed.analyze_text'), minimizing overlap risk — matching the score-5 'clear niche with distinct triggers' anchor rather than the score-4 anchor with minor overlap.

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/reporting-adverse-events/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.