tooluniverse-pharmacovigilance

mims-harvard/tooluniverse · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-pharmacovigilance
0 commentsdiscussion
summary

When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.

skill.md

COMPUTE, DON'T DESCRIBE

When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.

Pharmacovigilance Safety Analyzer

Systematic drug safety analysis using FAERS adverse event data, FDA labeling, PharmGKB pharmacogenomics, and clinical trial safety signals.

KEY PRINCIPLES:

  1. Report-first approach - Create report file FIRST, update progressively
  2. Signal quantification - Use disproportionality measures (PRR, ROR)
  3. Severity stratification - Prioritize serious/fatal events
  4. Multi-source triangulation - FAERS, labels, trials, literature
  5. Pharmacogenomic context - Include genetic risk factors
  6. Actionable output - Risk-benefit summary with recommendations
  7. English-first queries - Always use English drug names in tool calls

When to Use

Apply when user asks:

  • "What are the safety concerns for [drug]?"
  • "What adverse events are associated with [drug]?"
  • "Is [drug] safe? What are the risks?"
  • "Compare safety profiles of [drug A] vs [drug B]"
  • "Pharmacovigilance analysis for [drug]"

Clinical Reasoning Framework

Reasoning Strategy 1: On-Target vs Off-Target Thinking

Ask: is this adverse effect a predictable extension of the drug's mechanism (on-target), or something the mechanism doesn't explain (off-target)? On-target effects are dose-dependent and predictable. Off-target effects are often idiosyncratic and harder to predict.

How to apply this:

  1. Look up the drug's primary mechanism of action (use ChEMBL or DailyMed label)
  2. For each reported adverse event, ask: "Does this follow logically from what the drug does to its target?" If yes, it is on-target toxicity — expect dose-dependence and manage with dose reduction
  3. If the adverse event cannot be explained by the primary mechanism, consider off-target receptor binding or reactive metabolite formation. These require different management (drug discontinuation, not dose adjustment)
  4. Use KEGG pathway data to identify metabolic routes that could produce toxic intermediates

Reasoning Strategy 2: Timeline as Diagnostic Tool

When did the adverse event start relative to drug initiation? The timeline alone narrows the mechanism:

  • Hours = anaphylaxis, immediate hypersensitivity, or direct pharmacological overshoot
  • Days = serum sickness, cytotoxic reactions, cumulative pharmacological effects
  • 1-6 weeks = delayed hypersensitivity (SJS/TEN, DRESS), organ accumulation
  • Months = chronic toxicity, cumulative organ damage
  • Years = long-term cumulative effects

How to apply this: When reviewing FAERS case reports, always check the time_to_onset field. If the reported timeline is biologically implausible for the proposed mechanism, suspect confounding or misattribution. A reaction appearing years after drug start is unlikely to be immune-mediated but could be chronic accumulation.


Reasoning Strategy 3: Dose-Dependent vs Idiosyncratic Classification

This distinction determines monitoring strategy and management:

  • Dose-dependent (Type A): Predictable from pharmacology. Dose-response relationship exists. Can be managed by dose reduction. These are on-target toxicities pushed too far.
  • Idiosyncratic (Type B): Not predictable from pharmacology alone. No clear dose-response. Often immune-mediated or due to metabolic idiosyncrasy (e.g., genetic variation in drug metabolism). Drug must be stopped — dose reduction will not help.
  • Mixed: Some reactions are dose-dependent in most patients but become idiosyncratic in genetically susceptible individuals. When you see a "Type A" reaction occurring at unexpectedly low doses, suspect a pharmacogenomic contributor.

How to apply this: When evaluating a safety signal, classify it as Type A or B. This determines whether you recommend dose adjustment (Type A) or drug avoidance with potential pharmacogenomic screening (Type B).


Reasoning Strategy 4: The Naranjo Algorithm for Causality Classification

When investigating a suspected drug adverse event, the Naranjo algorithm asks: (1) Did the event appear after the drug was given? (2) Did it improve when the drug was stopped? (3) Did it reappear when restarted? (4) Could other causes explain it? Score each question to classify causality.

