[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QKJS39W1MSH66N6JSPKJ8":3,"skill-same:01M71QKJS39W1MSH66N6JSPKJ8":97},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M71QKJS39W1MSH66N6JSPKJ8","method-meta-analysis",null,"Pools literature effects with REML\u002FHartung-Knapp. Use when power or a SAP needs a cited effect-size assumption and sensitivity range.","sajor2000\u002Fmethodsmith","sajor2000","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F126191042?v=4","01M71QG4M3561SH49E3S7J3GKT","JC Rojas ","01M71QG4N56X2P61YTJSRP95VD",6,"MIT","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"analysis","method meta analysis","meta analysis","Meta","size","with","csv","use","sensitivity","methods","sap","path","metric","literature","when","hr","effects","rr","power","effect","2026-11-10 13:02:02",false,"---\nname: method-meta-analysis\ndescription: \"Pools literature effects with REML\u002FHartung-Knapp. Use when power or a SAP needs a cited effect-size assumption and sensitivity range.\"\nargument-hint: \"\u003Cpath\u002Fto\u002Fmethods.csv>, optional: --metric OR|HR|RR|MD|SMD\"\n---\n\n# Effect-Size Anchor for Power Calculations\n\n\n## Skill Value\n\n- **Problem it solves:** SAPs often choose effect assumptions without traceable prior evidence.\n- **Use when:** The user needs effect-size assumptions, pilot estimates, pooled estimates, or literature-derived values.\n- **Output:** Effect-size summary with sources, assumptions, uncertainty, and downstream SAP\u002Fpower handoff.\n- **Ask only if:** Only when outcome scale, comparison, estimand, or source set is ambiguous.\n- **Do not do:** Do not overstate causal interpretation or replace formal meta-analysis when one is required.\n- **Formal synthesis:** Use `method-clif-meta-analysis` for a complete systematic review or CLIF site-to-lead analysis. The sample-size filter and power-anchor workflow here are not review eligibility rules.\n- **Interaction:** Check repo\u002Fconfig\u002Fchat evidence first. Ask one decision-changing question at a time; use the current harness's blocking question UI when available, otherwise present numbered choices and wait.\n\nBridges `method-extract` (which collects what prior studies REPORTED) and `method-power` (which needs a single number to plug in).\n\n## When this skill activates\n\n- After `method-extract` has produced `analysis\u002Fpubmed\u002F\u003Cquery>-methods.csv`\n- Before `method-power` so the effect-size assumption is anchored\n- Manual: `method-meta-analysis analysis\u002Fpubmed\u002Fsepsis-bundle-methods.csv --metric HR`\n\n## Prerequisites\n\n- A methods CSV with pmid, year, sample_size and effect_size_reported; pooling additionally needs source-reported uncertainty or a reconstructible declared Wald interval per `references\u002Feffect-parser.md`.\n- Select a protocol-compatible target: population\u002Fcomparison, outcome\u002Fhorizon, effect scale\u002Funit, adjustment specification, study design and independent contribution. A modal metric is not evidence of compatibility; resolve unknowns before fitting.\n\n## Evidence access\n\nRead `references\u002Fevidence-access.md` before the first literature lookup (PubMed and Paperclip MCP tool names, fallbacks, and evidence rules); never invent a citation, effect size, or guideline item.\n\n- **Look up here:** prior pooled estimates and their heterogeneity (published meta-analyses on the same question, found with `mcp__pubmed-mcp-server__pubmed_search_articles` (or the connector's `search_articles`) and a `Meta-Analysis[Publication Type]` filter) to compare against the result here, and the paper behind any row whose effect or CI is ambiguous in the methods CSV (PMC full text via `mcp__pubmed-mcp-server__pubmed_fetch_fulltext` or the connector's `get_full_text_article`, or `mcp__paperclip__cat`\u002F`mcp__paperclip__grep`).\n\n## Core workflow\n\n### Step 0: Context inputs (scan chat first)\n\nIf no `\u003Cpath\u002Fto\u002Fmethods.csv>` was passed, scan the most recent ~50 chat turns for `__CE_METHOD_EXTRACT__ csv=\u003Cpath> n=\u003Cint> modal_method=\u003C...>`. If found, use that CSV as the input. Print `[method-extract] using methods table from \u003Cpath> (n=\u003CN>, modal=\u003Cmodal_method>)`.\n\nIf neither an explicit path nor the signal is present, ask the user to load the `method-extract` skill first or pass a CSV path explicitly. Never substitute an effect size from memory for a missing table.\n\n### Step 1: Load and parse\n\nRead the methods CSV. Parse the `effect_size_reported` field: extract metric type (OR\u002FHR\u002FRR\u002FMD\u002FSMD), point, lo, hi. Use `references\u002Feffect-parser.md` patterns, normalise adjusted labels (`aHR` -> `HR`) while keeping the `adjusted` flag (adjusted and unadjusted OR\u002FHR are not interchangeable; see that reference), and write `analysis\u002Feffect-size\u002F\u003Cquery>-parsed.csv` plus the parsing script next to it (the parsed-CSV contract is in that reference; `scripts\u002Fpool_effects.R` reads the parsed CSV, not the raw methods table). Drop rows where parsing fails; report count of dropped rows. Where a row's effect, CI, or metric is ambiguous and the paper is lawfully available, read the results section (see Evidence access) rather than guess, and note the row's `evidence_level` (`full_text` or `abstract`) in the included-studies CSV.\n\nValidate each row's uncertainty before selection: use a source-reported SE on the correct analysis scale, or the declared Wald confidence level\u002Fmethod\u002Fdf and source-rounding tolerance in `references\u002Feffect-parser.md`. Do not reconstruct unknown or asymmetric non-Wald intervals as normal 95% intervals. Resolve or explicitly exclude an unsupported row under the protocol, retaining its reason; never silently create its variance or hand off its numeric anchor.\n\n### Step 2: Filter to comparable studies\n\nFilter to the selected scientific target first; read the complete parsed contract in `references\u002Feffect-parser.md`. Resolve adjusted\u002Fmarginal differences, units and overlapping cohorts before any fit. Exclude rows whose uncertainty remains unsupported, retaining their reasons. Save the selection code and excluded-study reasons. Write only the selected compatible rows with supported uncertainty to `analysis\u002Feffect-size\u002F\u003Cquery>-selected.csv`; retain the full parsed CSV and exclusions for audit. Then filter:\n- `metric` matches `--metric` (or modal-metric if not specified); `scripts\u002Fpool_effects.R` matches the uppercase label exactly, so pass `HR`, not `hr`\n- No sample-size cutoff by default: inverse-variance weights already down-weight small studies. Pass `--min-n \u003Cn>` to `scripts\u002Fpool_effects.R` only as a sensitivity analysis, and then report the unfiltered estimate alongside it\n- Year within last `--years` window if passed\n- Optional: study type filter (e.g., RCTs only)\n\nReport N studies in the meta-analysis vs N in the input.\n\n### Step 3: Pool\n\nRun the bundled script on the selected CSV from Step 2 (the numerical columns plus the reviewed compatibility declarations in `references\u002Feffect-parser.md`; it fails on missing or incompatible declarations, so the raw methods table will not work). It applies metric and finite-point filters (plus `--min-n` when passed), prints each dropped count, and stops on any row without supported uncertainty. It writes the Markdown summary, a sibling `-forest.png`, the selected `-contract.csv`, and the Step 6 signal:\n\n```bash\nSKILL_DIR=\"\u003Cabsolute path of the directory containing this SKILL.md>\";\nRscript \"$SKILL_DIR\u002Fscripts\u002Fpool_effects.R\" --in analysis\u002Feffect-size\u002F\u003Cquery>-selected.csv --metric HR --out analysis\u002Feffect-size\u002F\u003Cquery>-pooled.md\n```\n\nRequires the project's R environment with `meta` and `ggplot2`; report missing packages rather than installing them from this skill.\n\nIf N ≥ 3:\n- For OR \u002F HR \u002F RR: log-transform → random-effects REML (use an explicitly configured R `meta::metagen` or `metafor::rma`; Python statsmodels Paule-Mandel is a different method)\n- For MD: random-effects REML on the raw scale\n- For SMD: Hedges g + REML\n- The script pins the CI method (Hartung-Knapp-Sidik-Jonkman when tau^2 > 0, Wald when tau^2 = 0) and the prediction interval (t, k-1 df) rather than trusting `meta` defaults; `references\u002Fpooling-formulas.md` explains each choice\n- Report: pooled estimate, 95% CI (with its method), 95% prediction interval (PI), I^2 heterogeneity, tau^2, and the `meta` version\n- If `meta` returns no finite PI bounds, say so and report the CI as the fallback sweep range\n- Do not fit a mixed adjusted\u002Funadjusted primary pool. Select the compatible estimand\u002Fadjustment set first; separate sensitivity pools get separate files and cannot overwrite the primary contract or handoff.\n- If R is unavailable, stop and report it rather than hand-coding REML; `statsmodels.stats.meta_analysis.combine_effects(..., method_re=\"iterated\", use_t=True)` is acceptable only when labelled as Paule-Mandel\n\nIf N \u003C 3:\n- Report narrative range (min, median, max) -- DO NOT pool\n- Highlight the anchor study the script picks: an RCT first when `study_type` is present, then the largest N, then the most recent\n- Caveat the user: \"single-study or two-study power calc is fragile; consider running with sensitivity sweep\"\n\nAfter pooling, compare the result with any published meta-analysis found under Evidence access (cite its PMID\u002FDOI and the level read). State agreement or disagreement with its pooled estimate and I^2; a large divergence is a flag for the SAP, not a reason to replace the computed value.\n\n### Step 4: Write the output\n\n`analysis\u002Feffect-size\u002F\u003Cquery>-pooled.md`. `scripts\u002Fpool_effects.R` writes the pooled-estimate block and the forest-plot line; append the filtering counts, the \"Prior pooled estimates\" section, and the `method-power` handoff to that same file rather than writing a second one (the numbers below are template placeholders; every value comes from the computation, and the \"Prior pooled estimates\" line names the PMID\u002FDOI of each comparison or says none was found):\n\n```\n# Pooled effect-size: \u003Cmetric> for \u003Coutcome> in \u003Cpopulation>\n\nSource: 14 studies extracted via `method-pubmed` and `method-extract` on \u003Cdate>\nFiltered to: \u003Cmetric>, validated uncertainty (reported SE or declared Wald CI), last 10 years -> 9 studies pooled\n\n## Pooled estimate\n\n\u003Cmetric> = 0.78 (95% CI 0.65-0.93, Hartung-Knapp; 95% PI 0.52-1.17)\nI^2 = 42% (may represent moderate heterogeneity; read with tau and the PI)\ntau^2 = 0.04\n\n## Prior pooled estimates\n\n\u003CPMID\u002FDOI of each published meta-analysis compared, its pooled estimate and I^2, and the level read; or \"none found for \u003Cquery> on \u003Cdate>\">\n\n## Forest plot\n\nSee `analysis\u002Feffect-size\u002F\u003Cquery>-pooled-forest.png`\n\n## For `method-power`\n\nUse point estimate 0.78 with sensitivity sweep across PI bounds (0.52 to 1.17).\nPublished effects are selected, so the pooled estimate may overstate the benefit\n(for a protective HR, the true HR is likely closer to 1). Choose a target HR that\nreflects a clinically important and realistic benefit\n(DELTA2, Cook et al. BMJ 2018;363:k3750, PMID 30560792). For a two-proportion\ncalculation, convert with a cited control risk (references\u002Feffect-parser.md).\n```\n\nAlso save a CSV: `analysis\u002Feffect-size\u002F\u003Cquery>-included.csv` (which studies, why included, their PMID\u002FDOI, and `evidence_level`). `method-power` reads this file for the PMIDs it cites in SAP-6, since the signal line carries numbers only.\n\n### Step 5: Generate forest plot\n\nUse R `meta::forest()` or Python `matplotlib`. Each study's point and CI; pooled point and CI at the bottom.\n\n### Step 6: Emit signal\n\nThe bundled `scripts\u002Fpool_effects.R` prints the canonical envelope. REML (k>=3) form:\n\n```\n__CE_EFFECT_SIZE__ metric=\u003Cm> n_studies=\u003Cn> point=\u003Cv> ci=\u003Clo,hi> pi=\u003Clo,hi|NA> i2=\u003Cpct> mode=reml contract=\u003Cpath>\n```\n\n`pi=` carries the 95% prediction interval on the reported scale (exponentiated for ratio metrics). It is `pi=NA` when `meta` returns no finite PI bounds for this k and tau^2.\n\nNarrative form (k\u003C3, no pooling):\n\n```\n__CE_EFFECT_SIZE__ metric=\u003Cm> n_studies=\u003Cn> point=null ci=null pi=NA i2=null mode=narrative contract=\u003Cpath>\n```\n\nBoth forms carry the selected compatibility artifact in `contract=`. `method-power` must read it and match the planned estimand, outcome\u002Fhorizon, unit and adjustment set before using the point. Legacy signals without that evidence require reconciliation, not an assumed compatible anchor. `method-power` sweeps over `pi=` when both bounds are finite and falls back to `ci=` otherwise. When `mode=narrative`, `method-power` should fall back to the user-supplied effect size or stop and ask, rather than try to read `point=null` as a number.\n\n## What this skill does NOT do\n\n- Does not do a full systematic-review meta-analysis (no risk-of-bias scoring, no PRISMA flow); that's a separate study type, use the `method-checklist` skill to register it as PRISMA\n- Does not invent missing uncertainty; source-reported SEs are usable without a CI, while unresolved SE\u002FCI construction blocks that row's numeric use.\n- Does not handle network meta-analysis (use `netmeta` package directly)\n- Does not compute power (that's `method-power`)\n\n## References\n\n@.\u002Freferences\u002Feffect-parser.md\n\n@.\u002Freferences\u002Fpooling-formulas.md\n","# Effect-Size Anchor for Power Calculations\n\n\n## Skill Value\n\n- **Problem it solves:** SAPs often choose effect assumptions without traceable prior evidence.\n- **Use when:** The user needs effect-size assumptions, pilot estimates, pooled estimates, or literature-derived values.\n- **Output:** Effect-size summary with sources, assumptions, uncertainty, and downstream SAP\u002Fpower handoff.\n- **Ask only if:** Only when outcome scale, comparison, estimand, or source set is ambiguous.\n- **Do not do:** Do not overstate causal interpretation or replace formal meta-analysis when one is required.\n- **Formal synthesis:** Use `method-clif-meta-analysis` for a complete systematic review or CLIF site-to-lead analysis. The sample-size filter and power-anchor workflow here are not review eligibility rules.\n- **Interaction:** Check repo\u002Fconfig\u002Fchat evidence first. Ask one decision-changing question at a time; use the current harness's blocking question UI when available, otherwise present numbered choices and wait.\n\nBridges `method-extract` (which collects what prior studies REPORTED) and `method-power` (which needs a single number to plug in).\n\n## When this skill activates\n\n- After `method-extract` has produced `analysis\u002Fpubmed\u002F\u003Cquery>-methods.csv`\n- Before `method-power` so the effect-size assumption is anchored\n- Manual: `method-meta-analysis analysis\u002Fpubmed\u002Fsepsis-bundle-methods.csv --metric HR`\n\n## Prerequisites\n\n- A methods CSV with pmid, year, sample_size and effect_size_reported; pooling additionally needs source-reported uncertainty or a reconstructible declared Wald interval per `references\u002Feffect-parser.md`.\n- Select a protocol-compatible target: population\u002Fcomparison, outcome\u002Fhorizon, effect scale\u002Funit, adjustment specification, study design and independent contribution. A modal metric is not evidence of compatibility; resolve unknowns before fitting.\n\n## Evidence access\n\nRead `references\u002Fevidence-access.md` before the first literature lookup (PubMed and Paperclip MCP tool names, fallbacks, and evidence rules); never invent a citation, effect size, or guideline item.\n\n- **Look up here:** prior pooled estimates and their heterogeneity (published meta-analyses on the same question, found with `mcp__pubmed-mcp-server__pubmed_search_articles` (or the connector's `search_articles`) and a `Meta-Analysis[Publication Type]` filter) to compare against the result here, and the paper behind any row whose effect or CI is ambiguous in the methods CSV (PMC full text via `mcp__pubmed-mcp-server__pubmed_fetch_fulltext` or the connector's `get_full_text_article`, or `mcp__paperclip__cat`\u002F`mcp__paperclip__grep`).\n\n## Core workflow\n\n### Step 0: Context inputs (scan chat first)\n\nIf no `\u003Cpath\u002Fto\u002Fmethods.csv>` was passed, scan the most recent ~50 chat turns for `__CE_METHOD_EXTRACT__ csv=\u003Cpath> n=\u003Cint> modal_method=\u003C...>`. If found, use that CSV as the input. Print `[method-extract] using methods table from \u003Cpath> (n=\u003CN>, modal=\u003Cmodal_method>)`.\n\nIf neither an explicit path nor the signal is present, ask the user to load the `method-extract` skill first or pass a CSV path explicitly. Never substitute an effect size from memory for a missing table.\n\n### Step 1: Load and parse\n\nRead the methods CSV. Parse the `effect_size_reported` field: extract metric type (OR\u002FHR\u002FRR\u002FMD\u002FSMD), point, lo, hi. Use `references\u002Feffect-parser.md` patterns, normalise adjusted labels (`aHR` -> `HR`) while keeping the `adjusted` flag (adjusted and unadjusted OR\u002FHR are not interchangeable; see that reference), and write `analysis\u002Feffect-size\u002F\u003Cquery>-parsed.csv` plus the parsing script next to it (the parsed-CSV contract is in that reference; `scripts\u002Fpool_effects.R` reads the parsed CSV, not the raw methods table). Drop rows where parsing fails; report count of dropped rows. Where a row's effect, CI, or metric is ambiguous and the paper is lawfully available, read the results section (see Evidence access) rather than guess, and note the row's `evidence_level` (`full_text` or `abstract`) in the included-studies CSV.\n\nValidate each row's uncertainty before selection: use a source-reported SE on the correct analysis scale, or the declared Wald confidence level\u002Fmethod\u002Fdf and source-rounding tolerance in `references\u002Feffect-parser.md`. Do not reconstruct unknown or asymmetric non-Wald intervals as normal 95% intervals. Resolve or explicitly exclude an unsupported row under the protocol, retaining its reason; never silently create its variance or hand off its numeric anchor.\n\n### Step 2: Filter to comparable studies\n\nFilter to the selected scientific target first; read the complete parsed contract in `references\u002Feffect-parser.md`. Resolve adjusted\u002Fmarginal differences, units and overlapping cohorts before any fit. Exclude rows whose uncertainty remains unsupported, retaining their reasons. Save the selection code and excluded-study reasons. Write only the selected compatible rows with supported uncertainty to `analysis\u002Feffect-size\u002F\u003Cquery>-selected.csv`; retain the full parsed CSV and exclusions for audit. Then filter:\n- `metric` matches `--metric` (or modal-metric if not specified); `scripts\u002Fpool_effects.R` matches the uppercase label exactly, so pass `HR`, not `hr`\n- No sample-size cutoff by default: inverse-variance weights already down-weight small studies. Pass `--min-n \u003Cn>` to `scripts\u002Fpool_effects.R` only as a sensitivity analysis, and then report the unfiltered estimate alongside it\n- Year within last `--years` window if passed\n- Optional: study type filter (e.g., RCTs only)\n\nReport N studies in the meta-analysis vs N in the input.\n\n### Step 3: Pool\n\nRun the bundled script on the selected CSV from Step 2 (the numerical columns plus the reviewed compatibility declarations in `references\u002Feffect-parser.md`; it fails on missing or incompatible declarations, so the raw methods table will not work). It applies metric and finite-point filters (plus `--min-n` when passed), prints each dropped count, and stops on any row without supported uncertainty. It writes the Markdown summary, a sibling `-forest.png`, the selected `-contract.csv`, and the Step 6 signal:\n\n```bash\nSKILL_DIR=\"\u003Cabsolute path of the directory containing this SKILL.md>\";\nRscript \"$SKILL_DIR\u002Fscripts\u002Fpool_effects.R\" --in analysis\u002Feffect-size\u002F\u003Cquery>-selected.csv --metric HR --out analysis\u002Feffect-size\u002F\u003Cquery>-pooled.md\n```\n\nRequires the project's R environment with `meta` and `ggplot2`; report missing packages rather than installing them from this skill.\n\nIf N ≥ 3:\n- For OR \u002F HR \u002F RR: log-transform → random-effects REML (use an explicitly configured R `meta::metagen` or `metafor::rma`; Python statsmodels Paule-Mandel is a different method)\n- For MD: random-effects REML on the raw scale\n- For SMD: Hedges g + REML\n- The script pins the CI method (Hartung-Knapp-Sidik-Jonkman when tau^2 > 0, Wald when tau^2 = 0) and the prediction interval (t, k-1 df) rather than trusting `meta` defaults; `references\u002Fpooling-formulas.md` explains each choice\n- Report: pooled estimate, 95% CI (with its method), 95% prediction interval (PI), I^2 heterogeneity, tau^2, and the `meta` version\n- If `meta` returns no finite PI bounds, say so and report the CI as the fallback sweep range\n- Do not fit a mixed adjusted\u002Funadjusted primary pool. Select the compatible estimand\u002Fadjustment set first; separate sensitivity pools get separate files and cannot overwrite the primary contract or handoff.\n- If R is unavailable, stop and report it rather than hand-coding REML; `statsmodels.stats.meta_analysis.combine_effects(..., method_re=\"iterated\", use_t=True)` is acceptable only when labelled as Paule-Mandel\n\nIf N \u003C 3:\n- Report narrative range (min, median, max) -- DO NOT pool\n- Highlight the anchor study the script picks: an RCT first when `study_type` is present, then the largest N, then the most recent\n- Caveat the user: \"single-study or two-study power calc is fragile; consider running with sensitivity sweep\"\n\nAfter pooling, compare the result with any published meta-analysis found under Evidence access (cite its PMID\u002FDOI and the level read). State agreement or disagreement with its pooled estimate and I^2; a large divergence is a flag for the SAP, not a reason to replace the computed value.\n\n### Step 4: Write the output\n\n`analysis\u002Feffect-size\u002F\u003Cquery>-pooled.md`. `scripts\u002Fpool_effects.R` writes the pooled-estimate block and the forest-plot line; append the filtering counts, the \"Prior pooled estimates\" section, and the `method-power` handoff to that same file rather than writing a second one (the numbers below are template placeholders; every value comes from the computation, and the \"Prior pooled estimates\" line names the PMID\u002FDOI of each comparison or says none was found):\n\n```\n# Pooled effect-size: \u003Cmetric> for \u003Coutcome> in \u003Cpopulation>\n\nSource: 14 studies extracted via `method-pubmed` and `method-extract` on \u003Cdate>\nFiltered to: \u003Cmetric>, validated uncertainty (reported SE or declared Wald CI), last 10 years -> 9 studies pooled\n\n## Pooled estimate\n\n\u003Cmetric> = 0.78 (95% CI 0.65-0.93, Hartung-Knapp; 95% PI 0.52-1.17)\nI^2 = 42% (may represent moderate heterogeneity; read with tau and the PI)\ntau^2 = 0.04\n\n## Prior pooled estimates\n\n\u003CPMID\u002FDOI of each published meta-analysis compared, its pooled estimate and I^2, and the level read; or \"none found for \u003Cquery> on \u003Cdate>\">\n\n## Forest plot\n\nSee `analysis\u002Feffect-size\u002F\u003Cquery>-pooled-forest.png`\n\n## For `method-power`\n\nUse point estimate 0.78 with sensitivity sweep across PI bounds (0.52 to 1.17).\nPublished effects are selected, so the pooled estimate may overstate the benefit\n(for a protective HR, the true HR is likely closer to 1). Choose a target HR that\nreflects a clinically important and realistic benefit\n(DELTA2, Cook et al. BMJ 2018;363:k3750, PMID 30560792). For a two-proportion\ncalculation, convert with a cited control risk (references\u002Feffect-parser.md).\n```\n\nAlso save a CSV: `analysis\u002Feffect-size\u002F\u003Cquery>-included.csv` (which studies, why included, their PMID\u002FDOI, and `evidence_level`). `method-power` reads this file for the PMIDs it cites in SAP-6, since the signal line carries numbers only.\n\n### Step 5: Generate forest plot\n\nUse R `meta::forest()` or Python `matplotlib`. Each study's point and CI; pooled point and CI at the bottom.\n\n### Step 6: Emit signal\n\nThe bundled `scripts\u002Fpool_effects.R` prints the canonical envelope. REML (k>=3) form:\n\n```\n__CE_EFFECT_SIZE__ metric=\u003Cm> n_studies=\u003Cn> point=\u003Cv> ci=\u003Clo,hi> pi=\u003Clo,hi|NA> i2=\u003Cpct> mode=reml contract=\u003Cpath>\n```\n\n`pi=` carries the 95% prediction interval on the reported scale (exponentiated for ratio metrics). It is `pi=NA` when `meta` returns no finite PI bounds for this k and tau^2.\n\nNarrative form (k\u003C3, no pooling):\n\n```\n__CE_EFFECT_SIZE__ metric=\u003Cm> n_studies=\u003Cn> point=null ci=null pi=NA i2=null mode=narrative contract=\u003Cpath>\n```\n\nBoth forms carry the selected compatibility artifact in `contract=`. `method-power` must read it and match the planned estimand, outcome\u002Fhorizon, unit and adjustment set before using the point. Legacy signals without that evidence require reconciliation, not an assumed compatible anchor. `method-power` sweeps over `pi=` when both bounds are finite and falls back to `ci=` otherwise. When `mode=narrative`, `method-power` should fall back to the user-supplied effect size or stop and ask, rather than try to read `point=null` as a number.\n\n## What this skill does NOT do\n\n- Does not do a full systematic-review meta-analysis (no risk-of-bias scoring, no PRISMA flow); that's a separate study type, use the `method-checklist` skill to register it as PRISMA\n- Does not invent missing uncertainty; source-reported SEs are usable without a CI, while unresolved SE\u002FCI construction blocks that row's numeric use.\n- Does not handle network meta-analysis (use `netmeta` package directly)\n- Does not compute power (that's `method-power`)\n\n## References\n\n@.\u002Freferences\u002Feffect-parser.md\n\n@.\u002Freferences\u002Fpooling-formulas.md\n",{"name":5,"description":7,"argument-hint":49},"\u003Cpath\u002Fto\u002Fmethods.csv>, optional: --metric OR|HR|RR|MD|SMD","main","893bccb980e4dce1345919e9f675f5a9dcbed364","plugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis",0,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith","https:\u002F\u002Fsajor2000.github.io\u002Fmethodsmith\u002F","https:\u002F\u002Fgithub.com\u002Fsajor2000","Critical care physician-scientist at Rush University. @Common-Longitudinal-ICU-data-Format contributor building open ICU data tools & clinical AI","2026-11-01 01:56:01",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add sajor2000\u002Fmethodsmith --skill method-meta-analysis",{"tool":65,"command":66},"bunx","bunx skills add sajor2000\u002Fmethodsmith --skill method-meta-analysis",{"tool":68,"command":69},"pnpm","pnpm dlx skills add sajor2000\u002Fmethodsmith --skill method-meta-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002FSKILL.md",true,[73,79,83,87,93],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Feffect-parser.md","REFERENCE","参考文档",9283,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002Freferences\u002Feffect-parser.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fevidence-access.md",2208,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002Freferences\u002Fevidence-access.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fpooling-formulas.md",5406,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002Freferences\u002Fpooling-formulas.md",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Feffect_uncertainty.R","SCRIPT","脚本",3034,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002Fscripts\u002Feffect_uncertainty.R",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Fpool_effects.R",12372,"https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-meta-analysis\u002Fscripts\u002Fpool_effects.R",[98,112,125,137,146,155],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":107,"publishedAt":44},"01M71QQY0KE1184AF58EC1J5C1","skill-one","Sample skill","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fskill-one\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[108,109,110,111],"one","skill one","sample","sample skill",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":44},"01M71QQW3PNK9AYB5HBMAPM72J","disabled-skill","A skill with model invocation disabled","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fdisabled-skill\u002FSKILL.md",[118],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[120,121,122,29,123,124],"disabled skill","a skill","with model","true","model",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":132,"publishedAt":44},"01M71QQSY02X7DNZQRAGJ6YFGY","claude-only-skill","A skill restricted to Claude Code only","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fclaude-only-skill\u002FSKILL.md",[131],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[133,134,135,121,136],"claude only","claude only skill","only","code",{"skillNo":138,"name":139,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":143,"publishedAt":44},"01M71QQRPZ76X623V5P7T1E3DD","default-skill","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fcustom-paths\u002Fskills\u002Fdefault-skill\u002FSKILL.md",[142],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[144,145],"default","default skill",{"skillNo":147,"name":148,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":152,"publishedAt":44},"01M71QQQG3FF2HFQHVH8VHA08R","custom-skill","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fcustom-paths\u002Fcustom-skills\u002Fcustom-skill\u002FSKILL.md",[151],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},[153,154],"custom skill","custom",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":44},"01M71QQMBNC76141GHXBSMENSH","method-write","Drafts, revises, and audits evidence-bound manuscripts, sections, abstracts, and reviewer responses with claim provenance. Use when scientific prose must be written or revised (entry point).","https:\u002F\u002Fgithub.com\u002Fsajor2000\u002Fmethodsmith\u002Fblob\u002Fmain\u002Fplugins\u002Fmethodsmith\u002Fskills\u002Fmethod-write\u002FSKILL.md",[],[162,163,164,165,166,167,31,38,168,169,29,170,171,172],"write","method write","point","evidence","entry","claim","provenance","reviewer","scientific","prose","drafts"]