meta-analysis
Use when running a systematic review and meta-analysis, DTA or intervention.
Skill by Aperivue
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/aperivue-meta-analysis
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/meta-analysis
What's inside
- Skill name
meta-analysis- Description
- Use when running a systematic review and meta-analysis, DTA or intervention. Covers PROSPERO protocol, search, screening, extraction, risk of bias (QUADAS-3, RoB 2, ROBINS-I), bivariate/HSROC or random-effects pooling, forest plots, heterogeneity and PRISMA reporting. Topic scouting is /ma-scout.
- License
- MIT
- Metadata
- triggers: meta-analysis, systematic review, PROSPERO, QUADAS-3, forest plot, funnel plot, PRISMA, QUADAS, ROBINS, HSROC, bivariate model, pooled sensitivity, pooled specificity, search strategy, study selection, data extraction form
- Instructions
- 554 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- body: 554 lines (spec recommends under 500)
Files (60)
- SKILL.md
- LICENSES.md · references/
- PROSPERO_template.md · references/
- ai_pre_screening_template.py · references/
- JBI_Case_Series.md · references/checklists/
- NOS.md · references/checklists/
- PRISMA_DTA.md · references/checklists/
- PROBAST.md · references/checklists/
- QUADAS2.md · references/checklists/
- QUADAS3.md · references/checklists/
- ROBINS_I.md · references/checklists/
- RoB2.md · references/checklists/
- data_integrity_checklist.md · references/
- empirical_lessons.md · references/
- icmje_coi_guide.md · references/
- phase10_recovery.md · references/
- phase3_screening_detail.md · references/
- phase4_extraction_detail.md · references/
- phase4_km_composite.md · references/
- phase6_statistical_synthesis.md · references/
- phase9_circulation.md · references/
- post_submission_release_ops.md · references/
- r_templates.md · references/
- review_orchestration.md · references/
- single_arm_proportion_ma.md · references/
- submission_package_drift.md · references/
- check_exclusion_code_validity.py · scripts/
- protocol_negative.md · scripts/check_exclusion_code_validity_challenge/fixture/
- protocol_positive.md · scripts/check_exclusion_code_validity_challenge/fixture/
- screening_negative.tsv · scripts/check_exclusion_code_validity_challenge/fixture/
- screening_positive.tsv · scripts/check_exclusion_code_validity_challenge/fixture/
- problem.md · scripts/check_exclusion_code_validity_challenge/
- verify.sh · scripts/check_exclusion_code_validity_challenge/
- check_pool_consistency.py · scripts/
- check_ratio_ci_symmetry.py · scripts/
- extraction_negative.csv · scripts/check_ratio_ci_symmetry_challenge/fixture/
- extraction_positive.csv · scripts/check_ratio_ci_symmetry_challenge/fixture/
- problem.md · scripts/check_ratio_ci_symmetry_challenge/
- verify.sh · scripts/check_ratio_ci_symmetry_challenge/
- cohort_overlap_check.py · scripts/
- dta_extraction_qc.py · scripts/
- extract_assist.py · scripts/
- suggestions.tsv · scripts/extract_assist_challenge/expected/
- confirmed_example.csv · scripts/extract_assist_challenge/fixture/
- paper.md · scripts/extract_assist_challenge/fixture/
- schema.yaml · scripts/extract_assist_challenge/fixture/
- problem.md · scripts/extract_assist_challenge/
- verify.sh · scripts/extract_assist_challenge/
- extraction_consensus_log_init.py · scripts/
- prisma_5way_consistency.py · scripts/
- screening_reconcile.py · scripts/
- tag_cleanup_gate.sh · scripts/
- skill.yml
- FINAL_POOL_LOCK.yaml.template · templates/
- extraction_form_v2.md · templates/
- supplementary_8file_checklist.md · templates/
- test_pool_consistency.sh · tests/
- test_prisma_5way_consistency.sh · tests/
- test_ratio_ci_symmetry.sh · tests/
- test_screening_reconcile.sh · tests/
SKILL.md (first lines)
# Meta-Analysis Skill
## Meta-Analysis Types
| Type | RoB Tool | Statistical Model | Reporting Guideline |
|------|----------|-------------------|-------------------|
| **DTA** (diagnostic test accuracy) | **QUADAS-3** (QUADAS-2 for legacy reviews) | Bivariate / HSROC | PRISMA-DTA |
| **Intervention** (treatment effect) | RoB 2 (RCT) / ROBINS-I (NRSI) | Random-effects (REML, Hartung-Knapp CI) | PRISMA 2020 |
| **Prognostic factor** (association of one factor with outcome) | QUIPS | Random-effects | PRISMA 2020 |
| **Prediction model** (model performance) | PROBAST | Random-effects | PRISMA 2020 |
| **Observational** (prevalence/association) | NOS / JBI | Random-effects | MOOSE |
If the type is ambiguous (DTA vs intervention), ask the user to clarify before proceeding.
---
## Workflow Phases
### Phase 1: Protocol Development
**Goal**: Produce a PROSPERO-ready protocol document. Write the protocol, extraction forms and
manuscript text in English whatever language the user writes in — PROSPERO records and the
target journals are English-language.
1. **Research question**: PIRD (Population, Index test, Reference standard, Diagnosis) for DTA;
PICO (Population, Intervention, Comparator, Outcome) for intervention.
2. **DTA only — do QUADAS-3 phases 1 and 2 now, not at risk-of-bias time.** They are
review-level and belong in the protocol: phase 1 states the **synthesis question(s)**
(population, index test(s), target condition — a review may have more than one); phase 2
defines the **ideal test accuracy trial** for each (objective, participants, index test(s),
definition of the target condition, analysis). Every later risk-of-bias and applicability
judgement is made against that trial. Write the review-specific guidance for answering each
signalling question here too, with clinical **and** methodological input, and publish it as a
web appendix. Defining the ideal trial after seeing the studies is a judgement fitted to the
results, not an assessment. See `references/checklists/QUADAS3.md`.
3. **Eligibility criteria**: study design, population, index test / intervention, comparator /
reference standard, outcomes (Se/Sp for DTA; effect size for intervention), and exclusion
criteria with justification.
4. **Search plan**: at least 3 databases — PubMed, Embase, and Cochrane CENTRAL (add Scopus / Web
of Science as needed); a Boolean strategy from the PIRD/PICO components; a grey-literature plan
(conference abstracts, trial registries); language restrictions and date range stated
explicitly, with justification.
5. **RoB plan**: tool by type (table above), at least 2 independent assessors, and the
disagreement-resolution method (consensus, third reviewer).
6. **Synthesis plan**: bivariate random-effects (Reitsma) or HSROC (Rutter & Gatsonis) for DTA;
random-effects for intervention (Phase 6); heterogeneity, subgroup / sensitivity, and
publication-bias plans.
7. **PROSPERO registration document**: read `${CLAUDE_SKILL_DIR}/references/PROSPERO_template.md`
and follow its field guide, word limits, output format (Markdown + DOCX via pandoc), and Common
Pitfalls Checklist. Save to the project's `7_Submission/` or equivalent directory.
- **Submit before the formal search, and record the date.** The user submits the registration;
record the initial submission date (not the later date the record is published) in the
project's status file (`STATUS.md`, `project_state.json` or `project.yaml`, whichever the
project keeps). The Phase 2 entry check looks for it. A pilot search is fine before
submission; the formal search, screening and extraction, AI first-pass drafts included, are not.
- **Registration-ID format gate.** A PROSPERO ID is `CRD42` + 9 digits (14 characters total),
e.g. `CRD42024500001`. Validate any ID that appears in the manuscript or registration doc with
`grep -oE 'CRD42[0-9]+'` and assert a 14-character length / `^CRD42\d{9}$` — a 15-character ID
(a stray digit) is a transcription error a reviewer will check against the live record.
- **Review-type selection.** Pick the *least-wrong* portal review type for the actual design and
state any portal constraint in the protocol. A descriptive single-arm proportion synthesis is
not an "Intervention review"; choosing that type only to satisfy a portal field contradicts a
later GRADE / effect-certainty statement. Whatever certainty language the protocol commits to
(GRADE vs "evidence statements only") must match the manuscript verbatim — a guideline-style
"we recommend" is not licensed by a descriptive review type.
### Phase 2: Search Strategy
**Goal**: Develop and validate reproducible search strategies.
**Entry check — registration before the formal search.** Look for the registration submission
date recorded in Phase 1 step 7. If none is recorded, stop and ask the user to choose: submit the
registration now and run the search after that date, or proceed without it, in which case Phase 8
item 5 limits what the manuscript may claim. Record the choice. Screening or extraction done before
submission, AI first-pass drafts included, cannot be made prospective afterwards. Under
`/orchestrate --e2e` this stop is the `REGISTRATION_PENDING` halt; no autonomous default passes it.
1. Build search blocks from the PIRD/PICO components and execute them per database with
`/search-lit` (PubMed: MeSH + free text; Embase: Emtree + free text; further databases as the
protocol specifies). Searching only: selecting records and extracting results belong to
Phases 3–4, not to `/search-lit`'s own selection and deep-read steps.
2. **Report per PRISMA-S** (Rethlefsen et al. 2021, PMID:33499930): one section per database with
date of search, number of results, and any limits applied.
3. **Merge and deduplicate** into a single spreadsheet: by DOI first, then PMID. Save raw counts
for the PRISMA flow.
### Phase 3: Screening & Selection
**Goal**: Systematic title/abstract and full-text screening with two independent reviewers. Read
`references/phase3_screening_detail.md` when executing a round (exclusion-code sets, AI pre-screening
template and Methods boilerplate) or when a 3f/3f.5 gate fires (set algebra, reconciliation table).
**3a. Round 1 — title/abstract (single reviewer).** Define the exclusion codes from the protocol.
Mark every record INCLUDE / EXCLUDE / MAYBE with a reason code → `round1_{date}.tsv`.
**3b. Round 2 — dual independent title/abstract.** A second independent reviewer (or AI as a
*documented* second-pass tool with human verification) re-screens all R1 records. Report Cohen's κ
in Methods. `round2_tag` = INCLUDE / EXCLUDE / MAYBE (MAYBE = disagreement **or** either reviewer
flagged uncertainty), plus `round2_reason`.
**3c. Round 3 — adjudication (first reviewer).** MAYBE records first, then INCLUDE records for a
brief confirmation pass → `round3_decision` (plus `round3_reason` only when overturning R2).
Optional AI pre-screening may compress the effort, but **AI suggestions are not decisions**: the
reviewer independently confirms or overturns every one.
**3d. Round 4 — full text** (`/fulltext-retrieval`) for `round3_decision = INCLUDE`: full-text
exclusion codes, two independent reviewers, Cohen's κ, consensus or a third reviewer. Flag
comparative studies for priority extraction.
**3e. PRISMA flow.** Track counts at every stage (R1 → R2 → R3 → R4 → final included); draw it with
`/make-figures` once final.
**3f. Post-consensus count reconciliation gate (MANDATORY before Phase 5 write-up).** ReconcileFrom Aperivue/medsci-skills, MIT.
More from Aperivue/medsci-skills
- 0.779score
deidentify
Aperivue
Use when clinical data may contain PHI and must be de-identified before any LLM-assisted analysis.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
design-ai-benchmarking
Aperivue
Use when designing a study that benchmarks AI systems against a human-expert panel, before data collection.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
contribute
Aperivue
Use when sending local changes back to the project (an added journal profile, a fixed checklist item, an adapted skill) or reporting a false positive or bug.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
define-variables
Aperivue
Use when exposure, outcome, covariate or eligibility definitions and cutoffs need a citable basis before the protocol.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
add-journal
Aperivue
Use when a target journal has no profile yet.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
calc-sample-size
Aperivue
Use when planning how many patients or cases a study needs before data collection (power analysis, IRB justification).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
review-paper
Aperivue
Use when writing a literature review article (narrative, scoping PRISMA-ScR or systematic).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
author-strategy
Aperivue
Use when analyzing a researcher's publication record from PubMed.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
academic-aio
Aperivue
Use when a medical AI paper should be found and cited by AI search engines and RAG tools.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
check-reporting
Aperivue
Use when auditing a manuscript item by item against a reporting guideline or risk-of-bias tool.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
clean-data
Aperivue
Use when a clinical CSV/Excel dataset needs profiling and cleaning before analysis (missing values, outliers, duplicates, type mismatches).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
design-study
Aperivue
Use when checking a radiology or medical AI study design before drafting or submission.
SkillAFreshness: A★ 349Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 349
- Forks
- 83
- Open issues
- 4
- Last commit (this folder)
- Oct 16, 2026 (12 days ago)
- Last release
- Oct 4, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Aperivue/medsci-skills
- Website
- aperivue.com/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Aperivue
- 0.779score
review-paper
Aperivue
Use when writing a literature review article (narrative, scoping PRISMA-ScR or systematic).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
author-strategy
Aperivue
Use when analyzing a researcher's publication record from PubMed.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
academic-aio
Aperivue
Use when a medical AI paper should be found and cited by AI search engines and RAG tools.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
add-journal
Aperivue
Use when a target journal has no profile yet.
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
calc-sample-size
Aperivue
Use when planning how many patients or cases a study needs before data collection (power analysis, IRB justification).
SkillAFreshness: A★ 349Claude Code +9 - 0.779score
check-reporting
Aperivue
Use when auditing a manuscript item by item against a reporting guideline or risk-of-bias tool.
SkillAFreshness: A★ 349Claude Code +9
Cite this page
meta-analysis skill. Agent Mart. https://agentmart.dev/skills/aperivue-meta-analysis (last updated 2026-10-24)