This demo runs the L9 → L12 tail of the meta-analysis workflow on a synthetic 10-study dataset, so you can see the shapes of everything the skill produces without running a real search.
⚠️ SYNTHETIC DATA — NOT A REAL SEARCH, NOT REAL CONCLUSIONS. The 10 studies, their effect sizes, the PRISMA counts and the risk-of-bias ratings are all invented. Study names are placeholders (Demo-Study-NN). Nothing here is a real study, DOI, dataset, or finding. The point is to show the artefact forms, not to demonstrate a result.
bash demo/run_demo.shThe script anchors the repository root from its own location (the parent of
demo/), so it runs unchanged after git clone — no paths to edit. If you keep
the demo somewhere else, point it at a checkout that contains skills/:
bash demo/run_demo.sh --repo-root /path/to/meta-analysis-skill
bash demo/run_demo.sh --outdir /tmp/demo-out # write outputs elsewhereWall-clock on a provisioned machine is ~1–2 minutes (this is compute only, on synthetic data). A real, human-supervised run takes ~10–15 hours and needs a person at 7 sign-off gates — see the cost table in the repository README.
| Artefact | What it shows |
|---|---|
demo_Fig1_prisma.png/.pdf |
PRISMA 2020 flow diagram (official PRISMA2020 R package) |
demo_Fig2_forest.png/.pdf |
Forest plot — RE model, weighted boxes, n_int/n_ctrl columns, prediction interval |
demo_Fig3_funnel.png/.pdf |
Contour-enhanced funnel plot with an Egger annotation |
demo_Fig4_rob.png/.pdf |
Risk-of-bias traffic light (RoB 2, robvis) |
demo_signoff_SP5_model_heterogeneity.html |
Human sign-off card SP5 (model + heterogeneity) |
demo_signoff_SP6_publication_bias.html |
Human sign-off card SP6 (publication bias) |
mini-manifest.md |
Trimmed delivery manifest (deliverables, name↔id↔value spot-check, quality stamp) |
demo_forest*.csv, demo_funnel*.csv, demo_labels.csv |
The Chart-Bridge data the renderers consumed (exact contract columns) |
Open the two .html cards in a browser — they are self-contained (fully offline).
The figures come from the skill's fixed renderers (skills/meta-analysis/scripts/plots/),
not ad-hoc plotting code; each renderer runs its own QC gate and writes nothing
if a check fails.
- L9 — pooling.
lib/demo_pool.Rfits a random-effects model (metafor, REML + Knapp–Hartung) and exports the Chart-Bridge CSVs. - Labels.
lib/make_labels.pyprojectsstudy_id → displaystraight out of the effect-size table — labels are mechanically sourced, never hand-typed (a real run once mislabelled a forest plot 8/13 because labels were hand-authored; the mini-manifest re-checks name↔id↔value consistency). - L11 — figures. The four fixed renderers draw forest / funnel / PRISMA / RoB.
- Sign-off cards.
audit_parse.Rcomputes the red/yellow flags from the synthetic data (the lights are R-computed, not hand-set); the S6 renderer turns them into the SP5 and SP6 review cards. The demo renders the cards; no gate is actually cleared — in a real run a human reads each card and signs. - L12 — manifest.
lib/make_manifest.pywrites the mini delivery manifest.
Everything the demo needs is what python3 doctor.py checks:
- Required:
Rscript+ themetaforpackage;python3+matplotlib,numpy. - Optional (the demo degrades honestly and continues if they are missing):
- PRISMA figure → R packages
PRISMA2020,DiagrammeRsvg,rsvg, andpandoc. - RoB figure → R package
robvis. - Sign-off cards →
node.
- PRISMA figure → R packages
If an optional dependency is missing, that step is skipped with a clear note and the
rest of the demo still runs. Run python3 doctor.py for exact install commands.