Reasoning Strategy 5: The Rechallenge Question

Did the event recur when the drug was restarted? Positive rechallenge is the strongest evidence for causation in an individual case. But rechallenge is often unethical for serious reactions, so absence of rechallenge data doesn't exonerate the drug.

How to apply this: When reviewing case narratives or FAERS reports, check for dechallenge (did the event resolve when the drug was stopped?) and rechallenge (did it recur on re-exposure?). A positive dechallenge + positive rechallenge is near-definitive. Negative dechallenge weakens the causal link considerably.


Reasoning Strategy 5: Disproportionality Reasoning

A signal in FAERS means the drug-event pair is REPORTED more than expected. It does not mean the drug CAUSES the event. Think about reporting biases:

  • Serious events get reported more than mild ones
  • New drugs get reported more than old ones (Weber effect)
  • Drugs prescribed to sick populations get events attributed to them that may reflect the underlying disease
  • Media attention or regulatory alerts create reporting spikes

How to apply this: Always ask — what is the base rate of this event in the untreated population? A high PRR for "cardiac arrest" in a drug used by ICU patients may reflect the patient population, not the drug. Cross-reference with clinical trial placebo-arm rates when available.


Reasoning Strategy 6: When to Use Tools vs Reason

Use FAERS/OpenFDA tools to QUANTIFY a signal you have already hypothesized based on mechanism. Do not mine FAERS without a hypothesis — you will find spurious associations.

