plugins/tooluniverse/skills/tooluniverse-clinical-trial-design/SKILL.md
Strategic clinical trial design feasibility assessment. Analyzes 6 dimensions (endpoint, population, comparator, effect size, duration, regulatory pathway) using precedent trials and FDA guidance. Produces enrollment projections, endpoint recommendations, and approval-pathway analysis. Use for trial-protocol design, power/sample-size estimation, comparator selection, and FDA submission strategy. Driven by precedent-based reasoning rather than first-principles math.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-clinical-trial-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Systematically assess clinical trial feasibility by analyzing 6 research dimensions. Produces comprehensive feasibility reports with quantitative enrollment projections, endpoint recommendations, and regulatory pathway analysis.
IMPORTANT: Always use English terms in tool calls (drug names, disease names, biomarker names), even if the user writes in another language. Only try original-language terms as a fallback if English returns no results. Respond in the user's language.
Trial design starts with the question, not the methods. Answer these four questions before running any tools — they determine everything else:
These four answers determine sample size, duration, and trial design. Look them up from precedent trials and FDA guidance — do not derive them from first principles.
LOOK UP DON'T GUESS: Never assume what the standard of care is for an indication — look it up with DrugBank and FDA tools. Never assume an endpoint is FDA-accepted — verify with search_clinical_trials precedents and OpenFDA_get_approval_history. Never estimate prevalence from memory — use OpenTargets, gnomAD, or COSMIC.
DO NOT show tool outputs to user. Instead:
[INDICATION]_trial_feasibility_report.md FIRST| Grade | Symbol | Criteria | Examples | |-------|--------|----------|----------| | A | 3-star | Regulatory acceptance, multiple precedents | FDA-approved endpoint in same indication | | B | 2-star | Clinical validation, single precedent | Phase 3 trial in related indication | | C | 1-star | Preclinical or exploratory | Phase 1 use, biomarker validation ongoing | | D | 0-star | Proposed, no validation | Novel endpoint, no precedent |
Weighted composite score:
Interpretation: >=75 HIGH (proceed), 50-74 MODERATE (additional validation), <50 LOW (de-risking required)
Apply when users:
Trigger phrases: "clinical trial design", "trial feasibility", "enrollment projections", "endpoint selection", "trial planning", "Phase 1/2 design", "basket trial", "biomarker trial"
Execute 6 parallel research dimensions. See STUDY_DESIGN_PROCEDURES.md for detailed steps per path.
Trial Design Query
|
+-- PATH 1: Patient Population Sizing
| Disease prevalence, biomarker prevalence, geographic distribution,
| eligibility criteria impact, enrollment projections
|
+-- PATH 2: Biomarker Prevalence & Testing
| Mutation frequency, testing availability, turnaround time,
| cost/reimbursement, alternative biomarkers
|
+-- PATH 3: Comparator Selection
| Standard of care, approved comparators, historical controls,
| placebo appropriateness, combination therapy
|
+-- PATH 4: Endpoint Selection
| Primary endpoint precedents, FDA acceptance history,
| measurement feasibility, surrogate vs clinical endpoints
|
+-- PATH 5: Safety Endpoints & Monitoring
| Mechanism-based toxicity, class effects, organ-specific monitoring,
| DLT history, safety monitoring plan
|
+-- PATH 6: Regulatory Pathway
Regulatory precedents (505(b)(1), 505(b)(2)), breakthrough therapy,
orphan drug, fast track, FDA guidance
Create [INDICATION]_trial_feasibility_report.md with all 14 sections. See REPORT_TEMPLATE.md for full templates with fillable fields.
OpenTargets_get_disease_id_description_by_name - Disease lookupOpenTargets_get_diseases_phenotypes_by_target_ensembl - Prevalence dataClinVar_search_variants - Biomarker mutation frequencygnomad_search_variants - Population allele frequenciesPubMed_search_articles - Epidemiology literaturesearch_clinical_trials - Enrollment feasibility from past trialsClinVar_get_variant_details - Variant pathogenicityCOSMIC_search_mutations - Cancer-specific mutation frequenciesgnomad_get_variant - Population geneticsPubMed_search_articles - CDx test performance, guidelinesdrugbank_get_drug_basic_info_by_drug_name_or_id - Drug infodrugbank_get_indications_by_drug_name_or_drugbank_id - Approved indicationsdrugbank_get_pharmacology_by_drug_name_or_drugbank_id - MechanismFDA_OrangeBook_search_drug - Generic availabilityOpenFDA_get_approval_history - Approval detailssearch_clinical_trials - Historical control datasearch_clinical_trials - Precedent trials, endpoints usedPubMed_search_articles - FDA acceptance history, endpoint validationOpenFDA_get_approval_history - Approved endpoints by indicationdrugbank_get_pharmacology_by_drug_name_or_drugbank_id - Mechanism toxicityFDA_get_warnings_and_cautions_by_drug_name - FDA black box warningsFAERS_search_reports_by_drug_and_reaction - Real-world adverse eventsFAERS_count_reactions_by_drug_event - AE frequencyFAERS_count_death_related_by_drug - Serious outcomesPubMed_search_articles - DLT definitions, monitoring strategiesOpenFDA_get_approval_history - Precedent approvalsPubMed_search_articles - Breakthrough designations, FDA guidancesearch_clinical_trials - Regulatory precedents (accelerated approval)from tooluniverse import ToolUniverse
tu = ToolUniverse(use_cache=True)
tu.load_tools()
# Example: EGFR+ NSCLC trial feasibility
# Step 1: Disease prevalence
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
diseaseName="non-small cell lung cancer"
)
prevalence = tu.tools.OpenTargets_get_diseases_phenotypes(
efoId=disease_info['data']['id']
)
# Step 2: Biomarker prevalence
variants = tu.tools.ClinVar_search_variants(gene="EGFR", significance="pathogenic")
# Step 3: Precedent trials
trials = tu.tools.search_clinical_trials(
condition="EGFR positive non-small cell lung cancer",
status="completed", phase="2"
)
# Step 4: Standard of care comparator
soc = tu.tools.FDA_OrangeBook_search_drug(ingredient="osimertinib")
# Compile into feasibility report...
See WORKFLOW_DETAILS.md for the complete 6-path Python workflow and use case examples.
When ToolUniverse tools return limited trial metadata, use the ClinicalTrials.gov v2 API directly:
import requests, pandas as pd
# Search with pagination (all lung cancer immunotherapy trials with results)
all_studies = []
token = None
while True:
params = {"query.cond": "lung cancer", "query.intr": "immunotherapy",
"filter.overallStatus": "COMPLETED", "filter.results": "WITH_RESULTS", "pageSize": 100}
if token: params["pageToken"] = token
resp = requests.get("https://clinicaltrials.gov/api/v2/studies", params=params).json()
all_studies.extend(resp.get("studies", []))
token = resp.get("nextPageToken")
if not token: break
# Extract structured data
rows = []
for s in all_studies:
proto = s.get("protocolSection", {})
rows.append({
"nctId": proto.get("identificationModule", {}).get("nctId"),
"title": proto.get("identificationModule", {}).get("briefTitle"),
"enrollment": proto.get("designModule", {}).get("enrollmentInfo", {}).get("count"),
"phase": proto.get("designModule", {}).get("phases", [None])[0] if proto.get("designModule", {}).get("phases") else None,
})
df = pd.DataFrame(rows)
# FDA drug approval history
drug = "pembrolizumab"
fda = requests.get(f"https://api.fda.gov/drug/drugsfda.json?search=openfda.brand_name:{drug}&limit=10").json()
See tooluniverse-data-wrangling skill for pagination, error handling, and bulk download patterns.
| File | Content |
|------|---------|
| REPORT_TEMPLATE.md | Full 14-section report template with fillable fields |
| STUDY_DESIGN_PROCEDURES.md | Detailed steps for each of the 6 research paths |
| WORKFLOW_DETAILS.md | Complete Python example workflow and 5 use case summaries |
| BEST_PRACTICES.md | Best practices, common pitfalls, output format requirements |
| EXAMPLES.md | Additional examples |
| QUICK_START.md | Quick start guide |
tools
Generate the success criteria for a task or question, then review work against them. Given a task, goal, or open-ended question, decompose it into scenarios, evaluation perspectives, and fine-grained weighted YES/NO criteria using the Recursive Expansion Tree (RET) method; if work is supplied, score it criterion-by-criterion and surface what is missing or could be better. Use when asked to self-review or check your own work, judge whether a task is done well or completely, build a definition-of-done or completeness checklist, create an evaluation rubric or grading criteria, score or grade answers to a question, set up an LLM-as-judge rubric, or when the user mentions self-review, completeness check, success criteria, evaluation criteria, scoring rubric, Qworld, or the RET algorithm.
tools
Find the real protein target(s) of a peptide from its sequence — peptide target deorphanization / off-target identification, for ANY target class (GPCR, ion channel, protease, cytokine/growth-factor receptor, enzyme, integrin), not only GPCRs. Use when a peptide has a phenotype but does not bind its hypothesized target, when a peptide binds a target in one species or assay but not another, or to screen candidate targets for an orphan peptide. A target-class router steers a multi-route keyless pipeline (PROSITE/ELM motif, BLAST homology, HGNC/InterPro/GPCRdb/GtoPdb target-family enumeration, OpenTargets phenotype anchor, EnsemblCompara/Alliance cross-species reconciliation) plus optional NVIDIA-NIM co-folding (Boltz2, AlphaFold2-Multimer, OpenFold3) for structural confirmation.
tools
Install or update ToolUniverse in Claude Science — create the conda env, install the tooluniverse pip package, and (re)build the tooluniverse-research skill by fetching the current workflow library from GitHub. Use for first-time setup, upgrading the ToolUniverse version, refreshing the bundled workflows after an upstream release, or reinstalling on a new machine.
tools
Install, set up, verify, update, pin, uninstall, or troubleshoot the ToolUniverse plugin on OpenAI Codex. ALWAYS consult this skill for any of those — don't answer from memory, because the exact marketplace name (mims-harvard/ToolUniverse), the "codex plugin marketplace add" then "codex plugin add -m tooluniverse" flow, Codex's startup auto-upgrade behavior, the uvx tooluniverse MCP server, and the API-key env vars are easy to get wrong. Use it whenever someone wants to get ToolUniverse (or "the 1000+ scientific tools" / "the harvard tools") working on Codex, says the Codex plugin or its tools/skills won't load, hits a uvx or MCP-server startup error, asks how Codex updates it, wants to pin or remove it, or finds it running an old tool version — even if they never say the word "plugin". Not for the Claude Code plugin (use tooluniverse-claude-code-plugin), for running research with the tools, or for authoring new tools or skills.