skills/43-wentorai-research-plugins/skills/domains/biomedical/clinical-research-guide/SKILL.md
Design clinical studies and report using CONSORT, STROBE guidelines
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research clinical-research-guideInstall 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.
A skill for designing clinical studies and reporting results according to established guidelines. Covers randomized controlled trials (CONSORT), observational studies (STROBE), diagnostic studies (STARD), and systematic reviews (PRISMA).
Systematic Reviews / Meta-analyses
|
Randomized Controlled Trials (RCTs)
|
Cohort Studies (prospective)
|
Case-Control Studies
|
Cross-Sectional Studies
|
Case Reports / Case Series
|
Expert Opinion
Choose the design that best answers your research question
given ethical, practical, and resource constraints.
def select_study_design(research_question: str,
can_randomize: bool,
outcome_prevalence: str,
time_constraint: str) -> dict:
"""
Guide selection of clinical study design.
Args:
research_question: The clinical question
can_randomize: Whether randomization is ethical and feasible
outcome_prevalence: 'common' or 'rare'
time_constraint: 'short', 'medium', or 'long'
"""
if can_randomize:
design = {
"recommended": "Randomized Controlled Trial (RCT)",
"reporting": "CONSORT 2010",
"strengths": "Strongest causal inference",
"considerations": [
"Need equipoise (genuine uncertainty about which is better)",
"Blinding may or may not be feasible",
"Intent-to-treat analysis is the primary approach",
"Pre-register at ClinicalTrials.gov or ISRCTN"
]
}
elif outcome_prevalence == "rare":
design = {
"recommended": "Case-Control Study",
"reporting": "STROBE",
"strengths": "Efficient for rare outcomes",
"considerations": [
"Select controls carefully (matching, population-based)",
"Recall bias is a major threat",
"Can only calculate odds ratios, not incidence"
]
}
elif time_constraint == "short":
design = {
"recommended": "Cross-Sectional Study",
"reporting": "STROBE (cross-sectional extension)",
"strengths": "Quick, inexpensive, good for prevalence",
"considerations": [
"Cannot establish temporal sequence",
"Prevalence bias (overrepresents chronic conditions)",
"Useful for hypothesis generation"
]
}
else:
design = {
"recommended": "Prospective Cohort Study",
"reporting": "STROBE",
"strengths": "Can establish temporal sequence, multiple outcomes",
"considerations": [
"Loss to follow-up is the main threat",
"Confounding must be addressed analytically",
"Expensive and time-consuming"
]
}
return design
Title and Abstract:
- Identify as randomized trial in the title
- Structured abstract with trial design, methods, results, conclusions
Methods:
- Trial design (parallel, crossover, factorial, etc.)
- Participants: Eligibility criteria, settings, locations
- Interventions: Precise details of interventions for each group
- Outcomes: Primary and secondary, how and when assessed
- Sample size: Calculation with assumptions stated
- Randomization: Sequence generation, allocation concealment
- Blinding: Who was blinded, how blinding was maintained
Results:
- CONSORT flow diagram (enrollment, allocation, follow-up, analysis)
- Baseline demographic table (Table 1)
- Primary outcome with effect size and confidence interval
- Harms and adverse events
Discussion:
- Limitations including sources of potential bias
- Generalizability
- Interpretation consistent with results
Assessed for eligibility (n=...)
|
Excluded (n=...)
- Not meeting criteria (n=...)
- Declined to participate (n=...)
- Other reasons (n=...)
|
Randomized (n=...)
/ \
Allocated to Allocated to
intervention (n=...) control (n=...)
| |
Lost to follow-up Lost to follow-up
(n=..., reasons) (n=..., reasons)
| |
Analyzed (n=...) Analyzed (n=...)
Excluded from analysis Excluded from analysis
(n=..., reasons) (n=..., reasons)
Study design specific items:
Cohort:
- Report follow-up time (person-years, median)
- Report loss to follow-up with reasons
- Use hazard ratios or incidence rate ratios
Case-Control:
- Describe case definition and case ascertainment
- Describe control selection (source, matching criteria)
- Report odds ratios with confidence intervals
Cross-Sectional:
- Report response rate and non-response analysis
- Describe how the sample represents the target population
- Report prevalence with confidence intervals
def power_analysis_rct(effect_size: float, alpha: float = 0.05,
power: float = 0.80, ratio: float = 1.0) -> dict:
"""
Calculate required sample size for a two-arm RCT.
Args:
effect_size: Expected Cohen's d
alpha: Significance level (two-sided)
power: Desired statistical power
ratio: Allocation ratio (control:treatment)
"""
from scipy import stats
import math
z_alpha = stats.norm.ppf(1 - alpha / 2)
z_beta = stats.norm.ppf(power)
n_per_arm = math.ceil(
((z_alpha + z_beta) ** 2 * (1 + 1 / ratio)) / effect_size ** 2
)
return {
"n_per_arm": n_per_arm,
"total_n": n_per_arm + math.ceil(n_per_arm * ratio),
"parameters": {
"effect_size": effect_size,
"alpha": alpha,
"power": power,
"allocation_ratio": f"1:{ratio}"
},
"note": "Add 10-20% for anticipated dropout"
}
| Guideline | Study Type | Checklist Items | |-----------|-----------|-----------------| | CONSORT | Randomized trials | 25 items + flow diagram | | STROBE | Observational studies | 22 items | | STARD | Diagnostic accuracy studies | 30 items | | PRISMA | Systematic reviews | 27 items + flow diagram | | TRIPOD | Prediction models | 22 items | | SPIRIT | Trial protocols | 33 items | | CARE | Case reports | 13 items |
All checklists are available at the EQUATOR Network (equator-network.org). Most journals require submission of the relevant checklist with your manuscript. Completing the checklist during manuscript writing, not after, ensures comprehensive reporting.
development
Conduct rigorous thematic analysis (TA) of qualitative data following Braun and Clarke's (2006) six-phase framework. Use whenever the user mentions 'thematic analysis', 'TA', 'Braun and Clarke', 'qualitative coding', 'identifying themes', or asks for help analysing interviews, focus groups, open-ended survey responses, or transcripts to identify patterns. Also trigger for questions about inductive vs theoretical coding, semantic vs latent themes, essentialist vs constructionist epistemology, building a thematic map, or writing up a qualitative findings section. Covers all six phases, the four upfront analytic decisions, the 15-point quality checklist, and the five common pitfalls. Produces a Word document write-up and an annotated thematic map. Does NOT cover IPA, grounded theory, discourse analysis, conversation analysis, or narrative analysis — use a different method for those.
development
Guide users through writing a systematic literature review (SLR) following the PRISMA 2020 framework. Use this skill whenever the user mentions 'systematic review', 'systematic literature review', 'SLR', 'PRISMA', 'PRISMA 2020', 'PRISMA flow diagram', 'PRISMA checklist', or asks for help writing, structuring, or auditing a literature review that follows reporting guidelines. Also trigger when the user asks about inclusion/exclusion criteria for a review, search strategies for databases like Scopus/WoS/PubMed, study selection processes, risk of bias assessment, or narrative synthesis for a review paper. This skill covers the full PRISMA 2020 checklist (27 items), produces a Word document manuscript in strict journal article format, generates an annotated PRISMA flow diagram, and enforces APA 7th Edition referencing throughout. It does NOT cover meta-analysis or statistical pooling. By Chuah Kee Man.
testing
Performs placebo-in-time sensitivity analysis with hierarchical null model and optional Bayesian assurance. Use when checking model robustness, verifying lack of pre-intervention effects, or estimating study power.
data-ai
Fit, summarize, plot, and interpret a chosen CausalPy experiment. Use after the causal method has been selected, including when configuring PyMC/sklearn models and scale-aware custom priors.