The correct sequence:

  1. Reason about mechanism first (what adverse events are plausible given this drug's pharmacology?)
  2. Form specific hypotheses (e.g., "this drug may cause QT prolongation because it blocks hERG channels")
  3. Query tools to test each hypothesis (FAERS for reporting frequency, DailyMed for label warnings, PharmGKB for genetic risk factors)
  4. Interpret results in context (is the signal consistent with the mechanism? Is the timeline plausible? Are there confounders?)

Reasoning Strategy 7: Pharmacogenomic Risk Assessment

Rather than memorizing gene-drug pairs, apply this reasoning framework:

  1. Identify the drug's metabolic pathway (use KEGG or DailyMed label): Which CYP enzymes metabolize it? Is it a prodrug requiring activation?
  2. Assess the consequence of altered metabolism: For active drugs, poor metabolizers accumulate the drug (toxicity risk). For prodrugs, poor metabolizers fail to activate (efficacy failure). Ultra-rapid metabolizers show the opposite pattern.
  3. Check for immune-mediated risk: If the drug is associated with severe cutaneous reactions (SJS/TEN, DRESS) or hypersensitivity syndrome, query PharmGKB for HLA associations. These are population-specific.
  4. Use PharmGKB evidence levels to guide action: Level 1A/1B (guideline-based) = actionable now. Level 2A/2B = may inform. Level 3 = not clinically actionable yet.

Query PharmGKB_search_drug(query=...) and CPIC_list_guidelines to get current pharmacogenomic annotations rather than relying on memorized associations, which may be outdated.


Critical Workflow Requirements

Report-First Approach (MANDATORY)

  1. Create [DRUG]_safety_report.md FIRST with all section headers and [Researching...] placeholders
  2. Apply mechanistic reasoning first (on-target toxicity, time-to-onset, dose vs. idiosyncratic, PGx)
  3. Progressively update as data is gathered
  4. Output separate data files: [DRUG]_adverse_events.csv and [DRUG]_pharmacogenomics.csv

Citation Requirements (MANDATORY)

Every safety signal MUST include source tool, data period, PRR, case counts, and serious/fatal breakdown.


Tool Parameter Reference (CRITICAL)

Tool WRONG Parameter CORRECT Parameter
FAERS_count_reactions_by_drug_event drug drug_name
FAERS_filter_serious_events American spelling (e.g., "Hemorrhage") MedDRA British spelling (e.g., "Haemorrhage")
FAERS_stratify_by_demographics Requiring adverse_event adverse_event is optional (omit for all-event stratification)
DailyMed_search_spls name drug_name
PharmGKB_search_drugs drug query
OpenFDA_search_drug_events drug_name search

Workflow Overview

Phase 0: Mechanistic Reasoning (BEFORE tools)
  On-target toxicity, time-to-onset, dose vs idiosyncratic, PGx risk

Phase 1: Drug Disambiguation
  -> Resolve drug name, get identifiers (ChEMBL, DrugBank)

Phase 2: Adverse Event Profiling (FAERS)
  -> Query FAERS, calculate PRR, stratify by seriousness

Phase 3: Label Warning Extraction
  -> DailyMed boxed warnings, contraindications, precautions

Phase 4: Pharmacogenomic Risk
  -> PharmGKB clinical annotations, high-risk genotypes

Phase 5: Clinical Trial Safety
  -> ClinicalTrials.gov Phase 3/4 safety data

Phase 5.5: Pathway & Mechanism Context
  -> KEGG drug metabolism, target pathway analysis

Phase 5.6: Literature Intelligence
  -> PubMed, BioRxiv/MedRxiv, OpenAlex citation analysis

Phase 6: Signal Prioritization
  -> Rank by PRR x severity x frequency

Phase 7: Report Synthesis

Phase 0: Mechanistic Reasoning (DO THIS BEFORE TOOLS)

  1. Identify drug class and primary mechanism (use DailyMed label or ChEMBL)
  2. Apply on-target vs off-target thinking (Strategy 1) to predict plausible adverse events
  3. Estimate expected time-to-onset for each predicted event (Strategy 2)
  4. Classify each as dose-dependent vs idiosyncratic (Strategy 3)
  5. Formulate specific, testable safety hypotheses to guide tool queries (Strategy 6)

Phase 1: Drug Disambiguation

  1. Search DailyMed via DailyMed_search_spls(drug_name=...) for NDC, SPL setid, generic name
  2. Search ChEMBL via ChEMBL_search_drugs(query=...) for molecule ID, max phase
  3. Document: generic name, brand names, drug class, mechanism, approval date

Phase 2: Adverse Event Profiling (FAERS)

  1. Query FAERS_count_reactions_by_drug_event(drug_name=..., limit=50) for top events
  2. For each event, get detailed breakdown (serious, fatal, hospitalization counts)
  3. Calculate PRR: (A/B) / (C/D) where A=drug+event, B=drug+any, C=event+any_other, D=total_other
  4. Apply signal thresholds: PRR > 2.0 (signal), > 3.0 (strong signal), case count >= 3

Severity classification:

  • Fatal (highest priority), Life-threatening, Hospitalization, Disability, Other serious, Non-serious

FAERS filter_serious_events -- MedDRA Spelling (CRITICAL)

FAERS_filter_serious_events uses MedDRA preferred terms which follow British English spelling conventions. Common examples:

Incorrect (American) Correct (MedDRA/British)
HEMORRHAGE Haemorrhage
ANEMIA Anaemia
EDEMA Oedema
DIARRHEA Diarrhoea
LEUKOPENIA Leucopenia
ESOPHAGITIS Oesophagitis

The adverse_event parameter should use the exact MedDRA preferred term spelling. When in doubt, first query FAERS_count_reactions_by_drug_event to see the exact event names as they appear in the FAERS database, then use those exact strings.

Additional FAERS notes:

  • adverse_event is now correctly appended to the OpenFDA query in _filter_serious_events
  • FAERS_stratify_by_demographics: adverse_event is optional — when omitted, stratification covers all events for the drug. Sex codes: 0=Unknown, 1=Male, 2=Female

See SIGNAL_DETECTION.md for detailed disproportionality formulas and example output tables.

Phase 3: Label Warning Extraction

  1. Get label via DailyMed_get_spl_by_set_id(setid=...)
  2. Extract: boxed warnings, contraindications, warnings/precautions, drug interactions
  3. Categorize severity: Boxed Warning > Contraindication > Warning > Precaution

Phase 4: Pharmacogenomic Risk

  1. Search PharmGKB_search_drug(query=...) for clinical annotations
  2. Document actionable variants with evidence levels (1A/1B/2A/2B/3)
  3. Note CPIC/DPWG guideline status

PGx Evidence Levels:

Level Description Action
1A CPIC/DPWG guideline, implementable Follow guideline
1B CPIC/DPWG guideline, annotation Consider testing
2A VIP annotation, moderate evidence May inform
2B VIP annotation, weaker evidence Research
3 Low-level annotation Not actionable

Phase 5: Clinical Trial Safety

  1. Search search_clinical_trials(intervention=..., phase="Phase 3", status="Completed")
  2. Extract serious AE rates, discontinuation rates, deaths
  3. Compare drug vs placebo rates

Phase 5.5: Pathway & Mechanism Context

  1. Query KEGG for drug metabolism pathways
  2. Analyze target pathways for mechanistic basis of AEs
  3. Document pathway-AE relationships

Phase 5.6: Literature Intelligence

  1. PubMed: PubMed_search_articles(query='"[drug]" AND (safety OR adverse OR toxicity)')
  2. BioRxiv/MedRxiv: Search for recent preprints (flag as not peer-reviewed)
  3. OpenAlex: Citation analysis for key safety papers

Phase 6: Signal Prioritization

Signal Score = PRR x Severity_Weight x log10(Case_Count + 1)

Severity weights: Fatal=10, Life-threatening=8, Hospitalization=5, Disability=5, Other serious=3, Non-serious=1

Categorize signals:

  • Critical (immediate attention): High PRR + fatal outcomes
  • Moderate (monitor): Moderate PRR + serious outcomes
  • Known/Expected (manage clinically): Low PRR, in label

Cross-check against mechanistic prediction: A signal not predicted mechanistically warrants additional scrutiny (possible confounding, reporting bias, or genuinely novel finding).


Output Report

Save as [DRUG]_safety_report.md. See REPORT_TEMPLATES.md for the full report structure and example outputs.


Evidence Grading

Tier Criteria Example
T1 PRR >10, fatal outcomes, boxed warning Lactic acidosis
T2 PRR 3-10, serious outcomes Hepatotoxicity
T3 PRR 2-3, moderate concern Hypoglycemia
T4 PRR <2, known/expected GI side effects

Fallback Chains

Primary Tool Fallback 1 Fallback 2
FAERS_count_reactions_by_drug_event OpenFDA_search_drug_events Literature search
DailyMed_search_spls OpenFDA_search_drug_labels DailyMed website
PharmGKB_search_drugs CPIC_list_guidelines Literature search
search_clinical_trials ClinicalTrials.gov API PubMed for trial results

Completeness Checklist

See CHECKLIST.md for the full phase-by-phase verification checklist.


References

how to use tooluniverse-pharmacovigilance

How to use tooluniverse-pharmacovigilance on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add tooluniverse-pharmacovigilance
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-pharmacovigilance

The skills CLI fetches tooluniverse-pharmacovigilance from GitHub repository mims-harvard/tooluniverse and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/tooluniverse-pharmacovigilance

Reload or restart Cursor to activate tooluniverse-pharmacovigilance. Access the skill through slash commands (e.g., /tooluniverse-pharmacovigilance) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.631 reviews
  • Nikhil Mehta· Dec 12, 2024

    tooluniverse-pharmacovigilance has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Ganesh Mohane· Dec 8, 2024

    I recommend tooluniverse-pharmacovigilance for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Rahul Santra· Nov 27, 2024

    tooluniverse-pharmacovigilance fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Nikhil Reddy· Nov 3, 2024

    Solid pick for teams standardizing on skills: tooluniverse-pharmacovigilance is focused, and the summary matches what you get after install.

  • Nikhil Torres· Oct 22, 2024

    I recommend tooluniverse-pharmacovigilance for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Pratham Ware· Oct 18, 2024

    tooluniverse-pharmacovigilance has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Olivia Harris· Oct 2, 2024

    tooluniverse-pharmacovigilance fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Piyush G· Sep 25, 2024

    tooluniverse-pharmacovigilance reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Olivia Martin· Sep 17, 2024

    tooluniverse-pharmacovigilance has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • James Ghosh· Sep 1, 2024

    Useful defaults in tooluniverse-pharmacovigilance — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

showing 1-10 of 31

1 / 4