Meta-Analysis
Dedicated Skill for quantitative meta-analysis. After systematic-review completes L1-L8, it substantially expands from L9 onward into a complete quantitative pooling workflow. R statistics are executed directly by Claude Code in the local R environment Rscript (metafor, etc.), raw output (summary / warnings / sessionInfo) goes into the audit package, red flags are computed by R (not by LLM reading numbers), figures are produced by the built-in ma-plots fixed renderer as forest / funnel / PRISMA / RoB (§13.2; style foundation ssci-plots).
Quick entry: For the first executable step, see §3 Main Agent startup process + §4.2 L9.1 effect-size extraction. Detailed methods are in references/ + scripts/ + foundation SSOT.
1. Triggers and applicable scenarios
1.1 Trigger phrases
English: meta-analysis, effect size pooling, random-effects model, forest plot, funnel plot, heterogeneity I-squared, meta-regression, subgroup analysis, Hunter-Schmidt, RVE meta-analysis, three-level meta-analysis, MASEM, meta-analytic SEM, reliability generalization, p-curve, PET-PEESE, RoBMA, metafor, psychmeta.
Chinese: 元分析, Meta 分析, 定量综合, 效应量合并, 森林图, 漏斗图, 异质性, 随机效应模型, Meta 回归, 亚组分析, 心理学元分析, 量表元分析, 信度概化, 心理测量元分析, 依赖效应量, RVE 元分析, 三层元分析, 出版偏倚, p 曲线.
1.2 Reverse triggers (not applicable / switch to another Skill)
| User scenario | Switch to |
|---|---|
| Only search/screening/RoB (L1-L8), no pooling | systematic-review |
| Only qualitative evidence synthesis (no effect sizes) | systematic-review(qualitative path) or literature-set-review |
| Already have a literature set, want to write a review but not do pooling | literature-set-review |
| Narrative review / scoping review / integrative review | field-overview-review |
| 50-year/30-year field development history review | field-evolution-review |
| Theory construction / construct analysis / comparison of opposing theories | theoretical-review |
| MA four-piece figure set (forest / funnel / PRISMA / RoB) rendering | This Skill's built-in ma-plots renderer (§13.2, not a switch-out) |
| Non-MA general statistical figure rendering | ssci-plots |
1.3 Conditions for enabling
- Psychology scenarios (required reading by default): trigger keywords contain psychological constructs, scales (BDI, SCL-90, Big Five, etc.), APA journals, JARS, replication crisis. Also load
SSOT-PSYCHOLOGY-SUPPLEMENTS.md(including 8 issues). - Chinese scenarios: user communicates in Chinese, mentions 《心理学报》 《心理科学进展》, CNKI, GB/T 7714. Also load
SSOT-CHINESE-CONTEXT.md. - Network meta-analysis: the user compares ≥3 treatments or mentions NMA / network meta-analysis. Also load
SSOT-SYNTHESIS-METHODS.md§4.
2. Assumptions (L1-L8 ready)
This Skill assumes L1-L8 are ready: the user has already completed research question formulation, search, screening, extraction, and RoB via systematic-review or on their own (see §13.1 joint workflow). If L1-L8 are not complete, the main Agent should suggest switching to systematic-review first.
3. Main Agent Role and Responsibilities
You are the coordinator, judge, and planner, not the executor. Every SubAgent must use the strongest currently available model (same level as the main Agent, not downgraded to save cost); block by default; multiple Agent calls in the same message = parallel.
3.1 Main Agent required reading (required at startup — G5: startup footprint cut from the ≈72k trio to a ≤10k digest)
After the Skill is triggered, the main Agent immediately loads review-methodology-foundations/references/LAUNCH-DIGEST.md(required at startup, body ≤10k) — it distills the original "required-at-startup trio" (SSOT-LIFECYCLE-12-PHASES + SSOT-METHODOLOGY-TERMINOLOGY + SSOT-AI-FAILURE-DEFENSES, ≈72k) into all load-bearing clauses + §1.2-18 frontier clauses (Egger-MLMA routing / trim-and-fill downgrade / k<5 prohibits RVE / I²>90% prohibits pooling) + six lookup tables: Cohen / k→modifier / I² / GRADE / discipline×database / construct direction. Reading this one document gives you the load-bearing red lines for the whole workflow.
Why the change (G5): real-world audits measured that 2/3 of the original trio's 66-72k "required-at-startup" was skipped — never opened; the 48k most relevant PSYCHOLOGY-SUPPLEMENTS was read by zero people. Read rate is a function of whether the main Agent names it in the dispatch prompt, not a function of a "required reading" rule. Hence the three-layer fix: ① at startup read only the ≤10k digest (actually read); ② the trio + deep SSOT full texts are downgraded to "drill down on demand" (paths resolved via the
SSOT-INDEX.mdfull-library resolver, see §8); ③ key load-bearing content is delivered to SubAgents viaPROMPT-COPY-BLOCKS.mdcopy blocks (§6/§14 · a constructive guarantee that the content enters the prompt), not by relying on self-motivation to read deep files.
Deep full texts drilled down on demand (not loaded at startup, located by resolver):SSOT-EFFECT-SIZE-DECISION(L9.1 effect size + §4.10 design 9 single-group pretest-posttest) / SSOT-SYNTHESIS-METHODS(L9.4/L9.5/L9.9 method proper) / SSOT-PSYCHOLOGY-SUPPLEMENTS(psychology 8 topics + §2.1.1 CHE) / SSOT-AI-FAILURE-DEFENSES §8(Full text of the construct direction protocol) — the digest gives decision thresholds; when formula derivations / operational templates are needed, drill down along the resolver path.
MA's strong defense items in AI-FAILURE (the digest §2 already contains the core; here the MA-specific reinforcements are retained):
- §2 Effect exaggeration reinforcement: in addition to the Cohen table, add the Funder & Ozer 2019 strict criteria (which set is used must be explicitly declared); CIs are mandatorily extended to all subgroup / meta-regression results
- §3 Confidence illusion reinforcement: heterogeneity I² > 75% mandatorily does not present a pooled effect; the publication bias mandatory checklist = funnel (contour-enhanced) + regression tests (Egger / Peters / Harbord, routed by effect size type) + at least ≥ 1 psychology supplement (p-curve / p-uniform* / PET-PEESE / selection models / RoBMA); trim-and-fill is used only as a sensitivity analysis (consistent with §4.2 L9.9)
3.2 Startup process (first executable step guidance)
Dispatch order follows the §4 workflow:
0. MA entry preflight (closes BK-1): before dispatching L9.1, confirm decisions/01/02/07/08 is ready — the joint path is produced by SR L1-L8; the standalone MA entry (the user has already completed L1-L8 themselves and goes directly into MA) must first, according to §3.3 "Standalone MA entry scaffold", copy the template from decisions_templates/ and fill in these 4 tiers. Missing any one blocks L9.1 (executing directly without reading the decision archive violates the §3.3 mandatory reading requirement).
- L9.1 dispatch Effect-Size-Extractor (first executable step, see §4.2) → per-study effect size + SE
- L9.2-L9.4 serial (correction → dependence → model selection)
- L9.5 heterogeneity first (its blocking signal determines whether L9.6/L9.7 are mandatory) → L9.6/L9.7 can run in parallel; L9.8 sensitivity must be serial after L9.5 (leave-one-out / FE vs RE / τ² estimator comparisons all depend on the model baseline already fixed by L9.5, not in parallel with L9.5)
- L9.9 runs separately (depends on preceding results); L9.10 as needed
- L10 GRADE → L11 writing (including the Chart-Bridge ma-plots renderer, §13.2) → L12 self-assessment
3.3 Cross-stage decision archive rules (mandatory)
After producing each stage, the main Agent writes the decision conclusions into decisions/ subdirectory (at the same level as this task's working directory). Each decision archive is an independent md file (YAML frontmatter + body, ≤ 100 lines per archive), and does not copy SSOT content.
MA decision archive directory structure (when joint with SR, reuse SR's 01-08):
decisions/
01_type_decision.md # L1:含心理学场景判定(关键 — 决定 L11 加载 JARS-Quant)
02_research_question.md # L2:PICO + 效应量预设
03_mode_decision.md # L3:严格 vs 学习
07_data_types.md # L7:双人提取字段
08_rob_tool_decision.md # L8:RoB 工具
09_synthesis_decision.md # L9:FE/RE/RVE/三层/MASEM 选择 + k 阈值
09.1_effect_size.md # L9.1:效应量类型 + SE 反算
09.4_model_selection.md # L9.4:FE vs RE
09.5_heterogeneity.md # L9.5:I² / Q / τ² / 95% PI
09.6_subgroup.md # L9.6:k≥10 启用
09.9_publication_bias.md # L9.9:4+ 工具
10_grade_decision.md # L10
11_reporting_standard.md # L11:APA MARS Table 9 + PRISMA 2020 + 12 处差异
Standalone MA entry decision archive scaffold (closes BK-1, mandatory reading): MA's first executable step L9.1 must read decisions/01/02/07/08(§3.3 cross-stage mandatory reading + decision-provenance §3), but the producers of these 4 archives are in SR L1-L8. The two entries are implemented as follows, to avoid the standalone entry getting stuck because something is "mandatory reading yet no one created it":
- Joint path (
path: combined_with_sr): SR L1-L8 have already produced01/02/03/07/08(sharing the samedecisions/directory) → MA reads directly without rewriting (for the handoff gate see §13.1 N-4). - Standalone MA entry (
path: standalone, the user has already completed L1-L8 themselves and goes directly into MA): before dispatching L9.1, the main Agent turns the user's completed L1-L8 conclusions into01_type_decision.md(including the psychology determination) /02_research_question.md(PICO + effect size presets) /07_data_types.md(data type + reliability + n) /08_rob_tool_decision.md** — directly copy the corresponding blank template skeleton fromreview-methodology-foundations/decisions_templates/and fill it in (the template contains frontmatter + decision conclusions/rationale/upstream-downstream/verification structure). - Structural blocking gate (not a "prompt reminder"):
01/02/07/08If any is missing → preflight blocks L9.1 (regarded as "executing directly without reading the decision archive"); the main Agent is not allowed to improvise and fill in a decision archive without a template, nor is it allowed to skip these 4 items and directly dispatch the Extractor.
decisions_templates/is a blank template skeleton (created in S4, pathreview-methodology-foundations/decisions_templates/), covering 11 SR categories + 5 MA 09.x sub-stages + supervision artifacts04a/07a/09.x_audit. It is "a copyable starting point for 01/02/07/08" and is itself not a decision instance.
Mandatory cross-stage reading: all SubAgent prompts for the L9/L10/L11/L12 stages must include:
**必读(决策档案)**:
- decisions/01_type_decision.md(含心理学判定 → L11 加载 JARS-Quant 的依据)
- decisions/02_research_question.md
- decisions/03_mode_decision.md
- decisions/07_data_types.md
- decisions/08_rob_tool_decision.md
- decisions/09*.md(按本阶段需要选 09.1/09.4/09.5 等)
- decisions/10_grade_decision.md(仅 L11/L12)
- decisions/11_reporting_standard.md(仅 L12)
Retroactive recognition ① (G5 · Axiom 8 good-deviation retroactive recognition) — planning document = context container: in practice, the SubAgent prompt did not name the above decisions one by one, but the main Agent used a "dedicated planning document for each round" to carry the context (with embedded decision-file pointers), which was more effective. This pattern is hereby normatively recognized: the above mandatory decision-file reading can be equivalently satisfied by "reading this round's planning document (the planning document embeds the required
decisions/*.mdpointers)"; the constructive bottom line = the §6 dispatch copy block writes the key decision payload directly into the SubAgent prompt (fill-in-the-blank), without relying on the SubAgent to voluntarily open the decisions file. Decision archives are forbidden from self-certifying "[ ] 已读 <文件>" checkmarks (G5 · R3 measured decisions/01 false "[x] read" has occurred, transcript zero access); "required reading" is changed to the template frontmatterrequired_readingsdeclarative machine-readable field (for future auditing), preflight--gate readingsone-line WARN count, difference table rendering deferred to v2.
The main Agent must re-verify before L11 writing: the reporting standards planned for the current L11 SubAgent are consistent with decisions/01_type_decision.md (including the psychology determination) + decisions/11_reporting_standard.md. Psychology scenarios must superimpose JARS-Quant Table 9 on PRISMA 2020. Any inconsistency is a blocker. See references/decision-provenance.mdfor details.
3.4 Must do personally vs must outsource
| Must do personally | Must outsource to SubAgent |
|---|---|
| Read user requirements + key files | Any R code generation (per §5 R package path selection + template) |
| Decide whether to use the "SR L1-L8 + MA L9-L12" joint workflow | Any concrete execution of effect size extraction/conversion |
| Write the planning document (L9 sub-order, R packages, model selection rationale) | Interpretation of any model fitting output |
| Evaluate each round's SubAgent output (computational correctness / model reasonableness / PB robustness) | Concrete execution and interpretation of any publication bias test |
| Key communication with the user (data format confirmation, model arbitration, final delivery) | Writing of any APA MARS report section |
| Writing and maintenance of the decision archive | — |
3.5 Unacceptable compromises
- The main Agent is not allowed to directly write R code / directly call MCP (PRES-003)
- The SubAgent is not allowed to make the final judgment "whether to trust the pooled effect" on behalf of the main Agent
- Skipping the publication bias test or the heterogeneity disclosure stage is not allowed
- When I² > 75%, presenting only the pooled effect as the main conclusion is not allowed (violates SSOT-AI-FAILURE-DEFENSES §3)
- Forcibly applying RVE / three-level when k < 5 is not allowed (see §4.2 L9.3 for details)
- Forcibly applying a publication bias test when k < 10 is not allowed (see §11.5 for details)
4. Complete workflow (12-stage alignment)
Aligned by 12 stages (see SSOT-LIFECYCLE-12-PHASES.md). MA greatly expands L9 into 10 sub-stages on the basis of SR.
4.1 Overview of the 12 stages (L1-L8 are by default completed by SR)
| Stage | Key output | Decision file | SSOT |
|---|---|---|---|
| L1 | Type identification (including psychological determination) | 01_type_decision.md | SSOT-REVIEW-TYPES |
| L2 | PICO + effect size prespecification | 02_research_question.md | SSOT-PICO-FRAMEWORKS |
| L3 | Strict vs. learning mode | 03_mode_decision.md | SSOT-MODE-PROFILES |
| L4 | Search (PsycINFO + ClinicalTrials.gov + grey literature) | — | SSOT-SEARCH-STRATEGY |
| L5-L6 | PRISMA flow + double-blind screening | — | SSOT-PRISMA-FLOW-DIAGRAM |
| L7 | Dual extraction (including ES + SE + reliability + n) | 07_data_types.md | SSOT-EXTRACTION-FIELDS |
| L8 | RoB (including the Metapsy psychotherapy extension) | 08_rob_tool_decision.md | SSOT-ROB-TOOL-MAPPING |
| L9 | Quantitative synthesis (10 sub-stages, the core of this Skill) | 09*.md | SSOT-SYNTHESIS-METHODS + SSOT-EFFECT-SIZE-DECISION |
| L10 | GRADE | 10_grade_decision.md | SSOT-GRADE-FRAMEWORK |
| L11 | APA MARS + PRISMA 2020 + figure generation by the ma-plots renderer (§13.2) | 11_reporting_standard.md | SSOT-REPORTING-STANDARDS |
| L12 | AMSTAR 2 self-assessment | — | SSOT-AMSTAR-2-CHECKLIST |
If the user has not completed L1-L8, the main Agent first suggests switching to systematic-review.
4.2 L9: Quantitative synthesis (10 sub-stages, first executable step)
L9.1 Effect size extraction (first executable step): preflight before dispatch (closes BK-1/BK-7)——① confirm that decisions/01/02/07/08 is ready (for the independent entry point, first build it following the scaffolding in §3.3; for the joint entry point, it is produced by SR; if missing, block); ② for the joint path, must-read decisions/09_synthesis_decision.md 's switching conclusion (if ≠ "recommend switching to MA", block; see §13.1 N-4). After preflight passes, dispatch Effect-Size-Extractor → 5 decision trees (D1 binary / D2 continuous / D3 ordinal / D4 count / D5 survival) + 7 SE back-calculation formulas + 8 unit-of-analysis + zero-event handling. See references/L9.1-effect-size-extraction.md。SSOT:SSOT-EFFECT-SIZE-DECISION §1-§5.
Full-text corpus consumption surface (G6 · outsourced handoff package mode, to fix A-Q6, the number-one token waste): if full-text acquisition + conversion go through
fulltext_request_pack/outsourcing (see SR SKILL §4.2.6), Effect-Size-Extractor and the numerical verification SubAgent by default consume02_全文MD/<id>/<id>.md(MD) + go back by anchor to01_原始PDF/<id>.pdfkey pages (atp.N Table Mgranularity,anchors.jsonderived); re-reading the entire PDF is downgraded to an exception (this is the root cure for the biggest token waste in practice = extraction/verification agents reading the entire PDF 4-6 times). Key values/directions/M-SD-N must always be verified back against the PDF (MD is OCR and may have dropped lines/errors—e.g., for proquest-0028, the NED/PED descriptive statistics row was OCR'd as blank, so one must go back to PDF Table 2), and extraction conclusions must include page/table anchors. The full-text corpus receipt must first pass thesystematic-review/scripts/validate_fulltext.pyquality gate (MD quality spot-checks catch OCR structural dropped lines/meta-noise).
L9.2 Effect size correction: dispatch Correction-Agent → Hedges' g correction (by default critical when N < 60; for correction failure fallback see §11.6) + Hunter-Schmidt artifact correction (only for psychological scales). Bare-bones vs. Psychometric mode selection. See references/L9.1-effect-size-extraction.md §3 + references/L9-psychology-special.md.
L9.3 Dependency handling (k-threshold decision): determine dependency → choose method.
| Scenario | Recommended method | k threshold | R package |
|---|---|---|---|
| Multiple outcomes / multiple time points / multiple comparisons, dependency structure unknown | RVE | k ≥ 5 (< 5 not allowed) | robumeta + clubSandwich |
| Clear hierarchy + k ≥ 20 | Three-level | k ≥ 20 (< 20 give CR2 correction; < 5 not allowed) | metafor rma.mv() |
| Multivariable relationship modeling (mediation/moderation) | MASEM | k ≥ 10 | metaSEM |
| k < 5 | RVE / three-level not allowed | — | Use single-study narrative + report sensitivity separately (Grade A alternative pathway) |
Dispatch Dependency-Agent. See references/L9-psychology-special.md.
L9.4 Fixed/Random effects model selection: Dispatch Model-Selection-Agent → decision tree + default RE (FE only under the hypothesis that the intervention is truly ineffective) + τ² estimator (REML default) + HKSJ CI (superior to Wald when k > 2 + τ² > 0) + k=2-4 decision table (see §11.4 for details). See references/L9.4-fixed-random-models.md.
Honest disclosure of the default RE model (must be embedded at the end of L9.4 — C4 three-paragraph format): Paragraph 1 (textbook original assumption): The choice between FE vs RE depends on the researcher's judgment about heterogeneity (Borenstein 2009; Cochrane §10). Paragraph 2 (LLM implementation differences): This meta-analysis uses RE by default, and FE only under the hypothesis that the intervention is truly ineffective. 3 differences: (1) no explicit user-provided heterogeneity assumption; (2) HKSJ used when k < 10; (3) FE+RE dual sensitivity run when k = 2-4 (Cochrane v6.5 §10.10.4). Paragraph 3 (mitigation + Limitations): Report both FE+RE results; report PI when k ≥ 5; for psychology scenarios + k < 5, report PI but explicitly note "normal assumption is not robust". Disclose the methodological choice of default RE in the Discussion.
L9.5 Heterogeneity testing: Dispatch Heterogeneity-Agent → Q + I² + τ² + 95% PI (must be reported when k ≥ 5; must be reported for psychology). When I² > 75%, presenting only the pooled effect is not allowed; when I² > 90%, pooling is completely prohibited + mandatory subgroup / meta-regression (see §11.5 for details). See references/L9.5-heterogeneity.md.
L9.6 Subgroup analysis (k ≥ 10): Dispatch Subgroup-Agent → prespecified vs post hoc must be distinguished (JARS Table 9 §METHOD §6) + formal statistical test between subgroups (comparing only within-subgroup P values is not allowed) + ICEMAN 6 dimensions. See references/L9.6-subgroup-metaregression.md.
L9.7 Meta-regression (k ≥ 10): Dispatch Metaregression-Agent (can run in parallel with L9.6) → at least 10 observations per categorical feature + log-transformed for ratio-type variables. See references/L9.6-subgroup-metaregression.md.
L9.8 Sensitivity analysis: Dispatch Sensitivity-Agent (serial after L9.5—leave-one-out / FE vs RE / τ² estimator comparison / recalculation excluding high RoB all require the model baseline already determined in L9.5, not parallel with L9.5; can run in parallel with L9.9) → Leave-one-out + FE vs RE vs HKSJ + different τ² estimators + different effect measures + recalculation excluding high RoB.
L9.9 Publication bias: Dispatch PublicationBias-Agent → core mandatory tasks (funnel + Egger/Harbord/Peters; only valid when k ≥ 10, see §11.5 for details); psychology supplement ≥ 1 (p-curve / PET-PEESE / RoBMA / Selection models). Depends on effect size (L9.3 determines three-level/RVE) → publication bias uses Egger-MLMA (scripts/egger_mlma.R), not single-level Egger; RoBMA requires JAGS and is not selected by default (if unavailable, downgrade to puni_star+PET-PEESE). Trim-and-fill has been downgraded by Cochrane v6.5 (only as sensitivity analysis). See references/L9.9-publication-bias.md.
L9.10 MASEM (as needed): Enabled only for mediation/moderation SEM synthesis. TSSEM / One-Stage MASEM. See references/L9-psychology-special.md §3.
4.3 L10: GRADE evidence level
Dispatch GRADE-Agent → meta-analysis-specific considerations: imprecision (CI crosses decision threshold), inconsistency (I² > 50% usually downgrades), publication bias (funnel asymmetry + Egger p < 0.10 downgrades) + combined with RoB 2 / ROBINS-I. SSOT:SSOT-GRADE-FRAMEWORK.
4.4 L11: Reporting (APA MARS Table 9 + PRISMA 2020 + figure production (§13.2 renderer))
Dispatch Write-Agent (short manuscript 2-2-1 backup method / long manuscript per-chapter variant, see Retrofitted Recognition ② below) + Reporting Standards Checklist SubAgent.
Retrofitted Recognition ② (G5 · Axiom 8 Good Deviation Retrofitted Recognition) — L11 per-chapter writer variant + cross-chapter peer review: In practice, L11 (15k-word long manuscript) abandoned the 2-2-1 dual-manuscript backup method, instead using 4 per-chapter writers (one SubAgent each for Intro / Methods / Results / Discussion drafting in parallel) + integration + final manuscript revision, yielding high output quality and faster parallelism. The specification recognizes the "per-chapter system" as a legitimate variant for long manuscripts (≥12k words), provided that the adversarial checkpoints lost by 2-2-1 are restored: after per-chapter drafting, (a) cross-chapter peer review must be performed (each chapter writer cross-reviews neighboring chapters for interface consistency / terminology unification / forward-backward coherence) + (b) integration consistency check (Results↔Methods↔Abstract numbers and load-bearing claims verified one by one) — this replaces the 2-2-1 dual-manuscript adversarial comparison, and the adversarial step must not be omitted. Short manuscripts (<12k words) still use 2-2-1. Both methods must pass SP6 claims-vs-data + SP7 citation final review (§9.1 /
references/L11-mars-reporting.md §8).
- APA MARS Table 9: complete alignment across 13 sections
- PRISMA 2020: 27-item checklist
- JARS-Quant 12 differences (psychology scenario — triggered by the psychology determination in decision dossier 01_type_decision.md): a priori/post hoc hypothesis grouping, psychometric characteristics, construct validity, measurement error artifacts, moderator vs subgroup, effect size + CI mandatory, Hedges correction, Bayesian priors, statistical code location, adverse effects section
- Figure production = built-in ma-plots fixed renderer four commands (§13.2 three-step hard contract + labels mechanical same-source discipline; satellite quadruple see §13.4): forest plot, funnel plot (contour-enhanced), PRISMA flow diagram, RoB plot; SoF table = md table (produced by L10, not a renderer responsibility)
See references/L11-mars-reporting.md。SSOT:SSOT-REPORTING-STANDARDS §1.3.1 + §3.
4.5 L12: Self-assessment (AMSTAR 2 meta-analysis dimensions)
Dispatch Self-Assessment Agent → AMSTAR 2 16 items + 7 critical domains. SSOT:SSOT-AMSTAR-2-CHECKLIST.
5. R package paths (mapped by topic)
| Topic | Primary R package | Code template |
|---|---|---|
| Standard meta-analysis (FE/RE) | metafor | scripts/metafor_basic.R |
| Dependent effect sizes (RVE) | robumeta + clubSandwich + wildmeta | scripts/rve_clubSandwich.R |
| Dependent effect sizes publication bias (Egger-MLMA) | metafor rma.mv / robumeta+clubSandwich | scripts/egger_mlma.R |
| Three-level meta-analysis | metafor rma.mv() |
scripts/metafor_basic.R(including rma.mv block) |
| Psychometric (Hunter-Schmidt) | psychmeta | scripts/psychmeta_hunter_schmidt.R |
| MASEM | metaSEM(+ OpenMx / lavaan) | scripts/metaSEM_masem.R |
| p-curve / p-uniform | puniform · dmetar::pcurve | scripts/puniform_pcurve.R |
| PET-PEESE | stats::lm (WLS raw implementation; metafor mods is a defensible variant, must be disclosed) | scripts/metafor_basic.R §11 + references/L9-r-code-templates.md §8 |
| Selection models | weightr | (example code) |
| RoBMA | RoBMA | Requires JAGS system library (when runtime detection finds it missing) → not selected by default, degrade to puni_star + PET-PEESE (see §11.2 / L9.9 §4.3) |
| Bayesian meta-analysis | brms · rstanarm · bayesmeta | (advanced, as needed) |
Bridging philosophy: This Skill is executed directly by Claude Code in the local R environment Rscript (metafor etc.) to produce statistical results — no longer generates code for users to copy to an external environment, run, and then backfill.print(summary()) + warnings() + sessionInfo() Raw output goes as-is into the audit package (sidecar files + review card ⑤ segment drill-down), reproducible; blocking/disclosure red flags are computed by scripts/audit_parse.R directly from rma object fields into a flag JSON, not by an LLM reading summary text. The retained core principles: do not fabricate statistical results, humans bear responsibility at sign-off points, reproducible. See references/L9-r-code-templates.md.
Honest disclosure of LLM-mediated local execution workflow (embedded at the top of
references/L9-r-code-templates.md— C4 three-paragraph format): Paragraph 1 (the textbook's original assumption): Standard meta-analysis assumes the analyst directly writes and executes R code (or uses the JASP / RevMan GUI), with full control over data input, model specification, and output verification. Paragraph 2 (how the LLM implementation differs): In this review, Claude Code directly executes the LLM-generatedRscriptin a local R environment, and keeps the raw output (summary / warnings / sessionInfo) on record in the audit package; the blocking/disclosure determination is computed by the fixedaudit_parse.Rfrom the rma object fields, rather than relying on the LLM to interpret the output text. This eliminates the old category of risks such as "copy-paste backfilling / mismatch between expected and actual data formats". A real limitation that remains: the R code is still generated by the LLM, so there may be subtle bugs that compile successfully but produce wrong results (wrong variable name / wrong function call) — local execution cannot automatically prove that the results are correct. Paragraph 3 (mitigation + Limitations): (1) The script is verified by a regression test suite (tests/) + the raw output can be manually reviewed; having the red flags computed by R reduces the risk of the LLM misreading numbers; (2) include at least one sensitivity analysis (leave-one-out / alternative τ² estimator) to detect anomalies; (3) a human makes the final call and bears responsibility for statistical judgments at the sign-off point; reproducibility relies on sessionInfo + a fixed script. In the Discussion/Limitations, it should still be disclosed that "the statistics were produced by an LLM-mediated local automated workflow" as a methodological feature.
See references/L9-r-code-templates.mdfor details.
6. SubAgent dispatch replication blocks (fill-in-the-blank delivery, not multiple-choice loading — G5 main approach)
Mechanism (addressing the real-world root cause): In practice, whether a reference file gets read is 100% determined by whether the main Agent's dispatch prompt names it — no one spontaneously reads what is not named. Therefore this table is no longer "when to load X" (multiple choice), but rather "when dispatching a SubAgent for a given stage, paste that stage's replication block in full into the SubAgent's prompt" (fill-in-the-blank = the key payload goes into the prompt, and whether the SubAgent reads the deep files no longer determines success or failure). The full text of the replication blocks is in review-methodology-foundations/references/PROMPT-COPY-BLOCKS.md; before each dispatch, prepend its §A shared foundation block (four iron rules + citation defense + Cohen table + construct direction protocol + k→qualifier, same as LAUNCH-DIGEST.md §0/§2/§3). Drill down into the full deep files as needed; the paths go through §8's SSOT-INDEX.md Full-library resolver (handles wrong-path twice).
| Stage · Role | Copy block | Highest-risk payload for this stage (one sentence; all clauses are inside the copy block) |
|---|---|---|
| L9.1 Effect-Size-Extractor | COPY-BLOCKS §B·L9.1 | 5 decision trees × 7 SE back-calculations; continuous defaults to Hedges' g; single-group pre-post uses Design 9 (SMCR same pool/SMCC different pool, ri four levels, 1−ICC reverse order) |
| L9.2 Correction-Agent | §B·L9.2 | Hedges' g default; H-S artifact correction only for psychological scales; no reliability → no correction + disclosure |
| L9.3 Dependency-Agent | §B·L9.3 | k<5 prohibits RVE/three-level; RVE k≥5, three-level k≥20, MASEM k≥10; CHE rho=0.6+CR2 (<40) |
| L9.4 Model-Selection-Agent | §B·L9.4 | Default RE; REML+HKSJ (τ²>0, k>2); k=2-4 FE+RE dual sensitivity; k≥5 must report PI |
| L9.5 Heterogeneity-Agent | §B·L9.5 | Report all 4 indicators; I²>75% do not present pooled estimate, I²>90% prohibit pooling + mandatory subgroup/meta-reg |
| L9.6/9.7 Subgroup/Metaregression | §B·L9.6 | Only do when k≥10; must distinguish prespecified vs post hoc; formal statistical test between subgroups (do not only compare within-subgroup P) |
| L9.8 Sensitivity-Agent | §B·L9.8 | Serial after L9.5; leave-one-out+FE/RE+τ²+exclude high RoB; if direction unresolvable, two-way sensitivity |
| L9.9 PublicationBias-Agent | §B·L9.9 | Dependent effect size → Egger-MLMA mandatory routing (prohibit single-level), full contract L9.9:82-129; trim-fill only for sensitivity; k<10 do not run |
| L10 GRADE-Agent | §B·L10 | L10-grade.md resides in SR not MA; "few studies" ≠ imprecision (use OIS); before upgrading, first 5 downgrades |
| L11 Write-Agent | §B·L11 | MARS/JARS 12 differences; each ES paired with CI; long manuscript split into chapters writer + cross-review between chapters (ratification 2, §4.4) |
| Before any Review-Agent | references/quality-control.md |
Four iron rules + 4 types of AI failure defense interfaces |
| Write/check decision dossier | references/decision-provenance.md + COPY-BLOCKS §D |
Planning document = context container (ratification 1, §3.3); 09.x_audit card replaces 09.x decision file (ratification 3, §12.2) |
R code generation SubAgent additionally reads
references/L9-r-code-templates.md(Chart-Bridge + honest disclosure).subagent-templates.md= complete 6-section templates for each role (on-demand deep dive; copy block = ready-to-use compression of its "must-read sections"; the main Agent can dispatch without first opening the template).
7. Word count control
Word count formula, matrix, and adjustment factors are detailed in SSOT-WORDCOUNT-RULES.md §3.1 (Overview type × literature scale matrix row 5: meta-analysis) + §3.3 (adjustment factors) + §3.4.5 (meta-analysis special clauses) + §4 (word-count discipline). This section does not copy SSOT numbers.
7.1 Default and three confirmation modes
- Default word count: 14,000 words (see SSOT-WORDCOUNT-RULES §2.2 meta-analysis row)
- Lower bound: see SSOT §3.2 meta-analysis row; meta-analysis includes a complete forest plot / funnel plot / heterogeneity diagnostics / multiple publication bias tests / GRADE SoF / R code and runtime environment, and is the most structurally dense in components
Three confirmation modes (see SSOT §5):
- Mode A: the user has specified a concrete word count → adopt it directly
- Mode B: the user has not specified → use the SSOT §2.2 default of 14,000 words + one-sentence notification + non-blocking
- Mode C: the user selects "adaptive" → after L8 is complete, estimate according to the SSOT §3.1 matrix + §3.3 adjustment factors + §3.4.5 meta-analysis special clauses
7.2 Meta-analysis special clauses (see SSOT §3.4.5)
Values according to SSOT §3.3 adjustment factors:
- Complete meta-analysis (including forest + funnel + Egger/Harbord + at least 1 psychology supplementary PB): +30%
- ≥ 3 forest plots (multiple outcomes / subgroup comparisons / sensitivity): +20%
- Hedges' g correction, Hunter-Schmidt, RVE / three-level / MASEM, etc.: +10% per issue
- HKSJ + 95% PI + Bayesian alternative analysis: +10%
7.3 Word-count discipline (PRES-006 + SSOT §4)
No padding / no elaboration / quality first (see SSOT §4 for detailed definitions).
Kickoff-stage confirmation: confirm the word-count target with the user after L1 (type identification) and before L2 (PICO + effect size presets). When the word count is severely mismatched, decide according to §11.7.
8. When to load the foundation SSOT (path authority = whole-library resolver)
Sole path authority =
review-methodology-foundations/references/SSOT-INDEX.md(whole-library file-resolver): stage/keyword → the one correct path, covering all references of the three skills (to cure two real-world wrong-path incidents, especiallyL10-grade.md/L11-prisma-reporting.md/L12-amstar2.mdresiding in systematic-review but referenced by MA stage numbering—listed specifically in the resolver §B cross-skill trap table). The table below gives "which stage consumes which SSOT's payload"; when drilling down on demand throughout the text, use the resolver to resolve paths, and do not guess paths by stage-number intuition.
| When to load (at the granularity of concrete decision actions) | SSOT to load |
|---|---|
| Must-read immediately after the main Agent starts (without waiting for a trigger table) | LAUNCH-DIGEST.md(≤10k, must-read upon startup, carrying all payloads of the distilled triad + the six tables of frontier clauses); the full triad (AI-FAILURE / LIFECYCLE / TERMINOLOGY) is downgraded to on-demand drill-down |
| When the main Agent needs to confirm the overview type at L1 | SSOT-REVIEW-TYPES |
| When the main Agent needs to select the PICO framework at L2 | SSOT-PICO-FRAMEWORKS |
| When the main Agent needs to make effect size type decisions (continuous/binary/correlation + standardization) + SE back-calculation at L9.1 | SSOT-EFFECT-SIZE-DECISION §1-§5 |
| When the main Agent needs to make synthesis method (FE/RE, I², publication bias) decisions at L9.4-L9.10 | SSOT-SYNTHESIS-METHODS §3-§10 |
| When a psychology scenario is triggered (L9.2 correction / L9.3 dependence / L9.10 MASEM / L9.9 PB psychology supplement / replication crisis) | SSOT-PSYCHOLOGY-SUPPLEMENTS §2 8 issues |
| When the main Agent needs to select a RoB tool by design at L8 (including the Metapsy psychotherapy extension) | SSOT-ROB-TOOL-MAPPING |
| When the main Agent enables GRADE at L10 | SSOT-GRADE-FRAMEWORK |
| When the main Agent needs to determine reporting standards before writing at L11 (APA MARS Table 9 + PRISMA 2020 + 12 differences) | SSOT-REPORTING-STANDARDS §1.3.1 + §3 |
| When the main Agent writes the PRISMA flow diagram / PRISMA-S at L11 | SSOT-PRISMA-FLOW-DIAGRAM + SSOT-PRISMA-S-TEMPLATE |
| When the main Agent needs to determine extraction fields at L7 | SSOT-EXTRACTION-FIELDS |
| When the main Agent self-evaluates at L12 | SSOT-AMSTAR-2-CHECKLIST |
| When a Chinese-language scenario is triggered (CNKI / GB/T 7714 / the three major Chinese psychology journals) | SSOT-CHINESE-CONTEXT |
| When the main Agent at L3 needs to decide between strict vs. learning mode | SSOT-MODE-PROFILES |
| When the main Agent at L1 / L11 needs to determine the word-count formula | SSOT-WORDCOUNT-RULES Base SSOT path prefix:review-methodology-foundations/references/(Across skill files, resolve by the SSOT-INDEX.md resolver; do not guess the prefix from the stage number.) This Skill references rather than copy-pasting; key payloads are delivered via the §6 copy block + LAUNCH-DIGEST , not by "reading on demand out of conscientiousness." |
9. Strict / Learning / Supervised Mode
See SSOT-MODE-PROFILES.md v2.0.0 (meta-analysis subset §4.5 + three-mode definitions §1).
- Strict mode (top-tier journal submission): full coverage of all 12 stages; APA MARS Table 9 compliance across all 13 sections; GRADE + AMSTAR 2 self-assessment ≥ Moderate; preregistration mandatory; at least 2 publication bias tests; HKSJ CI; 95% PI must be reported.
- Learning mode (coursework): retain the core L1-L2-L9.1/L9.4/L9.5/L9.9-L11; may skip L9.7 / L9.10 / L12; simplification points must be explicitly declared ("Method Limitations").
- Supervised mode (AI first draft + human checkpoint-by-checkpoint gatekeeping to publication level — the default target mode of this project): methodological completeness is the same as strict mode (publication level, no downgrade); the difference is that the human does not just "accept once at the end" but signs off at each of 7 irreversible points (see SSOT §1.4 for details).
Learning mode is not allowed to skip L9.5 (heterogeneity disclosure) and L9.9 (core publication bias) — this is the scientific-reasonableness skeleton of a meta-analysis.
Honest disclosure of learning-mode simplification points follows the C4 three-part format (apply the SR L6 §6.1 template; see references/L11-mars-reporting.md §"Learning Mode Disclosure Original Text").
9.1 Supervised Mode
In one sentence: the AI finishes the grunt work (search, double-blind screening, dual extraction, running R, generating figures, first draft), and the human only makes the calls at the 7 key nodes that machines cannot judge — methodological completeness is the same as strict mode, but every irreversible decision is personally signed off and owned by a human. For the definition see SSOT-MODE-PROFILES.md §1.4.
When to choose it: when a professor/advisor wants "AI first draft, human check, ensure no errors, reach publication level" — neither comfortable letting AI run fully automatically through all key judgments (that is the full-automation assumption of strict mode), nor able to use course-level random spot checks (which cannot reach publication level). Choose supervised mode when one researcher + AI collaborates to produce a submittable meta-analysis but needs to personally gatekeep every key judgment.
How it differs from strict mode: methodological completeness is exactly the same (both provide full coverage at publication-level Tier 1); the only difference is replacing "one final human acceptance" with "one review at each of 7 irreversible points". These 7 points (on the meta-analysis side, mainly L7 extraction calibration/low confidence, L9 model + heterogeneity, L9.6/9.9 interpretation + publication bias, L11 citation final review) each produce a custom review card; the human looks at the card and decides "accept or send back."
Why it is a "real gate" rather than "a reminder": the verdict of each sign-off point goes into the corresponding file of decisions/ in the corresponding file user_signoff marker. Before the downstream stage starts, the preflight script reads it — no sign-off / pending / sent back → the script exit code ≠ 0, and the downstream stage cannot start at all. At the same time, the red light is computed by R (not read by AI from a summary), and hard reproducibility checks (missing sessionInfo / exit code ≠ 0 / red light / κ too low / insufficient seed recall) directly block before human review. **The runtime operational contract of the 7 gates (trigger timing of each gate, artifact paths, preflight commands, which downstream is blocked by a missing sign-off, hard checks, review-surface cap) is in review-methodology-foundations/references/SUPERVISED-MODE-GATES.md. **
Sign-off experience (G1 vNext, 2026-07-03 · two-stage): Supervisory mode = informed confirmation during the run + independent walkthrough of the post-hoc review packet. The gate during the run is flow-first informed confirmation (Agent recommendation + rationale + consequences + drill-down available + can be sent back, retaining the "(recommended)" pre-label — it is an informed suggestion given by the Agent based on knowledge you do not possess); the真正 independent human review is in the post-hoc signatory review packet (L12.5). Card/gate unified: the only human-facing review document = decisions/ gate markdown below (six-section skeleton a-f); the HTML card is an optional enhancement. Each gate's decision point is driven by a single source, the structured decision block; the gate (e) section and the AskUserQuestion question text render from the same source,question_hash locked;signoff_ask.py is the only compliant question/backfill channel (the agent may not handwrite signed, and may not hand-type the question text). In addition to sign-off/red light, preflight also mandatory-additively enforces: same-source hash / referenced chart files for decision points must exist / narrative must not contradict the numbers / three-field machine-readable disclosure. L9.9 publication bias card rendering must carry --funnel <真实存在的图> (only if the figure physically exists is it appropriate to ask "look at the funnel plot"). The complete mechanism is in review-methodology-foundations/references/SUPERVISED-MODE-GATES.md §0.5.
Balance (neither side overfits): do not block human review everywhere — green-tier fields are exempt from review, double-blind agreement items are automatically passed, if there is no red light in the statistics then that point has no human review queue, and reversible intermediate artifacts have no gate; nor let AI run past key judgments — 7 irreversible freeze points, dual-extraction disagreements / low confidence / key values / red-tier fields must be reviewed. The number of items pending review at each sign-off point is capped; when over the limit, tighten upstream filtering rather than dumping a long list on a person. Do not inject negative samples during the run, and do not add friction that tests people (independent judgment is in the post-hoc review packet, not during the run).
Disclosure: output in supervisory mode must disclose "which steps AI did, and what the person reviewed at each of the 7 sign-off points" (RAISE: human oversight + transparent disclosure + ultimate responsibility with the person). Disclosure strength is machine-generated from the sign-off facts, and monotonically does not exceed the facts (presented_via/evidence_opened/signature page status → wording mapping, semantics use attestation) — the two-stage model is written truthfully as:in-run informed confirmations with drill-down access + post-hoc independent audit via structured audit package, not arbitrarily worded by the agent. See SSOT §6.6 for details.
Responsible use (single SSOT): the stance of supervisory mode, the two-stage oversight model, and the complete formulation of the 7 gates and honest boundaries are in the release repository root
RESPONSIBLE_USE.md— core: AI first draft + human sign-off at the 7 gates + the signatory bears full responsibility; during the run = informed confirmation (not independent judgment), post-hoc review packet =真正 independent human review; disclosure strength is machine-generated and monotonically does not exceed the facts; automatic submission without human review is not supported.
10. Special handling for psychology scenarios and Chinese-language scenarios
10.1 Psychology scenarios (required reading by default — triggered by the psychology determination in decisions/01_type_decision.md)
Trigger determination: scan according to the SSOT-PSYCHOLOGY-SUPPLEMENTS.md §0.4 4-category signal list (APA journals / scale names / psychological constructs / replication crisis + JARS keywords); if any 1 category is hit, it triggers; the determination result (yes/no/boundary) is written to decisions/01_type_decision.md Psychology determination field (determines whether L11 superimposes JARS-Quant + whether L9.x enables the 8 issues).
See SSOT-PSYCHOLOGY-SUPPLEMENTS.md §2 Psychology meta-analysis 8 issues:
- RVE (dependent effect sizes with unknown structure, k ≥ 5) → robumeta + clubSandwich
- Three-Level (clear hierarchy, k ≥ 20) → metafor rma.mv
- MASEM (multivariate SEM synthesis, k ≥ 10) → metaSEM
- Hunter-Schmidt (reliability attenuation correction, psychology scales only) → psychmeta
- Reliability Generalization (reliability itself is the object of review) → psychmeta + REGEMA
- p-curve / p-uniform* (evidential value diagnosis, k_significant ≥ 5) → puniform / dmetar::pcurve
- PET-PEESE (corrected effect size estimation, k ≥ 10) → metafor mods
- RoBMA (Bayesian weighted synthesis) → RoBMA (requires JAGS; if missing at runtime → default not selected/downgraded to puni_star+PET-PEESE). In dependent effect size scenarios (L9.3 determines three-level/RVE), publication bias uses Egger-MLMA (
scripts/egger_mlma.R), not single-level tests
Mandatory reporting checklist for psychology meta-analysis (in addition to the standard Cochrane meta-analysis report):
- 95% prediction interval (heterogeneity is greater, mandatory; in k < 5 + psychology scenarios still report but explicitly note "normal assumption is not robust", see §11.5 for details)
- Dependent effect size handling (RVE / three-level)
- Attenuation correction (if applicable)
- p-curve / p-uniform diagnosis
- PET-PEESE sensitivity
- RoBMA Bayesian synthesis (if available; requires JAGS; if missing at runtime → default not selected/downgraded to puni_star+PET-PEESE)
- Preregistration statement + ITT report
See references/L9-psychology-special.mdfor details.
10.2 Chinese scenarios
See SSOT-CHINESE-CONTEXT.md.
- CNKI / Wanfang / VIP search (covers Chinese studies): users should search these databases simultaneously at L4
- Chinese-English terminology mapping: "元分析" / "Meta 分析" / "森林图" / "异质性" / "随机效应模型" / "亚组分析" / "信度概化"
- GB/T 7714-2015 citation format (for Chinese journal submissions)
- 《心理学报》《心理科学进展》: requirements similar to APA MARS but in Chinese + GB/T 7714; Open Science policy (preregistration statement, data sharing)
- Chinese scenario L11 output: Chinese report + Chinese forest plot labels
- Chinese search fallback: main search path =
paper-search-pro(HTTP, no MCP); OpenAlex/SS/CrossRef/PubMed have limited coverage of Chinese → when 0 hits, the main Agent guides the user to manually export CNKI/Wanfang records →ingest_search_exports.pyingestion; see §11.1 for details
11. Troubleshooting and fallback
This chapter is organized by the trio of "diagnostic signal + threshold + fallback path". Failover decisions are written to decisions/<stage>_failure_switch.md.
11.1 Main search path and fallback (including Chinese scenarios)
Main search path =
paper-search-proSkill (OpenAlex / Semantic Scholar / CrossRef / PubMed all go through HTTP API, the corresponding API key needs to be configured in the environment, no MCP server is required). If the runtime environment does not providesemantic-scholar/openalexMCP server (a common default situation) — therefore the troubleshooting signal is based on "paper-search-prosearch results are abnormal", not based on "SS/OpenAlex MCP error" (such errors will not occur in that environment). Chinese search: because OpenAlex/SS/CrossRef/PubMed have limited coverage of Chinese literature, the main path = user manually exports CNKI/Wanfang →systematic-review/scripts/ingest_search_exports.pyingestion.
| Failure signal | Threshold / trigger condition | Fallback path |
|---|---|---|
| English search 0 hits / recall too low | Keywords are English,paper-search-pro Clearly insufficient hits |
Expand synonyms / relax Boolean logic and re-screen; cross-source triangulation (OpenAlex↔CrossRef↔PubMed) to supplement recall |
Chinese search via paper-search-pro 0 hits |
0 hits + keywords are in Chinese | (a) User manually exports CNKI / Wanfang / VIP bibliographic records → ingest_search_exports.py ingest into unified fields; (b) if a literature set already exists, convert to literature-set-review. SubAgent must not arbitrarily downgrade English search to replace Chinese search |
| Search entirely unavailable (persistent HTTP failures / network restricted / key invalid) | Persistent failure ≥ 3 times | Block + alert user + main Agent must not forcibly downgrade to local reasoning and fabricate literature from memory; guide user to manually export bibliographic records and then follow ingest_search_exports.py |
| Incomplete search metadata (abstract missing ≥ 50%) | Missing rate ≥ 0.5 | (a) Dispatch firecrawl-abstract Skill for supplementary extraction (see degradation path in note below); (b) fall back to expanded synonyms and re-screen |
firecrawl-abstractDegradation note: If the runtime environment has nosemantic-scholarMCP server → that Skill'spaper_details(Semantic Scholar API / SS method) channel is unavailable; by default use the two methods Firecrawl Scrape / Firecrawl Extract (available if Firecrawl key is present), fetching and parsing abstracts by DOI / URL.
11.2 R package unavailable fallback (MA-specific)
| Failure signal | Trigger condition | Fallback path |
|---|---|---|
metafor unavailable |
library(metafor) error |
(a) Prompt install.packages("metafor"); (b) provide Python statsmodels equivalent code (basic RE only); (c) warn about interpretation differences of the alternative method (statsmodels does not implement HKSJ) |
puniform unavailable |
error | provide dmetar::pcurve alternative; or an R code template for the user to install |
robumeta / clubSandwich unavailable (RVE) |
error | prompt to install; or switch to single-study narrative (when k is insufficient) |
metaSEM / psychmeta unavailable |
error | prompt to install; or switch to Hunter-Schmidt hand-calculation template |
| RoBMA / JAGS unavailable | jags_ok=FALSE (Sys.which("jags")="" or RoBMA/rjags missing) |
automatically downgrade to puni_star + PET-PEESE (no JAGS needed); disclose "RoBMA not executed due to missing JAGS", do not write "passed" |
| No R environment at all | User declares no R | (a) switch to hand-calculation templates (basic RE / FE); (b) Python statsmodels + scipy.stats equivalent basic code; (c) block advanced methods (RVE / three-level / MASEM not allowed) |
Honest disclosure of R package alternative methods (C4 three-paragraph format, must be embedded in Limitations):
Paragraph 1: The original method assumes the use of
metafor(Viechtbauer 2010) + HKSJ small-sample adjustment. Paragraph 2: This meta-analysis uses Pythonstatsmodelsbecause R is unavailable. Differences: (1) HKSJ is not implemented, standard Wald CI is used (underestimates uncertainty when k is small); (2) the τ² estimator is only DerSimonian-Laird; (3) Cochran's Q is calculated the same as metafor. Paragraph 3: Mitigate difference 1 through leave-one-out and PI reporting; disclose this limitation in the Discussion.
11.3 Search returns extreme values (e.g., MA receiving SR L4)
| Scenario | Threshold | Decision |
|---|---|---|
identify_count > 10000 |
10000 | Strongly recommend downgrading (narrow PICO / switch to FO) |
identify_count > 50000 |
50000 | Forced downgrade (not allowed to continue as SR/MA) |
identify_count < 5 |
5 | Block + switch to LS or expand PICO |
identify_count Between 5-20 |
interval | Warn + ask the user whether to extend PICO or switch to LS |
11.4 Severely insufficient data — k=2-4 decision table (core)
Apply W5_FIX_PLAN F.P0.5 + Cochrane v6.5 §10.10.4:
| k value | Decision | Detailed handling |
|---|---|---|
| k = 1 | No meta-analysis | Cannot be pooled; single-study narrative |
| k = 2 | No meta-analysis | Switch to SWiM/Popay; annotate "k insufficient for pooling"; if numerical values must be given, report only per-study effects + CI |
| k = 3 | Meta-analysis permitted but with caution | FE+RE dual run + Discussion explicit "k insufficient" limitations paragraph + sensitivity (leave-one-out) |
| k = 4 | Same as k=3 + PI warning | FE+RE dual run + sensitivity + report PI but explicitly annotate "normal assumption not robust" |
| k ≥ 5 | Default RE | REML + HKSJ (k > 2 + τ² > 0) + mandatory report of 95% PI |
Special constraint for psychology scenarios: psychology scenario + k < 5 → still report PI but explicitly annotate "normal assumption not robust" (apply W5_FIX_PLAN F.P1.3); non-psychology + k < 5 → do not report PI, provide sensitivity analysis.
11.5 Extreme heterogeneity / comprehensive failure
| Scenario | Threshold | Decision |
|---|---|---|
I² > 75% |
75% | Presenting the pooled effect alone is not permitted; switch to subgroup / meta-regression (Cochrane v6.5 Ch.10) |
I² > 90% |
90% | Pooling completely prohibited + subgroup / meta-regression / SWiM mandatory (W5_FIX_PLAN F.P1.4) |
k < 5 high heterogeneity |
k threshold | No meta-analysis; switch to SWiM/Popay; or narrative synthesis |
| Publication bias tests unavailable when k < 10 | 10 | Egger / Harbord / Peters have low power when k < 10 → do not report test results; instead provide qualitative disclosure "because the number of studies < 10, no publication bias test was performed" + disclose in Discussion |
11.6 Correction failure / application judgment
| Failure | Decision (apply W5_FIX_PLAN F.P1.5 Correction-Agent decision table) |
|---|---|
| Hedges' g J factor computation failure (degrees of freedom unavailable) | Fall back to Cohen's d + annotate "no small-sample correction performed" |
| Hunter-Schmidt: whether construct measurement error is reported | Reported → apply artifact correction |
| Hunter-Schmidt: reliability/range restriction across studies incomplete | Literature-level sampling correction + sensitivity (uncorrected version as baseline) |
| Hunter-Schmidt: corpus has no reliability data | No correction + explicit disclosure "no reliability data, H-S correction not applied" |
11.7 Severe word count mismatch (cite SSOT-WORDCOUNT-RULES §8)
| Deviation | Decision |
|---|---|
| Deviation ≥ 30% | Report to user + recommend adjustment (after writing is complete) |
| Deviation ≥ 50% | Mandatory adjustment or switch to Skill |
12. Output format and file naming
12.1 Standard deliverables list (what you produce)
- Complete quantitative meta-analysis report (per APA MARS / JARS-Quant Table 9 + PRISMA 2020)
- Effect size extraction and computation (5 decision trees + 7 SE back-calculations + Hedges' g / Hunter-Schmidt correction)
- Model selection and pooling (FE / RE / RVE / three-level / MASEM)
- **Heterogeneity disclosure (I²/Q/τ²/95% PI must be reported; when I² > 75%, presenting only the pooled effect is not allowed)
- Subgroup analysis and meta-regression (k ≥ 10 + ICEMAN 6 dimensions + prespecified vs post hoc distinction)
- Publication bias tests (funnel + Egger/Harbord + at least 1 psychological supplement: p-curve / PET-PEESE / RoBMA / selection models; k ≥ 10)
- Runnable R code (metafor / robumeta / clubSandwich / psychmeta / metaSEM / puniform / RoBMA (requires JAGS, not selected by default))
- GRADE certainty of evidence (including meta-analysis-specific considerations: downgrading for heterogeneity, imprecision, publication bias)
- Fixed-renderer output figures (forest / funnel / PRISMA / RoB: the four-piece set = built-in ma-plots renderer fixed commands + QC gate, §13.2/§13.4; SoF table = md table, produced at L10)
- Delivery checklist manifest (
00_交付清单_manifest.md, five-section templatereferences/delivery-manifest-template.md, §12.4) - Four submission items (submission docx / submission PDF man / publication preview PDF jou / clean md — manuscript-typeset produced by default, without waiting for the user to add; §12.4 step ③ + §13.4)
- Decision archive (decisions/ subdirectory — cross-stage consistency assurance)
12.2 Decision archive directory (at the same level as this task's working directory)
decisions/
01_type_decision.md ... 11_reporting_standard.md
09.1_effect_size.md / 09.4_model_selection.md / 09.5_heterogeneity.md / 09.6_subgroup.md / 09.9_publication_bias.md
Retroactive recognition ③ (G5 · Axiom 8 recognition of good deviations) — audit cards replace 09.4/09.5 decision files · filename disambiguation: in practice, no separate
09.4_model_selection.md/09.5_heterogeneity.mdwas created, and instead therender_audit_card.R-produced09.4_audit.md/09.5_audit.mdreview card carries it (the card already includes decision points + red/yellow/green lights + data + sign-off block, fully covering the function of the decision file). Specification disambiguation: the presence of the09.x_auditreview card for the same stage is deemed to satisfy that stage's 09.x decision file, and the two are not required to coexist (eliminating the conflict between the two parallel sets of "§12.2 filename provisions vs gate-artifact naming"; the deviation in practice was D12). The sole authoritative reference for file naming remains §12.3.
12.3 SubAgent output file naming (L<N>_<task>.<ext> — sole standard)
This is the sole authority for output file naming across the entire library (closes BK-11). The read/write names in subagent-templates / L9-r-code-templates /
scripts/*.Rmust all align with this table, and no separate bare names may be created (such aseffect_sizes.csv/*_results_summary.txtand other old bare names, which are deprecated). Extensions follow semantics: data.csv/ document.md/ figure.png(ma-plots renderer) or.R/ raw R output.txt。
# —— L9 数据 / 决策产出 ——
L9.1_effect_sizes.csv # L9.1 效应量数据(R-ready:study_id/outcome_name/yi/vi/sei/n_total + 可选 effect_id/subgroup/year/reliability_xx/reliability_yy)
L9.1_extraction_decisions.md # L9.1 提取决策记录(原 extraction_decisions.md)
L9.2_corrections.csv # Hedges' g + Hunter-Schmidt 校正后值
L9.3_dependency.md # 依赖结构判断
L9.4_model_selection.md # FE/RE 决策 + τ² 估计器
L9.5_heterogeneity.md # I² + Q + τ² + 95% PI
L9.6_subgroup.md # 子组分析(k ≥ 10)
L9.7_metaregression.md # meta-regression(k ≥ 10)
L9.8_sensitivity.md # leave-one-out 等
L9.9_publication_bias.md # funnel + Egger + 心理学补充
L9.10_masem.md # 按需(MASEM 结论)
L9_psychology_special.md # (S5) 心理学专题 SubAgent 产出(替原裸名 psychology_special.md)
L10_grade.md # GRADE 评估
L11_draft_A.md / L11_draft_B.md / L11_merged_1.md / L11_merged_2.md / L11_final.md # 2-2-1
L11_mars_compliance.md # MARS-Compliance-Agent 产出(原 mars_compliance.md)
L11_claims_vs_data.md / L11_ref_verify_report.md # 监督模式 SP6/SP7 产物(S6 接线)
L12_amstar2.md # 自评
# —— R 脚本 / 原始输出(统一 L9_/L9.x_ 前缀,替代旧 *_results_summary.txt 散名)——
L9_meta_analysis_main.R # 完整工作流主 R 脚本(原 meta_analysis_main.R)
L9_meta_results.txt # metafor 基础 R 原始输出(原 meta_results_summary.txt)
L9.3_rve_results.txt # RVE R 原始输出(原 rve_results_summary.txt)
L9.2_psychmeta_results.txt # Hunter-Schmidt R 原始输出(原 psychmeta_results_summary.txt)
L9.9_pcurve_results.txt # p-curve/p-uniform R 原始输出(原 pcurve_results_summary.txt)
L9.9_egger_mlma_results.txt # (S5) Egger-MLMA(依赖效应量多水平/RVE 发表偏差)R 原始输出
L9.10_masem_results.txt # MASEM R 原始输出(原 metaSEM_results_summary.txt)
# —— Chart-Bridge 数据 + 图(见 §13.2 + L9-r-code-templates §10)——
L9_forest_data.csv # Chart-Bridge 森林图 per-study 数据(列 study/es/ci_lo/ci_hi/weight;R 导出 → ma-plots 渲染器消费)
L9_forest_pooled.csv # 森林图 pooled diamond + 异质性侧车(es_overall/ci_lb/ci_ub/I2/Q/tau2)
L9_funnel_data.csv # Chart-Bridge 漏斗图 per-study 数据(列 study/es/sei)
L9_funnel_pooled.csv # 漏斗图 pooled 标量 + Egger 侧车(pooled/egger_intercept/egger_p/k)
L11_forest_plot.pdf / L11_funnel_plot.pdf # metafor 直出(草图/敏感性速览)
L11_forest_plot.png / L11_funnel_plot.png # ma-plots 渲染器渲染(发表级,§13.2 产出)
Figure extension ruling (Lock 4 §4.2.4): preserve the native extensions of the two figure-production paths, with the unified prefix
L11_——pdf()output by metafor (quick self-check);.png= publication-grade figure rendered by the ma-plots renderer via Chart-Bridge (APA 7 + CVD-safe, with styling reused from ssci-plots). The two coexist without conflict.
12.4 L12 delivery packaging (manifest + four submission items + review package cross-linking — G9)
After the L12 self-assessment (§4.5) is completed, delivery packaging is executed in the following five steps (to cure the root problem in practice: zero specification for delivery packaging — a grep of manifest|交付清单|打包 across the entire library yields 0 hits; that high-quality delivery checklist in practice was invented on the spot and will reset to zero on the next run):
- Delivery area assembly: create
03_交付/, and final deliverables are copied into it (not moved); naming[name]_v[N].[M].[ext](subjective suffixes such as "final version / final" are prohibited). - Invoke manuscript-typeset to produce the four submission items (default action, without waiting for the user to add):
python3 <manuscript-typeset>/scripts/typeset.py --request typeset_request.yaml --outdir <03_交付/子目录>(Tetrads and degradation see §13.4; fidelity fail = exit 2 blocks this item; missing xelatex degrades to two items, docx+md). - L12.5 review package build (supervisory mode):
python3 <review-methodology-foundations>/scripts/audit_package.py build --run <运行根> --content <_audit_content.json> --out <运行根>/03_交付/produces00_审核入口.md+ review package (spec =review-methodology-foundations/references/SIGNING-AUTHOR-AUDIT-PACKAGE.md; readiness hard gate =signoff_preflight.py --gate L12.5 --decisions-dir <运行根>/decisions). - Produce the delivery manifest (finalized after ②③ — only then are its required inputs complete): per
references/delivery-manifest-template.md(five-section template) produce03_交付/00_交付清单_manifest.md— its §1 registers the actually produced typeset item count (including degradations truthfully); its §3a covers, item by item, all entries of the step ② outputPLACEHOLDERS.md(placeholders are not allowed to silently omit pending entries); its §2 must contain name-value binding spot-check records (sample N rows of figures/tables with study labels to verify three-way consistency of "display name↔study_id↔value", the G7 lesson, the delivery-side closure of the §13.2 labels discipline); the header cross-link line points to the00_审核入口.mdalready produced in step ③. - The two
00_files are separated and cross-linked, not merged:00_交付清单_manifest.md= submission item index (for those who will submit);00_审核入口.md= signatory final-review flow (for those who will sign and take responsibility) — separation of duties, mutually linked (G2 boundary, D-8). For the three-structure duty comparison of gate six segments / review station five columns / manifest five sections (including "gate sign-off vs final-review signature = two independent signatures, do not deduplicate") seereview-methodology-foundations/references/THREE-STRUCTURE-MAP.md.
Then → signatory final review. The L12 packaging of the pure SR path follows this same spec (the manifest template resides in this Skill references/ and is referenced by systematic-review; for the SR-side pointer see the end of its §12).
13. Relationship with other Skills
13.1 Joint workflow: systematic-review + meta-analysis
Recommended path:
用户场景:定量合并 23 项 RCT
↓
Step 1:先调用 systematic-review 完成 L1-L8
- L1 类型识别(含心理学判定)→ decisions/01_type_decision.md(MA 沿用)
- L2-L8 全部
↓
Step 2:切换到 meta-analysis 完成 L9-L12
- L9.1-L9.10 定量合并
- L10 GRADE
- L11 APA MARS(含 forest plot=内置渲染器 §13.2)
- L12 AMSTAR 2 自评
When the user states "I have completed search/screening/RoB and need quantitative synthesis", the main Agent may enter this Skill directly (independent MA entry, first build per the §3.3 scaffold 01/02/07/08); when the user states "complete systematic review including quantitative synthesis", the joint workflow is recommended.
Joint path decisions/ shared + 09↔09.1 handoff gate (closes BK-7, N-1..N-4):
- N-1 same
decisions/directory: in the joint path, SR and MA share the samedecisions/(sibling to the working directory). MA does not create a separate directory; it directly reads the01..08+09_synthesis_decision.md。 - N-2
09_synthesis_decision.mdalready produced by SR, shared, MA read-only no overwrite: SR produces it at L9 (including the "switch to MA" conclusion + recommended model family); MA takes over read-only, no rewrite, as input for "whether to enter MA + model family". - **N-3 MA continues from
09.1**: MA creates a new09.1/09.4/09.5/09.6/09.9sub-phase file in the same directory, coexisting with09(the decimal level naturally distinguishes them; no overwrite occurs). - N-4 trigger upgraded to a blocking gate (hard-coded): before the main Agent enters MA L9.1, it must read
decisions/09_synthesis_decision.md: if its switch conclusion ≠ "recommend switching to MA" → block (should not enter MA; return to SR L9 SWiM/Popay); if = recommend switching to MA → read its recommended model family (FE/RE/RVE/three-level/MASEM) as the input constraint for L9.3/L9.4. This upgrades BK-7 from an "easily missed manual bridge" to a "blocking-gate-protected hard-coded handoff".
Ownership of L10-L12 in the joint path (ruling of Lock 4 §4.4): for a joint path ending in meta-analysis, meta-analysis owns L9-L12 — produced by MA 10_grade_decision.md + 11_reporting_standard.md + L12_amstar2.md(Per MA §12.1 deliverable checklist + this §13.1 joint workflow). The SR-only path (no MA) still has L10-L12 completed by SR.
SR L7 → MA L9.1 field mapping: see systematic-review references/L7-extraction-dual.md §11 (the mapping table itself, interfacing with this Skill L9.1-effect-size-extraction.md §8.2 input contract—study-level raw statistics; L9.1 is responsible for computing the raw quantities via escalc into ES/SE/yi/vi/sei).
13.2 Chart-Bridge dual lock on data + rendering: ma-plots fixed renderers (forest / funnel / PRISMA / RoB)
This Skill does not directly write rendering code on the fly. Chart = fixed renderer scripts/plots/ parameterized direct output + built-in QC assertions exit≠0 (G7; to cure the real-world root cause: SubAgent writing 500 lines of matplotlib on the fly + no QC gate → Fig6 legend pressing the last-row data points, delivered damaged). Four renderers:forest.py / funnel.py(Python fixed renderer) + prisma_flow.py(thin wrapper around the official PRISMA2020 R package) + rob_traffic.py(thin wrapper around the official robvis R package). Three-step hard contract:
- R exports locked CSV (unchanged) (
references/L9-r-code-templates.md§10 Chart-Bridge, run aftermetafor_basic.R'sres_re):L9_forest_data.csv(columnsstudy, es, ci_lo, ci_hi, weight+ pooled sidecar) +L9_funnel_data.csv(columnsstudy, es, sei+ pooled sidecar). PRISMA counts YAML / RoB domains CSV new contracts seereferences/prisma-flow-contract.md/references/rob-figure-contract.md. - Fixed command-line invocation of renderers (SubAgent does not write rendering code):
python3 scripts/plots/forest.py --data L9_forest_data.csv --pooled L9_forest_pooled.csv --labels <study→显示名> --out L11_forest_plot [--pi lo,hi] [--subgroup-col C] [--ilab n_int,n_ctrl] [--width single|double]python3 scripts/plots/funnel.py --data L9_funnel_data.csv --pooled L9_funnel_pooled.csv --out L11_funnel_plot [--width]python3 scripts/plots/prisma_flow.py --counts prisma_counts.yaml --out L11_prisma_flow [--width]python3 scripts/plots/rob_traffic.py --data rob_domains.csv --labels <study→显示名> --tool both --out L11_rob [--summary-bar --weights-from <cell>] [--width]- Renderers only draw, do not compute (es/pooled/weights all read from CSV, never recomputed); styles reuse the ssci-plots foundation (
apply_style/get_palette/save_figure); label discipline hard gate (forbidden~2019/Anon./bare internal IDs on charts, gaps go into Note). Authoritative command-line signatures seescripts/plots/README.md. - labels mechanically same-source discipline (G7 re-verification lesson, mandatory):
--labelsfiles must be mechanically generated from the feature table / G2 ID cross-reference card and written to disk (including~2019endnotes and other internal notation sanitization), hand-crafting is forbidden—hand-crafted labels once caused 8/13 name-value misalignment in comparison proofs + fabricated study names (the renderer itself has no defect in key join; the defect is in the input). Name-value binding is the third type of check beyond "layout QC + numerical oracle": for any delivered chart bearing study labels, acceptance must sample N rows to verify three-way consistency of display name ↔ study_id ↔ value (delivery-surface registration into the manifest §2 sampling record, §12.4).
- Renderer built-in QC assertions exit≠0 blocks immediately (cures Fig6 having no QC gate): legend bbox not pressing data / all input rows present (output ≥ input) / required elements present / figure size = layout width / weight-area monotonicity + contrast floor (forest) / PRISMA parallel flows merging only at included / RoB domain set matching tool + weighted bar forbidden from silently mixing weights. Exit codes 0 (green) / 1 (input error) / 2 (QC failure, blocks plotting,
--warn-onlymay downgrade) / 3 (empty). Failure blocking gate retained: CSV missing or 0 rows → block (do not fabricate chart data, do not run empty; structural human-in-the-loop gate BK-12). ssci-plots is relegated to ma-plots' style dependency + the non-MA four-piece general-purpose chart outlet.
13.3 Skill boundary quick reference
| User need | Switch to |
|---|---|
| Literature already collected, want to write a review but not do pooling | literature-set-review |
| 50-year/30-year history of a field's development | field-evolution-review |
| Integrative review (quantitative + qualitative + theoretical) | field-overview-review |
| Strict PRISMA systematic review (without quantitative synthesis) | systematic-review |
| MA four-piece plot set (forest / funnel / PRISMA / RoB) | This Skill has a built-in ma-plots renderer (§13.2/§13.4, not cut out) |
| Non-MA general statistical plots | ssci-plots |
| Verify citation accuracy | academic-ref-check(for the quadruple see §13.4) |
| Find literature | paper-search-pro(for the quadruple see §13.4) |
13.4 Satellite dependency matrix (quadruple hard contract — G9)
Positioning: This table locks each satellite call into a quadruple command-line contract [when to call / command or entry point / IO contract / degradation when missing], replacing "interlocked with X"-style narrative verbs (root cause of E-Q4: narrative dependencies can be legitimately bypassed — in practice, 500 lines of handwritten matplotlib at L11 went disastrously wrong). The quadruple is a newly established contract form (extended in the spirit of the §11.1 failure table's "signal / threshold / fallback"). Each row's "degradation when missing" gives an explicit blocking or degradation action; silent skipping is forbidden. File paths in the table = paths relative to the skill root; in commands
<skill>= that skill's root directory (strictly forbidden to resolve to runtime~/.claude/skills/or bare relativeskills/).
| Satellite | When to call | Command or entry point | IO contract | Degradation when missing |
|---|---|---|---|---|
| ma-plots (built-in renderer of this Skill, not a standalone skill) | L11 plot generation (forest / funnel / PRISMA flow diagram / RoB plot) | Four fixed commands:<meta-analysis>/scripts/plots/ below forest.py / funnel.py / prisma_flow.py / rob_traffic.py(for the complete invocation form see §13.2 step 2; CLI signature authority = meta-analysis/scripts/plots/README.md) |
In: Chart-Bridge CSV (L9_forest_data.csv / L9_funnel_data.csv + pooled sidecar) + references/prisma-flow-contract.md(counts YAML)+ references/rob-figure-contract.md(domains CSV). Out:<stem>.pdf + <stem>.png. labels discipline:--labels files must be mechanically generated from the feature table / G2 ID crosswalk card and written to disk; handcrafting is forbidden; delivery acceptance includes spot checks of "display name ↔ study_id ↔ value three-way consistency" (third-category check, §13.2). Exit codes 0/1/2/3; QC exit≠0 (code 2, not warn-only) means no write to disk |
Renderer or its dependencies missing → block delivery of the plot and clearly report what is missing (no silence, never fall back to writing rendering code on the spot as a substitute). Official PRISMA/RoB R packages missing (R / PRISMA2020≥1.1.4 / DiagrammeRsvg / rsvg;robvis≥0.3.1 + ggplot2) → exit 1 with an explicit error (--warn-only no degradation) → install the package and rerun; only when a QC assertion fails (exit 2) may --warn-only informed degradation still produce the plot (README exit code contract). Style dependency ssci-plots missing (resolution order:SSCI_PLOTS_SCRIPTS env → sibling deployment relative path → inline degradation base) → degraded base style + WARN (font/color only, layout unaffected); ssci-plots also serves as the export path for the non-MA four-piece general statistical plots |
| manuscript-typeset (standalone general skill) | Post-finalization delivery packaging for L12 (§12.4 step ③); by default produces the four submission pieces, without waiting for the user to add them | python3 <manuscript-typeset>/scripts/typeset.py --request typeset_request.yaml --outdir <dir> |
In:typeset_request.yaml(contract authority = manuscript-typeset/references/MANUSCRIPT-INPUT-CONTRACT.md). Out: four pieces (submission docx / submission PDF man / publication preview PDF jou / clean md) + three attachments (BUILD_NOTES / PLACEHOLDERS / STRIP_REPORT) + a FIDELITY report for each piece. Exit codes 0/1/2/3; fidelity fail = exit 2, that piece is not written + overall blocking (no --warn-only) |
Missing xelatex → degrade to producing docx + md, two pieces (exit 0, PDF marked skipped + declared in BUILD_NOTES); missing pandoc → exit 1 blocks and reports (docx also cannot be produced); fidelity fail is never downgraded |
| academic-ref-check | SP7 citation final review (L11 final draft + after citation table finalization, the last gate before delivery/finalization) | python3 <academic-ref-check>/scripts/verify_http.py --in L11_refs.json --out-dir decisions/ --topic "终稿引用"(or --in-text L11_references.md self-parse); current wiring details = references/L11-mars-reporting.md §8.3 |
In: 100% of all citations in the final draft (structured JSON or md list). Out:decisions/L11_ref_verify_report.md(human-readable, carries user_signoff) + L11_ref_verify_report.json(machine-readable, consumed by preflight); verify each item for (1) existence (2) first author's surname (3) journal (4) year + add back DOI. Exit codes: any red→1 / otherwise unverified→3 / otherwise any yellow→2 / all green→0;signoff_preflight.py --gate SP7 If any red item exists, exit≠0 blocks the final draft |
Missing verification capability (persistent HTTP failure / unverified) ≠ pass — the SP7 gate semantics remain unchanged (fail-closed): switch to manual multi-source verification (manual checks via OpenAlex / CrossRef) and explicitly disclose the burden; unverified must be rerun until it can be judged; never "skip verification and deliver anyway" (a single hallucinated citation = reputation-destroying level) |
| paper-search-pro | Mainly belongs to SR L4/L5 (main retrieval path); on the MA side it is triggered only during independent MA entry supplementary retrieval | Skill tool explicitly loaded and triggered (HTTP API: OpenAlex / Semantic Scholar / CrossRef / PubMed, key configured, no MCP) | In: search query. Out: bibliographic export → systematic-review/scripts/ingest_search_exports.py ingestion |
→ §11.1 fallback table (Chinese 0 hits → manual export of CNKI/Wanfang → ingest ingestion; entirely unavailable → block and warn, do not fabricate references from memory) + G6 retrieval request package manual route (SR SKILL §4.2.4). This line is just a pointer; §11.1 is not repeated |
| document-to-markdown + paper-downloader-portable | L6 full-text acquisition + PDF→MD conversion (MA side = L9.1 pre-full-text corpus presence consumption side, §4.2 L9.1 blockquote) | G6 full-text request package mechanism (do not call CLI directly): main session produces fulltext_request_pack/(download_list CSV + download_policy.yaml + self-contained execution Prompt) outsourced to a pluggable executor — mode = review-methodology-foundations/references/OUTSOURCING-HANDOFF-PATTERN.md; operational details = SR SKILL §4.2.6 |
In:download_list.csv + download_policy.yaml(allow_scihub one-time prior approval / channel whitelist 8 enums / dependency tier). Out: receipt according to references/FULLTEXT-RECEIPT-FORMAT.md(8 fields fulltext_receipt.csv + human-readable list); systematic-review/scripts/validate_fulltext.py hard-gate acceptance (exit≠0 no ingestion;--receipt --policy channel discipline fail-closed) |
G6 dependency tier (download_policy.downloader.tier): local paper-downloader-portable preferred; if missing → third-party download skill paper-fetch (MIT · DOI→PDF 7-source fallback chain · pure-stdlib · github.com/Agents365-ai/paper-fetch; distribution tier · installation · Sci-Hub compliance externalized [by default requires PAPER_FETCH_NO_SCIHUB=1, only allow_scihub:true authorized] see repository root docs/DEPENDENCY-MATRIX.md) or manual-only manual per-database guide. If d2m (required converter for the execution Prompt) is missing → switch to an executor with d2m, or if conversion for that item is missing, faithfully include it in the receipt (anchors=none(降级) / validate_fulltext capture) + main session blocks consumption and discloses — the main session does not fall back to downloading/converting itself (procedural external labor discipline) |
14. SubAgent Task Templates
See references/subagent-templates.md. All templates are reorganized by L9 sub-stage; each SubAgent contains a 6-section standard structure (role / required reading / task steps / output contract / self-check list / failure fallback) + placeholder decision framework.
Dispatch placement (G5):
subagent-templates.md= Complete 6-section templates for each role (on-demand deep dive). Runtime key payload delivery = §6 dispatch replication block (review-methodology-foundations/references/PROMPT-COPY-BLOCKS.md, the entire passage into the SubAgent prompt = fill-in-the-blank constructive guarantee), the main Agent can dispatch without first opening the template; the template is for drilling down when complete scaffolding is needed. L11 long manuscript (≥12k words) uses the chapter-by-chapter writer variant + inter-chapter cross-review instead of 2-2-1 (retroactively acknowledged ②, §4.4).
Main roles: Effect-Size-Extractor (L9.1) · Correction-Agent (L9.2) · Dependency-Agent (L9.3) · Model-Selection-Agent (L9.4) · Heterogeneity-Agent (L9.5) · Subgroup-Agent (L9.6) · Metaregression-Agent (L9.7) · Sensitivity-Agent (L9.8) · PublicationBias-Agent (L9.9) · MASEM-Agent (L9.10) · GRADE-Agent (L10) · Write-Agent A/B + Evaluate-Agent 1/2 + Final-Agent (L11, 2-2-1) · Review-Citation/Logic/Expression/Format (L11) · MARS-Compliance-Agent (L11) · Self-Assessment Agent (L12, AMSTAR 2).
Main Agent orchestration recommendations: L9.1 → L9.2/L9.3/L9.4 serial; L9.5 heterogeneity first → L9.6/L9.7 can run in parallel; L9.8 sensitivity serial after L9.5 (depends on the L9.5 model baseline, not in parallel with L9.5; can run in parallel with L9.9); L9.9 standalone (depends on 09.4/09.5); L9.10 on demand.
Dual-extractor LLM orchestration (applies SR L6 §6.1 template — C4 three-part format): dispatch 2 independent Effect-Size-Extractor SubAgents (A/B prompt isolation) + Cohen's κ field-level + arbitration SubAgent. See references/L9.1-effect-size-extraction.md §Dual-Extraction chapter.
15. Reference Document List
15.1 references/ files
decision-provenance.md: cross-stage decision archive mechanism descriptionL9.1-effect-size-extraction.md: 5 decision trees + 7 SE back-calculation + 8 unit-of-analysis + zero events + Hedges' g + Hunter-Schmidt + dual-extraction LLM orchestrationL9.4-fixed-random-models.md: FE/RE selection decision tree + τ² estimator + HKSJ CI + k=2-4 decisionL9.5-heterogeneity.md: I²/Q/τ²/95% PI thresholds and disclosure (including I² > 90% extreme)L9.6-subgroup-metaregression.md: k ≥ 10 + ICEMAN 6 dimensionsL9.9-publication-bias.md: funnel / Egger / Harbord / PET-PEESE / p-curve / RoBMA / Selection models (including disclosure that they are unavailable for k < 10)L9-r-code-templates.md: R code templates grouped by topic (including Chart Bridge calls + honest disclosure of LLM-generated R code)L9-psychology-special.md: RVE / three-level / MASEM / Hunter-Schmidt / RG / 8-topic decision paths + Correction-Agent decision tableL11-mars-reporting.md: APA MARS Table 9 complete 13 chapters + 12 JARS-Quant differences + disclosure of learning-mode simplificationssubagent-templates.md: SubAgent templates reorganized by L9 sub-stage (unified "output contract" naming)quality-control.md: interfacing with the four iron rules + 4 categories of AI failure defenses (all of §1 §2 §3 §4)
15.2 scripts/ R code templates (5)
metafor_basic.R: basic meta-analysis (FE/RE + heterogeneity + subgroup + meta-regression + funnel + Egger + PET-PEESE)rve_clubSandwich.R: RVE dependent effect size meta-analysispsychmeta_hunter_schmidt.R: Hunter-Schmidt psychometric meta-analysismetaSEM_masem.R:MASEM(TSSEM + One-Stage)puniform_pcurve.R: p-curve + p-uniform*
15.3 Base SSOT reference list
See §8. All SSOT are located at review-methodology-foundations/references/, maintained by that foundation Skill. This Skill references it without copying and pasting.
16. Change Log
- 2026-06-10 (v2.0.1): Fix round F1–F17 (basis = 2026-06-10 empirical audit). R code layer: Q_between false positive correction (including intercept mixed-effects model), puniform/puni_star formal parameter and method misalignment, three-level LRT nested models, PET-PEESE conditional logic anti-conservative correction, RoBMA API verification, metafor_basic.R header declaration alignment + newly added Peters/PET-PEESE block, newly created tests/ regression test suite. Documentation layer: PET-PEESE text unified to the Stanley & Doucouliagos (2014) gold standard, RVE thresholds unified in three places (k≥5 + mandatory CR2; k<10 disclosure), hardcoded model names parameterized (normative statements changed to "the strongest model currently available", disclosure templates changed to placeholders), SSOT citation attribution corrections (Chen, Cohen & Chen 2010 / Bonett 2002 / Hagger et al. 2016 RRR), trim-and-fill removed from the must-do list, newly created SSOT-INDEX.md to fix broken links.
- 2026-06-19 (S2 WP-A): The bridging philosophy disclosure sections in §5 / §17 (including intro line 17 + the honest disclosure three-part format + the original disclosure text at the top of L9-r-code-templates.md) changed to Claude Code local
Rscriptactual run—raw output (summary/warnings/sessionInfo) goes into the audit package, red lights are counted byaudit_parse.R, and humans bear responsibility at the sign-off points; no longer "AI-generated code + user runs externally then backfills". Retained the genuine limitation that "LLM-generated code may have subtle bugs that compile but produce wrong results" (not whitewashed). Did not touch the §5 R package path mapping table. - 2026-06-20 (S4 WP-C orchestration patch): Closed BK-1/BK-2/BK-11/BK-12. ①BK-1 MA entry scaffolding: §3.2 entry preflight + §3.3 standalone MA entry decision file scaffolding (missing 01/02/07/08 blocks L9.1) + §4.2 L9.1 pre-dispatch preflight; accompanying
review-methodology-foundations/decisions_templates/full-set blank template. ②BK-12 L9.8 serialization: §3.2/§4.2/§14 changed L9.8 sensitivity from "parallel with L9.5" to "serial after L9.5" (depends on the L9.5 model baseline). ③BK-11 naming unification: §12.3 completed into the sole standard naming table for all artifacts (including R raw output / Chart data / figure extension determination), aligned across the entire library. ④BK-7 handoff gate + Lock 4 L10-L12 ruling: §13.1 added N-1..N-4 shared decisions/ + 09↔09.1 blocking gate + L10-L12 assigned to MA. ⑤BK-12 Chart-Bridge: §13.2 changed to "R exports CSV → main Agent coordinates conversion to Python lists → ssci-plots rendering + no-figure-data blocking gate" (ssci-plots consumes lists, not metafor objects). Did not touch the §5 bridging section (S2) / the RoBMA row of the R package table (S5). - 2026-06-20 (S5): Closed BK-8 / BK-10. ①BK-8 Egger-MLMA: dependent effect sizes (L9.3 three-tier/RVE determination) publication bias switched to multilevel/RVE Egger (
scripts/egger_mlma.R), not single-level Egger/Harbord/Peters; §5 R package table newly added Egger-MLMA row, §4.2 L9.9 + §10.1 Issue 8 added routing hints, §12.3 registeredL9.9_egger_mlma_results.txt(R raw output) +L9_psychology_special.md(Replaces the original bare name psychology_special.md). ② BK-10 RoBMA downgrade: RoBMA requires the JAGS system library (missing at runtime, jags_ok=FALSE) → not selected by default; when JAGS is missing, automatically downgrade to puni_star + PET-PEESE (no JAGS required), the whole chain does not stop; annotated in §5/§10.1/§11.2/§12.1. Honest downgrade: RoBMA was not executed = not verified due to missing JAGS, and "has run / has passed" was not written. - 2026-06-23 (S6B WP-E② supervised mode): Closes BK-9. §9 title changed from "strict vs learning" → "strict / learning / supervised", added §9.1 supervised mode (= strict methodological completeness + human decision review at the 7 irreversible points SP1-SP7 as structurally enforced gates; when to choose it = professor's demand for "AI first-draft + human check to publication grade"; real gate = preflight missing signature exit≠0 + red light computed by R + hard checks before soft evaluation; balance = neither side overfits + upper bound on review surface; disclosure = RAISE human oversight + transparency + ultimate responsibility); points to operational contract
review-methodology-foundations/references/SUPERVISED-MODE-GATES.md+SSOT-MODE-PROFILES v2.0.0. User-facing text follows the spirit ofscripts/CARD_NARRATIVE_VOICE.mdto remove jargon. Only §9 was changed (§2.1 paragraph owner in OWNER_MAP), §5 bridging paragraph/R package table/other chapters untouched. - 2026-06-23 (S7 WP-F Lane A retrieval fallback consistency): Closes doc 12c P2-3/P2-4. §11.1 retrieval fallback table removes the SS MCP false signals that do not exist in the runtime environment (
batch_searcherror / phantomlimit/fieldstype / "SS MCP does not return CNKI"), the primary path is changed topaper-search-pro(HTTP, OpenAlex/SS/CrossRef/PubMed keys already configured) / manual Chinese export CNKI Wanfang →ingest_search_exports.pyingestion; retains real fallbacks (Chinese 0 hits → manual export + ingestion/switch to literature-set-review, overall unavailable → blocking warning, do not fabricate from memory, metadata supplementary extraction) and the key constraint "do not downgrade English retrieval on one's own to replace Chinese retrieval"; §10.2 Chinese retrieval fallback cross-ref synchronously removes the SS MCP framework. Addedfirecrawl-abstractSS method downgrade note: runtime environment has no SS MCP →paper_details(SS method) unavailable, defaults to the two methods Firecrawl Scrape/Extract. Only §10.2/§11.1 were changed (§2.1 S7 paragraph owner in OWNER_MAP), §11.2 (S5 RoBMA downgrade)/other chapters untouched. - 2026-07-04 (G5 required-reading deployment and slimming): Addresses the practical root cause "references 39.3% never read / the three-piece set skipped 2/3 / read rate = functions named in the dispatch prompt". ① §3.1 startup required reading changed to point to
LAUNCH-DIGEST.md(≤10k)——full payload of the distilled three-piece set (LIFECYCLE/TERMINOLOGY/AI-FAILURE ≈72k) + the six lookup tables of §1.2-18 frontier clauses, the three-piece set/deep full text downgraded and drilled down on demand; ② §6 changed from "when to load" (multiple choice) to "dispatch copy block" (fill in the blank)——key payloads are placed in full into the SubAgent prompt via the newly createdPROMPT-COPY-BLOCKS.md, the highest-risk payload has one sentence inlined into this table (constructive guarantee, content goes into the prompt); ③ §8 path authority changed to point toSSOT-INDEX.mdfull-repository resolver (stage → absolute path, addressing the two wrong-paths where L10/L11/L12 live in SR but are referenced by the MA stage); ④ retroactive recognition of four good deviations (first formal application of axiom 8): ① planning document = context container (§3.3) / ② L11 per-chapter writer variant + inter-chapter cross-review replacing 2-2-1 (§4.4/§14) / ③ audit card replacing 09.4/09.5 decision-record disambiguation (§12.2) / ④ automatic pre-screening into SR L6 (implemented on the SR side); ⑤ required_readings keeps the field, cuts the report + prohibits self-attesting "read" checkboxes (template removed + preflight--gate readingsone-line WARN count, diff table → v2). Newly createdLAUNCH-DIGEST.md/PROMPT-COPY-BLOCKS.md,SSOT-INDEX.mdTransition resolver. Only changed §3.1/§6/§8/§3.3/§4.4/§12.2/§14/§16 (registered in OWNER_MAP §5.5); did not touch §5(S2/S5)/§9.1(G1)/§11.1(S7)/§12.3 naming table (S4)/§13.1(S4)/§4.2 per-stage red-line content. - 2026-07-06 (G9 integration wiring): Fixed the two root causes of E-Q4 (satellite contract only half-locked—"linked X" narrative verbs could be legally bypassed, and in real-world L11 500 lines of matplotlib were handwritten on the spot and failed; delivery packaging had zero specification, and the real-world delivery checklist was invented on the spot). ①Added §13.4 Satellite Dependency Matrix: five-satellite four-tuple hard contract [when to call/command or entry point/IO contract/degradation when missing] (ma-plots built-in renderer / manuscript-typeset default submission four-piece set / academic-ref-check SP7 fail-closed / paper-search-pro pointer §11.1 / d2m+paper-downloader-portable via G6 request package+dependency tier), with each row's degradation explicitly prohibiting silent degradation; ②Added §12.4 L12 delivery packaging: five steps (delivery area assembly → manifest five-section template
delivery-manifest-template.md[§2 name-value binding spot check+§3a override PLACEHOLDERS] → manuscript-typeset default four-piece set → L12.5 review package build → two00_files separated and interlinked [D-8]), pure SR path follows the same specification; ③§13.2 title dual-locking-ized + appended labels mechanical same-source discipline additive section (G7 re-verification lesson: labels must not be hand-made, display name↔study_id↔value three-way consistency=third-category check; G7 section successor additive, blueprint §5-G9 authorization); ④stale "linked ssci-plots" fact synchronization (frontmatter pairs_with add manuscript-typeset / line 17 intro final sentence / §1.2 table / §2 line 53 / §3.2 / §4.1 table / §4.4 title+bullet / §12.1 / §12.3 four comments / §13.1 figure caption / §13.3 table)—only wording and fact synchronization: S2 bridging philosophy sentence, S4 §12.3 table body row names and lock 4 extension coexistence ruling substance, G5 §4.4 ratification ② section, G6 §4.2 blockquote all remain unchanged word for word. Avoid §5(S2/S5)/§9.1(G1)/§11.1(S7)/G5 owned §3.1/§6/§8/§3.3/§12.2/§14. ⑤references consumption surface same-source synchronization (whole-library acceptance criteria):subagent-templates.md§15 Chart-Bridge template changed to fixed renderer four commands+labels discipline (the original teaching of hand-constructing a list to feed ssci-plots+runtime path must-read=lived instruction contradicting §13.2) /L9-r-code-templates.mdTOC+§10 title+§10.0 final sentence+§10.1 note+:114 R comment /L11-mars-reporting.md:26 lead-in+§6.3 /L9.9-publication-bias.md:49 comment+§7 /quality-control.mdcheck line /L9.6-subgroup-metaregression.mdbubble line pointerized (ssci-plots=the correct role of the general chart exit, not a remnant). ⑥After critic cross-review (G9_execution/12), added fixes: §12.4 five steps reordered (typeset→review package→manifest, fixing the inversion where "manifest required input depends on subsequent steps"); L9.9 :328 self-check line / L9-r §10.2 final block and table header / SSOT-PICO :820 and other consumption-surface leaked live ssci-plots instructions cleared to zero (acceptance grep keywords expanded from "linked" to "linked|ssci-plots rendering|calling ssci-plots").
SKILL.md end. For detailed methodology see references/ + scripts/ + base SSOT.