medsci-skills 5.10.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/metadata/distribution_files.json +51 -36
  2. package/metadata/distribution_manifest.json +1 -1
  3. package/package.json +1 -1
  4. package/skills/humanize/SKILL.md +2 -0
  5. package/skills/peer-review/SKILL.md +9 -9
  6. package/skills/peer-review/references/domain-probes/ai_overclaiming.md +5 -0
  7. package/skills/peer-review/references/domain-probes/diagnostic_accuracy.md +14 -0
  8. package/skills/peer-review/references/domain-probes/observational_confounding.md +5 -0
  9. package/skills/peer-review/references/domain-probes/sr_ma.md +11 -0
  10. package/skills/self-review/SKILL.md +31 -5
  11. package/skills/self-review/references/domain-probes/ai_overclaiming.md +5 -0
  12. package/skills/self-review/references/domain-probes/diagnostic_accuracy.md +14 -0
  13. package/skills/self-review/references/domain-probes/observational_confounding.md +5 -0
  14. package/skills/self-review/references/domain-probes/sr_ma.md +11 -0
  15. package/skills/self-review/scripts/check_binning_consistency.py +12 -6
  16. package/skills/self-review/scripts/check_claim_artifact.py +66 -15
  17. package/skills/self-review/scripts/check_classical_style.py +15 -1
  18. package/skills/self-review/scripts/check_emphasis_density.py +155 -0
  19. package/skills/self-review/scripts/check_figure_citation.py +135 -0
  20. package/skills/self-review/scripts/check_null_calibration.py +34 -16
  21. package/skills/self-review/scripts/check_rounded_delta.py +169 -0
  22. package/skills/self-review/scripts/check_scope_coherence.py +17 -1
  23. package/skills/self-review/scripts/check_supplement_hygiene.py +45 -0
  24. package/skills/self-review/skill.yml +3 -0
  25. package/skills/self-review/tests/fixtures/claim_manuscript_structured.md +6 -0
  26. package/skills/self-review/tests/fixtures/claim_prereg_structured.md +9 -0
  27. package/skills/self-review/tests/fixtures/classical_metadoc.md +8 -0
  28. package/skills/self-review/tests/fixtures/derived_clean_dfalias/03_cohort.py +7 -0
  29. package/skills/self-review/tests/fixtures/derived_clean_dfalias/08_sensitivity.py +8 -0
  30. package/skills/self-review/tests/fixtures/emphasis_clean.md +6 -0
  31. package/skills/self-review/tests/fixtures/emphasis_overuse.md +6 -0
  32. package/skills/self-review/tests/fixtures/figure_clean.md +11 -0
  33. package/skills/self-review/tests/fixtures/figure_orphan.md +10 -0
  34. package/skills/self-review/tests/fixtures/null_region_masked.md +15 -0
  35. package/skills/self-review/tests/fixtures/rounded_delta_bad.md +3 -0
  36. package/skills/self-review/tests/fixtures/rounded_delta_clean.md +4 -0
  37. package/skills/self-review/tests/fixtures/scope_metadoc.md +12 -0
  38. package/skills/self-review/tests/fixtures/supplement_pii_clean.md +5 -0
  39. package/skills/self-review/tests/fixtures/supplement_pii_tie.md +6 -0
  40. package/skills/self-review/tests/test_binning_consistency.sh +10 -0
  41. package/skills/self-review/tests/test_claim_artifact.sh +16 -0
  42. package/skills/self-review/tests/test_classical_style.sh +12 -0
  43. package/skills/self-review/tests/test_emphasis_density.sh +31 -0
  44. package/skills/self-review/tests/test_figure_citation.sh +39 -0
  45. package/skills/self-review/tests/test_null_calibration.sh +8 -0
  46. package/skills/self-review/tests/test_rounded_delta.sh +35 -0
  47. package/skills/self-review/tests/test_scope_coherence.sh +12 -0
  48. package/skills/self-review/tests/test_supplement_hygiene.sh +17 -0
@@ -1658,8 +1658,8 @@
1658
1658
  },
1659
1659
  {
1660
1660
  "path": "skills/humanize/SKILL.md",
1661
- "size": 13461,
1662
- "sha256": "78e12b996cacfa5b1b16b0a0fe26cee5dd72cb990b70f26e90041d6e0eb65c9a"
1661
+ "size": 14240,
1662
+ "sha256": "f179598c74b1ab0b3d6639fdd26b8cafa33713a9ebe9374aad5d31571340d836"
1663
1663
  },
1664
1664
  {
1665
1665
  "path": "skills/humanize/references/ai_patterns.md",
@@ -2923,8 +2923,8 @@
2923
2923
  },
2924
2924
  {
2925
2925
  "path": "skills/peer-review/SKILL.md",
2926
- "size": 68213,
2927
- "sha256": "51feccb82dca34a28a0b9ace5467d23ddc654056af2cd9e152a4559cf074cfc3"
2926
+ "size": 68302,
2927
+ "sha256": "bf56fbc16bb3e43fb43f09982d36e68f53f8b0f666564e2828e692472ad0660f"
2928
2928
  },
2929
2929
  {
2930
2930
  "path": "skills/peer-review/references/aczel_2021_reviewer2_patterns.md",
@@ -2933,8 +2933,8 @@
2933
2933
  },
2934
2934
  {
2935
2935
  "path": "skills/peer-review/references/domain-probes/ai_overclaiming.md",
2936
- "size": 14205,
2937
- "sha256": "565aa362e20ea6ca923510ea393829fb851e0caaae3d732f99144dd48a25b951"
2936
+ "size": 15410,
2937
+ "sha256": "bdb07002bf0b351579036937af5bf149e35389a218198699b81d31dc2fda7ec9"
2938
2938
  },
2939
2939
  {
2940
2940
  "path": "skills/peer-review/references/domain-probes/case_report.md",
@@ -2948,8 +2948,8 @@
2948
2948
  },
2949
2949
  {
2950
2950
  "path": "skills/peer-review/references/domain-probes/diagnostic_accuracy.md",
2951
- "size": 9002,
2952
- "sha256": "8232e2023d3c4d52e6a2d9003ae335302d6fe78c54d39b81f591c07becaf4df0"
2951
+ "size": 11692,
2952
+ "sha256": "afc69e56578babcc1cf7c7952d2df301fdc829329fb480a5cf426ff6ab65d9f5"
2953
2953
  },
2954
2954
  {
2955
2955
  "path": "skills/peer-review/references/domain-probes/equity_fairness.md",
@@ -2993,8 +2993,8 @@
2993
2993
  },
2994
2994
  {
2995
2995
  "path": "skills/peer-review/references/domain-probes/observational_confounding.md",
2996
- "size": 33429,
2997
- "sha256": "ac1736047c069aa47df76deea92379cae407043b6989d8d3fc77db8fd84b0031"
2996
+ "size": 34617,
2997
+ "sha256": "ec4a11caed6d604e510437827f2b979fcf43ab1ddea6b298eb95673472b2b459"
2998
2998
  },
2999
2999
  {
3000
3000
  "path": "skills/peer-review/references/domain-probes/polygenic_risk_score.md",
@@ -3028,8 +3028,8 @@
3028
3028
  },
3029
3029
  {
3030
3030
  "path": "skills/peer-review/references/domain-probes/sr_ma.md",
3031
- "size": 17239,
3032
- "sha256": "486d569f559f16d62b882f7256ccfe7443e3e2b4cc72a407a5cd046162a98b25"
3031
+ "size": 20154,
3032
+ "sha256": "82ccb4abc1ab1fffaf528268baad6c79e67c9b2ff929c14d7dcccb9677e10ddc"
3033
3033
  },
3034
3034
  {
3035
3035
  "path": "skills/peer-review/references/domain-probes/survey_research.md",
@@ -3488,13 +3488,13 @@
3488
3488
  },
3489
3489
  {
3490
3490
  "path": "skills/self-review/SKILL.md",
3491
- "size": 102413,
3492
- "sha256": "97219c57684d4eaced9e35b0968ca09da7731095c186a4e97757b4039f43f2f6"
3491
+ "size": 104028,
3492
+ "sha256": "22bc51c9adcb1fc9ff9120c2650faaa2f5f3a0482fe1fd781e231e2191e21081"
3493
3493
  },
3494
3494
  {
3495
3495
  "path": "skills/self-review/references/domain-probes/ai_overclaiming.md",
3496
- "size": 14205,
3497
- "sha256": "565aa362e20ea6ca923510ea393829fb851e0caaae3d732f99144dd48a25b951"
3496
+ "size": 15410,
3497
+ "sha256": "bdb07002bf0b351579036937af5bf149e35389a218198699b81d31dc2fda7ec9"
3498
3498
  },
3499
3499
  {
3500
3500
  "path": "skills/self-review/references/domain-probes/case_report.md",
@@ -3508,8 +3508,8 @@
3508
3508
  },
3509
3509
  {
3510
3510
  "path": "skills/self-review/references/domain-probes/diagnostic_accuracy.md",
3511
- "size": 9002,
3512
- "sha256": "8232e2023d3c4d52e6a2d9003ae335302d6fe78c54d39b81f591c07becaf4df0"
3511
+ "size": 11692,
3512
+ "sha256": "afc69e56578babcc1cf7c7952d2df301fdc829329fb480a5cf426ff6ab65d9f5"
3513
3513
  },
3514
3514
  {
3515
3515
  "path": "skills/self-review/references/domain-probes/equity_fairness.md",
@@ -3553,8 +3553,8 @@
3553
3553
  },
3554
3554
  {
3555
3555
  "path": "skills/self-review/references/domain-probes/observational_confounding.md",
3556
- "size": 33429,
3557
- "sha256": "ac1736047c069aa47df76deea92379cae407043b6989d8d3fc77db8fd84b0031"
3556
+ "size": 34617,
3557
+ "sha256": "ec4a11caed6d604e510437827f2b979fcf43ab1ddea6b298eb95673472b2b459"
3558
3558
  },
3559
3559
  {
3560
3560
  "path": "skills/self-review/references/domain-probes/polygenic_risk_score.md",
@@ -3588,8 +3588,8 @@
3588
3588
  },
3589
3589
  {
3590
3590
  "path": "skills/self-review/references/domain-probes/sr_ma.md",
3591
- "size": 17239,
3592
- "sha256": "486d569f559f16d62b882f7256ccfe7443e3e2b4cc72a407a5cd046162a98b25"
3591
+ "size": 20154,
3592
+ "sha256": "82ccb4abc1ab1fffaf528268baad6c79e67c9b2ff929c14d7dcccb9677e10ddc"
3593
3593
  },
3594
3594
  {
3595
3595
  "path": "skills/self-review/references/domain-probes/survey_research.md",
@@ -3658,8 +3658,8 @@
3658
3658
  },
3659
3659
  {
3660
3660
  "path": "skills/self-review/scripts/check_binning_consistency.py",
3661
- "size": 19541,
3662
- "sha256": "e3bf7dd2e0871ce6905abc1d33a26c7afac76a93d184bfe2d431af97d0622f74"
3661
+ "size": 20076,
3662
+ "sha256": "c6467eb4a1d954d67da87e283d8a628604a9ec7558c966f8b20c1b661e23b9c9"
3663
3663
  },
3664
3664
  {
3665
3665
  "path": "skills/self-review/scripts/check_citation_order.py",
@@ -3668,13 +3668,13 @@
3668
3668
  },
3669
3669
  {
3670
3670
  "path": "skills/self-review/scripts/check_claim_artifact.py",
3671
- "size": 13065,
3672
- "sha256": "ac29a7e8145152e6641fce8eaf98766cfc943a034db72252cc38538d7ab59db2"
3671
+ "size": 15879,
3672
+ "sha256": "1daa64eaabe493f05ae7e2129a2056b673ec588487d5b6c73f41f10104822935"
3673
3673
  },
3674
3674
  {
3675
3675
  "path": "skills/self-review/scripts/check_classical_style.py",
3676
- "size": 12210,
3677
- "sha256": "c973ee8b776f28515439fb185e1254e08e62c2e1410e260f18a824241a331af0"
3676
+ "size": 13124,
3677
+ "sha256": "941d90559cdcdd24f3eba58daf00eb34a7d227c3fe44267b93b65b80b6092989"
3678
3678
  },
3679
3679
  {
3680
3680
  "path": "skills/self-review/scripts/check_cohort_arithmetic.py",
@@ -3691,10 +3691,20 @@
3691
3691
  "size": 22032,
3692
3692
  "sha256": "42e0e9315e1c97ca0f9943213c65ea91d7064773d25287b2577f0386dfb7fc41"
3693
3693
  },
3694
+ {
3695
+ "path": "skills/self-review/scripts/check_emphasis_density.py",
3696
+ "size": 6626,
3697
+ "sha256": "79e517942c1eca4f879fa2b05e6497f93fe6f4d53ed58ca98e240bf5b44c4821"
3698
+ },
3699
+ {
3700
+ "path": "skills/self-review/scripts/check_figure_citation.py",
3701
+ "size": 5298,
3702
+ "sha256": "342bc1126a420111da9c0fe38c6cd68cc45542b0e485202689d7219de9d80712"
3703
+ },
3694
3704
  {
3695
3705
  "path": "skills/self-review/scripts/check_null_calibration.py",
3696
- "size": 7594,
3697
- "sha256": "9ddff01722c34efb6ffd757ae762c6ee12f5993bf13b11313c2e20b60b26cab3"
3706
+ "size": 8585,
3707
+ "sha256": "e5bd71c515554b3acbaefd3807e584364a536dc6e1101bec5b524bc26b341309"
3698
3708
  },
3699
3709
  {
3700
3710
  "path": "skills/self-review/scripts/check_panel_diversity.py",
@@ -3716,20 +3726,25 @@
3716
3726
  "size": 15481,
3717
3727
  "sha256": "c9cd8e47cfef1ffcea12ecda5314a71ccd5415f35f4f296addadf53ccb6ceb3b"
3718
3728
  },
3729
+ {
3730
+ "path": "skills/self-review/scripts/check_rounded_delta.py",
3731
+ "size": 7079,
3732
+ "sha256": "2961dd0b25dcd06f202442004e08f2d98c6f2d4c337be3f8b0e3286a59952072"
3733
+ },
3719
3734
  {
3720
3735
  "path": "skills/self-review/scripts/check_scope_coherence.py",
3721
- "size": 10818,
3722
- "sha256": "820dfc264c2a4f62c79c0c7123a3e1a8b59a100b89654617a08ff55deeb25a75"
3736
+ "size": 11920,
3737
+ "sha256": "e600e54fcbe308060a8dadd871ec274b6ae19f89456ae0194490e152c0d09a91"
3723
3738
  },
3724
3739
  {
3725
3740
  "path": "skills/self-review/scripts/check_supplement_hygiene.py",
3726
- "size": 11088,
3727
- "sha256": "f89027472cdf0258357c3b0f0b0f3fec09b5ea65cc1373292797b818d1acf444"
3741
+ "size": 13579,
3742
+ "sha256": "c61bd5e485d2bce4a6efd7bf2a7980aa0d31ebecb876a7c6895fd12cb6bf7f1c"
3728
3743
  },
3729
3744
  {
3730
3745
  "path": "skills/self-review/skill.yml",
3731
- "size": 2223,
3732
- "sha256": "4009f3148776fab2096da3dad8a15e503c5073b4cc66b42c57498948e2040270"
3746
+ "size": 2345,
3747
+ "sha256": "91883d75f33ee873a6ebfbd4d5f2cf0c292d3b90fe4705d6a35e82a26ecf6523"
3733
3748
  },
3734
3749
  {
3735
3750
  "path": "skills/setup-medsci/SKILL.md",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema_version": 1,
3
- "version": "5.10.0",
3
+ "version": "5.11.0",
4
4
  "owned_skills": [
5
5
  "academic-aio",
6
6
  "add-journal",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "medsci-skills",
3
- "version": "5.10.0",
3
+ "version": "5.11.0",
4
4
  "description": "MedSci Skills — a medical/scientific research skill suite for AI coding agents (Claude Code, Codex, Cursor, Copilot). The npm package is a terminal-friendly installer shortcut; the canonical distribution remains the GitHub repository and the Claude Code plugin marketplace.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://github.com/Aperivue/medsci-skills#readme",
@@ -178,6 +178,7 @@ If the density remains above 2.0, run another fix-verify cycle (max 3 rounds).
178
178
  | 19 | § (section sign) marker | "as in §2.3", "(see §Discussion)", "§Results" | Delete or replace with section name ("Methods", "Results") — `grep -c "§"` = 0 |
179
179
  | 20 | Methods/Results self-reference parenthetical | "(Methods §X)", "(Results §3.1)", "(Methods, Section 2.3)" | Drop the parenthetical or shorten to "(see Methods)" |
180
180
  | 21 | AI Disclosure boilerplate (body) | "## Artificial Intelligence Disclosure", "Generative AI was not used to create..." in manuscript body | Remove from body → place in cover letter / submission form only (per `~/.claude/rules/journal-ai-image-policies.md`) |
181
+ | 25 | Inline-emphasis over-use (typographic over-signposting) | Single-word italics (*into*, *passive*, *same*), whole-clause italics (*a redesign of the relationship itself*), bold used mid-paragraph to signpost | Remove inline emphasis; keep only legitimate italics — statistical symbols (*P*, *t*, *n*), Latin (*in vivo*, *et al.*), gene/species (*BRCA1*). A bold **run-in subheading** at line start is fine (Nature/npj style) |
181
182
 
182
183
  ### Response-Letter Patterns (R2R)
183
184
 
@@ -247,6 +248,7 @@ the pass/fail status.
247
248
  | Pattern 19 — `§` symbol | ENFORCED (senior MA reviewer prep) | `grep -c "§" manuscript.md` > 0 | auto-strip; verify post-rewrite count == 0 |
248
249
  | Pattern 20 — `(see Methods §X)` self-reference | ENFORCED | match found | rewrite to direct section name reference |
249
250
  | Pattern 21 — AI Disclosure paragraph in body | ENFORCED | "Generative AI was not used..." paragraph in manuscript body | move to cover letter or remove |
251
+ | Pattern 25 — inline-emphasis over-use | ENFORCED | italic-emphasis density over threshold after allowlist | run `/self-review` `scripts/check_emphasis_density.py --manuscript manuscript.md`; `EMPHASIS_OVERUSE` (Minor) means strip inline italics (keep only stat symbols / Latin / gene-species); whole-clause italics are the strongest tell |
250
252
  | Patterns 22-24 — R2R editing-mechanism / draft line-number / tooling leak | TRIAGE (response letters); `§` = 0 hard | detection greps in ai_patterns.md R2R section surface candidates | review each hit (analysis narration, quoted additions, revised-manuscript page/line are NOT tells); rewrite confirmed tells to substantive prose |
251
253
  | Citation preservation invariant | ENFORCED | any pre-existing `[@bibkey]` removed by rewrite | revert that single rewrite; flag for user |
252
254
  | Numerical preservation invariant | ENFORCED | any number changed by rewrite | revert; flag for user |
@@ -135,11 +135,11 @@ confidential note and the recommendation are consistent.
135
135
 
136
136
  ### Phase 2A: Systematic Review / Meta-Analysis Extension
137
137
 
138
- Apply this internal-consistency-first gate (P0) plus 17-probe checklist (P1–P17) **only when manuscript type is "Systematic Review", "Meta-Analysis", or "Systematic Review and Meta-Analysis"**. These probes complement (do not replace) the generic Phase 2 issue checklist.
138
+ Apply this internal-consistency-first gate (P0) plus 19-probe checklist (P1–P19) **only when manuscript type is "Systematic Review", "Meta-Analysis", or "Systematic Review and Meta-Analysis"**. These probes complement (do not replace) the generic Phase 2 issue checklist.
139
139
 
140
140
  **SR-MA reviews almost always justify Tier 3 word budget** (1000-1400w) — apply ≥3 of P1-P10 triggering = Tier 3 default.
141
141
 
142
- **Probe detail (P0–P17), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/sr_ma.md`. Load it and apply each probe when the trigger above fires. In this skill, map each probe finding to the review draft as a Major / Minor comment; route conclusion-threatening or integrity findings into the Confidential Comments to the Editor, and place a confirmed error that drives a headline claim as the Major #1 candidate.
142
+ **Probe detail (P0–P19), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/sr_ma.md`. Load it and apply each probe when the trigger above fires. In this skill, map each probe finding to the review draft as a Major / Minor comment; route conclusion-threatening or integrity findings into the Confidential Comments to the Editor, and place a confirmed error that drives a headline claim as the Major #1 candidate.
143
143
 
144
144
  ### Phase 2B: Survival / Prognostic Model Extension
145
145
 
@@ -182,14 +182,14 @@ The original-research probes (Phase 2 issue checklist, Phase 2A/2B/2C) do not tr
182
182
 
183
183
  ### Phase 2E: Observational / Confounding Extension
184
184
 
185
- Apply this 16-probe checklist (O1–O16) **only when the manuscript is an observational study** (cohort, case-control, cross-sectional, health-screening / registry) **whose central claim is an adjusted exposure–outcome association** estimated by covariate adjustment rather than randomization. These probes complement (do not replace) the generic Phase 2 issue checklist and the STROBE reporting items; they target the gap between the stated adjustment set and what the exposure-stratified Table 1 shows.
185
+ Apply this 18-probe checklist (O1–O18) **only when the manuscript is an observational study** (cohort, case-control, cross-sectional, health-screening / registry) **whose central claim is an adjusted exposure–outcome association** estimated by covariate adjustment rather than randomization. These probes complement (do not replace) the generic Phase 2 issue checklist and the STROBE reporting items; they target the gap between the stated adjustment set and what the exposure-stratified Table 1 shows.
186
186
 
187
187
  **Exempt**:
188
188
  - Randomized trials (confounding controlled by design → Phase 2 + CONSORT)
189
189
  - Purely descriptive / prevalence reports with no adjusted association claim
190
190
  - Diagnostic-accuracy studies with no exposure–outcome estimand (→ Phase 2A DTA cells + categories A–C)
191
191
 
192
- **Probe detail (O1–O16), with output templates:** `${CLAUDE_SKILL_DIR}/references/domain-probes/observational_confounding.md`. Load it and apply each probe when the trigger above fires. O1 (a measured covariate imbalanced by exposure in Table 1 yet absent from the adjustment set), O7 (an outcome consequence/mediator wrongly adjusted — the opposite-direction failure, e.g. serum uric acid in an eGFR model), and O8 (records > subjects with the analysis unit undisclosed) are data-checkable and the highest-yield probes — verify O1/O7 against the manuscript's own Table 1 and run the records-vs-subjects check for O8. In this skill, map each probe finding to the review draft as a Major / Minor comment; a confounding-completeness gap (O1), over-adjustment that moves the headline estimate (O7), a selection/collider structure (O3), undisclosed repeat-subject clustering (O8), an undisclosed complete-case collapse (O5), a report-derived outcome with no construct-validity defence (O9), an inferential effect-size gradient across overlapping/nested subsets with no difference/interaction test (O10), an ignored/mis-specified complex-survey design (O11, NHANES/KNHANES weights without strata+PSU, or a subgroup by row-deletion), a data-mined inflection-point/'saturation' cutoff (O12), a cross-sectional mediation claimed as a causal chain without a temporal-order caveat / M–Y-confounding sensitivity (O13), or a synergy/joint-effect claim on the wrong interaction scale — multiplicative-only or joint-category ORs with no additive RERI/AP/S (O14) — is design-level, so surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate rather than softening it to a reporting fix.
192
+ **Probe detail (O1–O18), with output templates:** `${CLAUDE_SKILL_DIR}/references/domain-probes/observational_confounding.md`. Load it and apply each probe when the trigger above fires. O1 (a measured covariate imbalanced by exposure in Table 1 yet absent from the adjustment set), O7 (an outcome consequence/mediator wrongly adjusted — the opposite-direction failure, e.g. serum uric acid in an eGFR model), and O8 (records > subjects with the analysis unit undisclosed) are data-checkable and the highest-yield probes — verify O1/O7 against the manuscript's own Table 1 and run the records-vs-subjects check for O8. In this skill, map each probe finding to the review draft as a Major / Minor comment; a confounding-completeness gap (O1), over-adjustment that moves the headline estimate (O7), a selection/collider structure (O3), undisclosed repeat-subject clustering (O8), an undisclosed complete-case collapse (O5), a report-derived outcome with no construct-validity defence (O9), an inferential effect-size gradient across overlapping/nested subsets with no difference/interaction test (O10), an ignored/mis-specified complex-survey design (O11, NHANES/KNHANES weights without strata+PSU, or a subgroup by row-deletion), a data-mined inflection-point/'saturation' cutoff (O12), a cross-sectional mediation claimed as a causal chain without a temporal-order caveat / M–Y-confounding sensitivity (O13), or a synergy/joint-effect claim on the wrong interaction scale — multiplicative-only or joint-category ORs with no additive RERI/AP/S (O14) — is design-level, so surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate rather than softening it to a reporting fix.
193
193
 
194
194
  ### Phase 2E-2: Clinical Prediction-Model Extension
195
195
 
@@ -201,7 +201,7 @@ Apply this 4-probe checklist (CP1–CP4) **only when the manuscript develops or
201
201
 
202
202
  Apply when an AI/ML **primary study** (diagnostic, prognostic, triage, detection) makes a clinical claim in the Title/Abstract/Conclusion — generalizable, outperforms clinicians, deployment-ready, can replace a reader. Complements Phase 2F (recommendation calibration) and the signature "Overclaiming vs evidence level" check; co-applies with Phase 2C for radiomics-AI and Phase 2B for prognostic-AI.
203
203
 
204
- **Probe detail (AO0–AO6), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/ai_overclaiming.md`. Load it and apply each probe when the trigger fires. Run AO0 first — locate the load-bearing claim and read it together with its cited evidence before alleging over-reach (a hedged Discussion qualifier is not a headline). In this skill, map each probe finding to the review draft as a Major / Minor comment; a headline generalizability (AO1), superiority/replacement (AO2/AO3), or deployment-readiness (AO4) claim that outruns the design is framing-level — surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate when it is the paper's headline. AO5 catches over-reach in the reported metric itself (best-fold headline without cross-fold CI/SD, unstated/test-tuned operating point, rebalanced-accuracy, or a code-vs-claims mismatch); pair it with the `exemplar_reviews/optimistic_validation_reporting.md` phrasing model and raise it as Major when it carries the headline.
204
+ **Probe detail (AO0–AO7), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/ai_overclaiming.md`. Load it and apply each probe when the trigger fires. Run AO0 first — locate the load-bearing claim and read it together with its cited evidence before alleging over-reach (a hedged Discussion qualifier is not a headline). In this skill, map each probe finding to the review draft as a Major / Minor comment; a headline generalizability (AO1), superiority/replacement (AO2/AO3), or deployment-readiness (AO4) claim that outruns the design is framing-level — surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate when it is the paper's headline. AO5 catches over-reach in the reported metric itself (best-fold headline without cross-fold CI/SD, unstated/test-tuned operating point, rebalanced-accuracy, or a code-vs-claims mismatch); pair it with the `exemplar_reviews/optimistic_validation_reporting.md` phrasing model and raise it as Major when it carries the headline.
205
205
 
206
206
  ### Phase 2G-2: Model-Development / Validation-Integrity Extension
207
207
 
@@ -223,9 +223,9 @@ Apply this 8-probe checklist (RC0–RC7) **only when the manuscript is a randomi
223
223
 
224
224
  ### Phase 2I: Diagnostic-Accuracy / Reader-Study Extension
225
225
 
226
- Apply this 8-probe checklist (D1–D8) **only when the manuscript is a diagnostic test accuracy (DTA) primary study** — an index test against a reference standard — including **multi-reader multi-case (MRMC)** reader studies (AI-vs-reader or modality comparison). These probes complement (do not replace) the generic Phase 2 issue checklist and the STARD / QUADAS-2 items; they target verification/spectrum/blinding bias and the MRMC design/variance issues a reader study adds. (For a DTA **meta-analysis**, use Phase 2A / `sr_ma.md`.)
226
+ Apply this 11-probe checklist (D1–D11) **only when the manuscript is a diagnostic test accuracy (DTA) primary study** — an index test against a reference standard — including **multi-reader multi-case (MRMC)** reader studies (AI-vs-reader or modality comparison). These probes complement (do not replace) the generic Phase 2 issue checklist and the STARD / QUADAS-2 items; they target verification/spectrum/blinding bias and the MRMC design/variance issues a reader study adds. (For a DTA **meta-analysis**, use Phase 2A / `sr_ma.md`.)
227
227
 
228
- **Probe detail (D1–D8), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/diagnostic_accuracy.md`. Load it and apply each probe when the trigger fires. In this skill, map each probe finding to the review draft as a Major / Minor comment; two-gate (case-control) sampling (D2), verification/incorporation bias (D1), or an MRMC analysis that ignores reader variance (D6) is design/analysis-level — surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate. Pairs the `analyze-stats` `table-types/reader_study.md` table and the `make-figures` `exemplar_plots/mrmc_roc.md` figure; a test-set-tuned operating threshold pairs with `exemplar_reviews/optimistic_validation_reporting.md`.
228
+ **Probe detail (D1–D11), with output templates and the leads-vs-findings discipline:** `${CLAUDE_SKILL_DIR}/references/domain-probes/diagnostic_accuracy.md`. Load it and apply each probe when the trigger fires. In this skill, map each probe finding to the review draft as a Major / Minor comment; two-gate (case-control) sampling (D2), verification/incorporation bias (D1), or an MRMC analysis that ignores reader variance (D6) is design/analysis-level — surface it in the Confidential Comments to the Editor and place it as the Major #1 candidate. Pairs the `analyze-stats` `table-types/reader_study.md` table and the `make-figures` `exemplar_plots/mrmc_roc.md` figure; a test-set-tuned operating threshold pairs with `exemplar_reviews/optimistic_validation_reporting.md`.
229
229
 
230
230
  ### Phase 2J: Case-Report Extension
231
231
 
@@ -396,7 +396,7 @@ After drafting, verify mechanically:
396
396
  - ≥50% of Minor requests use hedged forms ("I'd suggest," "could," "would help") rather than imperative ("must," bare "Please [verb]")
397
397
  - General Comments names ≥2 specific strengths before listing concerns
398
398
  - At most 1 typo/grammar Minor Comment, only if in formal section or systematic
399
- 9. **SR-MA-specific QC** (if Phase 2A applied): Confirm the P0 internal-consistency gate was run before any fabrication claim. For each P1–P17 probe used, verify the corresponding Major comment cites source PMID + source page/table reference + verbatim quote, and that no probe lead was promoted to a finding without source confirmation (leads-vs-findings discipline). Reviews citing extraction errors without source-page reference are not actionable for authors.
399
+ 9. **SR-MA-specific QC** (if Phase 2A applied): Confirm the P0 internal-consistency gate was run before any fabrication claim. For each P1–P19 probe used, verify the corresponding Major comment cites source PMID + source page/table reference + verbatim quote, and that no probe lead was promoted to a finding without source confirmation (leads-vs-findings discipline). Reviews citing extraction errors without source-page reference are not actionable for authors.
400
400
  10. **Radiomics-reproducibility QC** (if Phase 2C applied): If an acquisition-parameter sweep predicts an outcome from its own grid axes (R1 design-grid circularity) or the substantive result is a cross-domain failure framed as success (R3), confirm the recommendation reflects design-level severity and is not softened to a reporting fix. Where a model × threshold/cohort grid yields a few p < 0.05, confirm the multiplicity / expected-false-positive count is named (R4), not deferred to "statistical review needed."
401
401
  11. **Review-article QC** (if Phase 2D applied): Confirm RV1–RV9 are reflected — in particular that novelty/value-add (RV1) is raised for a saturated topic and that gap-filling (RV8) is present, not just error-spotting. Verify SANRA is used as an appraisal aid, not over-enforced as a reporting guideline (no PRISMA demand on a narrative review; only RV3 is SANRA-aligned and phrased as a suggestion). Verify every suggested addition uses "consider adding" phrasing (no "must cite"), is source-confirmed, and that preprints are labeled as preprints (not equated with peer-reviewed guidelines). Confirm Phase 2F was run for the recommendation: when RV1 novelty is a Major in a saturated space with no distinct contribution, the recommendation is escalated toward Reject (the contribution IS the product — weak novelty is unfixable-in-current-form), not defaulted to the revision/Reconsider tier.
402
402
  12. **AI/method/review priority QC**: Before a Major Revision (or Reconsider) recommendation, confirm Phase 2F
@@ -466,7 +466,7 @@ For radiomic feature-reproducibility / phantom parameter-sweep / reliability-fil
466
466
 
467
467
  For Review / narrative / primer / state-of-the-art manuscripts, apply the Phase 2D 9-probe audit (novelty/value-add, scope/aims, evidence-gathering transparency, technical/medical accuracy, taxonomy/synthesis coherence, balance/currency/citation accuracy, load-bearing figures/tables, constructive gap-filling, curated-base circularity) in place of the original-research probes — error-spotting plus proportionate gap-filling, with SANRA used as an appraisal aid only.
468
468
 
469
- For observational studies whose central claim is an adjusted exposure–outcome association, also apply the Phase 2E 16-probe audit (confounding completeness, adjustment-set provenance, selection/collider bias, exposure measurement validity, missing-data / complete-case collapse, residual-confounding E-value, over-adjustment, analysis-unit/clustering, outcome construct validity, overlapping-subset gradient, complex-survey design & weighting, data-driven threshold mining, cross-sectional mediation, interaction scale, selection on modality/procedure availability, serial-imaging lesion-tracking), with O1 (a measured covariate imbalanced by exposure in Table 1 yet absent from the adjustment set) and O7 (an outcome consequence/mediator wrongly adjusted) checked against the manuscript's own Table 1.
469
+ For observational studies whose central claim is an adjusted exposure–outcome association, also apply the Phase 2E 18-probe audit (confounding completeness, adjustment-set provenance, selection/collider bias, exposure measurement validity, missing-data / complete-case collapse, residual-confounding E-value, over-adjustment, analysis-unit/clustering, outcome construct validity, overlapping-subset gradient, complex-survey design & weighting, data-driven threshold mining, cross-sectional mediation, interaction scale, selection on modality/procedure availability, serial-imaging lesion-tracking, many-exposure agnostic-scan multiplicity, pseudoreplication in multi-rater agreement), with O1 (a measured covariate imbalanced by exposure in Table 1 yet absent from the adjustment set) and O7 (an outcome consequence/mediator wrongly adjusted) checked against the manuscript's own Table 1.
470
470
 
471
471
  For cross-modality image-synthesis manuscripts (MRI→PET / MRI→CT / non-contrast→contrast / low-dose→full-dose) that claim functional/molecular information or a substitute for the unavailable target modality, also apply the Phase 2K 4-probe audit (IS1 determinism/information-ceiling vs a source→label baseline, IS2 target-derived-preprocessing/slice-selection leakage, IS3 global vs lesion-level quantitative agreement, IS4 mechanistic/proxy-signal plausibility); IS2 and IS4 are typically unfixable-in-current-form and govern the recommendation per Phase 2F.
472
472
 
@@ -49,6 +49,11 @@ A 5-probe checklist (AO1–AO5, with AO0 as a gate) for medical-AI/ML primary st
49
49
  - (b) **Success-conditioned selection** — the arm or the analyzed subset is gated on an AI-success condition (cases where the model produced an output, segmentations that "passed", studies the pipeline did not fail on), so the comparison is conditioned on the very thing under test.
50
50
  - This is a **design/paradigm-level** defect: the operationalized task, not the prose, is mis-specified, so it cannot be fixed by rewording the claim — escalate **past an ordinary Major** (editors read it as a Reject-grade construct-validity failure; a panel that files it as a fixable Major under-rates it). The fix is a re-designed arm whose task matches the intended deployment workflow and an unconditioned (consecutive / intention-to-diagnose) analysis set.
51
51
 
52
+ **AO7 — Comparative "within/comparable-to X variability" claim whose benchmark X was never quantified**:
53
+ - When the Abstract / hypothesis / Conclusion asserts that a result falls **"within inter-expert variability"**, **"comparable to the reference range"**, or **"on par with human readers"**, the named comparator quantity (the inter-expert spread, the human-reader range) must actually be **computed and reported** in Results / a Table. A benchmark claim whose benchmark does not exist in the paper is an unbenchmarked overclaim — the reader cannot check the comparison because the "within X" bound was never measured (e.g. an agreement-envelope was computed but the *volume* inter-expert spread it is compared against was not).
54
+ - Lead: for each "within / comparable-to / on par with `<comparator>` variability|range|performance" claim, verify the `<comparator>` quantity appears in Results or a Table with a number; if absent → flag as unbenchmarked.
55
+ - Severity: MAJOR when the comparative claim is a headline; the fix is to compute and report the benchmark, or to drop the comparative framing. Distinct from AO5 (metric overstates evidence) — here the comparison *target* is simply missing.
56
+
52
57
  ## Decision-impact / early-deployment probes (DECIDE-AI axis, DI1–DI5)
53
58
 
54
59
  Co-apply when a study claims **clinical utility, deployment, or decision impact** of an AI system, or *is* an early-stage live clinical evaluation. The reporting axis is then DECIDE-AI (early-stage clinical evaluation of AI decision-support); these probes check that a utility/deployment claim rests on real-use evidence, not retrospective accuracy. They sharpen AO4 for the deployment-evaluation case.
@@ -43,6 +43,20 @@ A checklist for **diagnostic test accuracy (DTA) primary studies** — an index
43
43
  - For an **imaging** study, check that **modality-specific safety contraindications** and **device/artifact exclusions** are enumerated where applicable: MR safety (pacemaker/implant, claustrophobia), iodinated/gadolinium **contrast** contraindications (renal function, allergy, pregnancy), and **image-quality/artifact** exclusions (motion, metal artifact, incomplete coverage). Silent omission of these categories in a prospective imaging cohort understates the selected spectrum.
44
44
  - Severity: a flow-vs-prose exclusion mismatch is MAJOR when it changes the analytic-N or the eligible spectrum; missing modality-safety/artifact exclusion categories is MINOR–MAJOR depending on how much of the source population they remove. The fix is a reconciled exclusion list (flow == prose) plus an explicit modality-safety/artifact exclusion enumeration.
45
45
 
46
+ **D9 — Confidence-weighted / rating reader study: unweighted baseline AUC must accompany the weighted primary**:
47
+ - When a reader study's novelty is a **confidence-weighted** (or rating-collapsed) score used as the ROC/AUC predictor, the **unweighted binary-call AUC** must be reported side-by-side (as a sensitivity analysis). Without it, you cannot tell whether the weighting *created* the result or hid an estimator fragility (e.g. a folded/non-monotonic encoding that collapses `real/5` with `ai/1`).
48
+ - Lead: if the primary predictor is a confidence/rating→single-score collapse and no unweighted binary-call AUC appears, ask for it; also confirm the (call × confidence) encoding is strictly monotonic (no boundary collision) — the folded-score bug understates one hypothesis and can flip another.
49
+ - Severity: MAJOR when the weighted score is the headline and no unweighted baseline is shown; the weighting must "earn its place" against the simpler estimator.
50
+
51
+ **D10 — "No stratum met threshold X" vs a per-stratum table that does meet X**:
52
+ - When the manuscript states a numeric admissibility/deployability rule (e.g. "AUC ≥ 0.75 **and** lower 95% bound ≥ 0.70") and concludes "**no stratum met** the rule" / "all strata were below", cross-check that claim against the **per-stratum AUC + CI table**. A blanket negative-stratum claim contradicted by a tabled stratum that literally satisfies the rule (e.g. ultrasound 0.789, CI 0.742–0.834) is a self-contradiction a reviewer verifies with arithmetic.
53
+ - Lead: parse the stated threshold rule, then test each stratum row's estimate+CI against it; flag any "no stratum met" prose contradicted by a qualifying row. Note multiplicity (with k strata, some crossings are expected) — the fix is to report the qualifying strata and frame them as hypothesis-generating, not to deny them.
54
+ - Severity: MAJOR (a headline negative claim contradicted by the paper's own table).
55
+
56
+ **D11 — Mixed normalisation in one comparison column (apples-to-oranges head-to-head)**:
57
+ - When a table column (or a row-wise "A vs B" comparison) places two metrics computed under **different normalisations / definitions** side by side — e.g. one method's volume error as a *standard relative error* and the comparator's as a *range-normalised* error — the implied head-to-head is invalid; the numbers are not on the same scale.
58
+ - Lead: check whether the two values sharing a comparison column are defined identically in the Methods/footnotes; if not, require either a common-scale recomputation or an explicit "not on the same scale" footnote. Severity: MEDIUM–MAJOR when a superiority/comparability claim rests on the mixed-scale comparison.
59
+
46
60
  **Output template (D2 / D6 example)**:
47
61
  > "The study uses a case-control (two-gate) design — confirmed cases versus healthy controls — rather than a consecutive series of patients in whom the diagnosis was suspected. This typically overestimates accuracy and does not reflect the intended-use spectrum, so I'd read the reported sensitivity/specificity as proof-of-concept rather than clinical accuracy, and suggest tempering the Abstract accordingly. Separately, the reader study reports a single reader-averaged AUC; because readers are a sample, I'd suggest an MRMC analysis (e.g., Obuchowski–Rockette) that accounts for both reader and case variance, with per-reader estimates shown and the unit of analysis (per-patient vs per-lesion) stated."
48
62
 
@@ -108,6 +108,11 @@ A 17-probe checklist for observational studies (cohort, case-control, cross-sect
108
108
  - **(b) Independent replication is the real safeguard, not the correction alone.** Agnostic scans carry a high false-discovery proportion even after FDR; the load-bearing control is an **independent replication** — a held-out split, a different cohort, or a different survey cycle — requiring **directional concordance** and a reported **replication rate** (how many discovery hits replicated, e.g. "110/164 replicated", "59% Bonferroni-surviving and concordant"). A single-cohort FDR-significant scan with no replication is hypothesis-generating only; presenting its top hits as established → MAJOR (downgrade to exploratory or add replication). A held-out **validation** set must be used once, for the final model, not reused as a second discovery pass.
109
109
  - **(c) Correlated exposures — Bonferroni conservatism and co-exposure confounding.** Exposome/omics exposures are heavily intercorrelated, with two consequences: (i) Bonferroni on the raw count is **over-conservative** (the effective number of independent tests is smaller — a permutation threshold or an effective-number adjustment is more honest), and (ii) a **univariate** hit can be a *marker for a correlated true cause* rather than itself causal, because the single-exposure model ignores co-exposure confounding / mixtures. Is the correlation structure addressed (effective-number-of-tests, clustering / dimension reduction, or a multi-exposure / mixture model), and is a univariate hit read as a *screen* rather than an isolated causal effect? A causal/actionable claim from one univariate hit inside a correlated exposure block, with no co-exposure adjustment → MAJOR.
110
110
  - **(d) Selective top-hit reporting / hidden multiple testing (HARKing).** The **full tested-exposure set and the full results** (every effect size + p/q, not just the significant rows) must be available — ideally pre-registered, at minimum in a supplement. Reporting only the significant hits, or re-narrating the scan as a "focused a-priori hypothesis" about the winners after seeing the results, is selective reporting / hidden multiplicity. Nominal (uncorrected) hits may be shown to inform future work only if **explicitly labelled as not surviving correction**. A Results section that presents only winners, with no full results table and no pre-registration → MAJOR (reporting).
111
+
112
+ **O18 — Pseudoreplication in multi-rater agreement / reader studies (pooled pairwise vs per-subject)**:
113
+ - When an agreement or reader study computes a test (Mann–Whitney, t-test, correlation) on **pooled pairwise distances / reader-pairs** rather than on **independent units** (subjects, lesions, aneurysms), the effective n is inflated (each subject contributes several pairwise rows) and the p-value is anti-conservative. This is the reader/agreement sibling of the analysis-unit / clustering issue in O8: the number of *observations* is not the number of *independent units*.
114
+ - Lead: when a reported test **n exceeds the number of independent subjects/lesions** (e.g. n=448 or 672 pairwise from 112 aneurysms) and no clustering / mixed-effects / per-subject aggregation is stated → flag. Ask for the analysis re-run at the **per-subject** level (or a mixed model with a subject random effect); a pooled-pairwise p can flip (e.g. p=0.02 pooled → p=0.59 per-aneurysm).
115
+ - Severity: MAJOR when a headline agreement/superiority claim rests on the pooled-pairwise test; MINOR when a per-subject sensitivity reproduces it. Applies to all multi-rater agreement / MRMC reader studies.
111
116
  - **(e) Effect size and resolution honesty at scale.** With the very large N these scans run on, trivially small effects clear any threshold; report **effect magnitudes** and clinical relevance alongside significance, and respect the **resolution floor** (a permutation procedure with k permutations cannot resolve p below ≈ 1/k; FDR has a minimum detectable q at a given hit count). A "number of significant exposures" headline with no effect sizes overstates the finding.
112
117
  - Severity: MAJOR when a headline causal/actionable claim rests on uncorrected, single-cohort-only, or univariate-in-a-correlated-block top hits; MINOR when correction + replication + full results are present and the claim is framed as screening. Cross-link O11 (complex-survey design — an NHANES/KNHANES ExWAS must combine design-based standard errors with the multiplicity correction, not one or the other), O12 (the single-exposure threshold/non-linearity analogue), and O2/O7 (confounding / over-adjustment for whichever hit survives). Report the tested-set size, the correction method, and the replication design explicitly.
113
118
 
@@ -110,6 +110,17 @@ Internal-consistency-first gate (P0) plus an 11-probe checklist (P1–P11). Thes
110
110
  - Lead: count studies at the 0%/100% boundary per outcome; if ≥ (k−1) are at the boundary, flag the pooled point-estimate/CI as spurious precision.
111
111
  - Recommend a descriptive tally ("5 of 6 studies reported 100%; the sixth reported X%") rather than a pooled estimate. Severity: MAJOR when the boundary pool is presented as a headline accuracy/success figure.
112
112
 
113
+ **P18 — Train-vs-validation pool integrity: apparent estimate smuggled into the "validation" pool**:
114
+ - A DTA / prognostic-model MA that separates a "training" pool from a "validation" pool must build the validation pool from **held-out / external / cross-validated** estimates only. The failure mode: for studies without cross-validation, the authors drop each study's **apparent (in-sample / resubstitution)** sensitivity–specificity (or "overall estimate") INTO the validation pool — so the headline "validation" performance is partly the same in-sample numbers, and the "train ≈ validation stability" the Discussion leans on is mechanical reuse.
115
+ - Lead: grep Methods for a train/validation split co-occurring with {`overall estimate`, `non–cross-validated` / `non-cross-validated`, `apparent`, `resubstitution`, `where validation was unavailable … used the overall`}. Then check whether a **sensitivity analysis excluding non-CV studies materially moves the validation pool** (a large drop = the primary "validation" estimate is optimism-contaminated).
116
+ - Severity: MAJOR #1 when the headline rests on it (estimand incoherence — the "validation" pool is not a validation estimate); often unfixable in the current form (recompute restricted to genuinely held-out estimates, or relabel as apparent). See `~/.claude/rules/dta-meta-analysis.md`.
117
+
118
+ **P19 — Reviewer-side included-study cell audit: metric-type, self-eligibility contradiction, CI provenance**:
119
+ - As a reviewer, a **random/convenience sample of the open-access included studies** cell-checked against source is sufficient to demonstrate a systematic extraction-error class — full re-extraction is NOT the reviewer's job. A sampled error rate above ~30% ⇒ the pooled estimates are untrustworthy without author-side full cell reconciliation (P1 / `dta-meta-analysis.md` §1).
120
+ - Beyond value-matches-source (P1), check three extraction pathologies: **(a) metric-type identity** — an `accuracy` or a *different task's* AUC tabulated AS the target AUC (accuracy ↔ AUC ↔ sens/spec are not interchangeable); **(b) self-eligibility contradiction** — an extracted metric/design that violates the review's OWN stated inclusion rule (e.g. an accuracy-only study the eligibility text excludes, entered anyway); **(c) CI provenance** — a CI present in the MA table that **does not exist in the source** ("derived from the point estimate and sample size" is not a valid route to an AUC CI).
121
+ - Also flag validation-type / analysis-unit mislabels (5-fold CV recorded as train/validation; N scans counted as N patients). Absence of a per-study 2×2 / sens–spec table is itself a PRISMA-DTA reporting MAJOR.
122
+ - Lead: sample K OA included studies; per study confirm metric TYPE + value + that the extracted design satisfies the paper's own eligibility + that any tabled CI appears in the source. Severity scales with the sampled error rate.
123
+
113
124
  **Output template (P1 cell-swap example)**:
114
125
  > "I spot-checked [Author Year] (PMID [...]) against the source paper and found that the values in Figure X are swapped. The source paper reports external-test sensitivity A% / specificity B% (n=N); the manuscript forest entries place [num1/denom1] in the sensitivity slot (which is the source's specificity numerator/denominator) and [num2/denom2] in the specificity slot (which is the source's sensitivity)."
115
126
 
@@ -329,7 +329,7 @@ publication bias (funnel plot, Egger), and sensitivity/subgroup analyses.
329
329
 
330
330
  **Type-Specific Additional Checks:**
331
331
 
332
- - **Observational studies**: Confounding assessment (DAG or adjustment strategy), selection bias, exposure measurement validity. Run **Phase 2.5e (Confounding Completeness)** and apply the O1–O16 probes in `references/domain-probes/observational_confounding.md` — including O7 (over-adjustment: do not adjust for a consequence/mediator of the outcome, e.g. serum uric acid in an eGFR model — the opposite-direction failure to O1), O8 (analysis unit & clustering — run `check_cohort_arithmetic.py --id-col` for records-vs-subjects), O9 (construct validity of a report-/registry-derived outcome), O10 (an inferential effect-size gradient across overlapping/nested subsets needs a difference/interaction test, not descriptive refinement alone), and — for complex-survey data (NHANES/KNHANES/CHNS) — O11 (design-based weighting: the right weight + strata + PSU, subpopulation-not-subset) and O12 (data-driven inflection-point/'saturation' threshold mining needs a breakpoint CI + pre-specification, not a quoted cutoff), O13 (a cross-sectional mediation claim cannot establish X→M→Y order and needs an unmeasured-M–Y-confounding sensitivity), and O14 (a synergy/joint-effect/effect-modification claim needs the additive scale — RERI/AP/S with CIs — not a multiplicative-only interaction or joint-category ORs), O15 (an analytic cohort selected on an optional modality/procedure's availability is a spectrum/selection bias, not a generalizability caveat — ask for consecutive enrollment + a selected-vs-source comparison), and O16 (a serial-imaging size/growth endpoint needs a stated lesion-tracking rule + multiplicity prevalence + a solitary-lesion sensitivity). If the manuscript develops or compares a **clinical prediction model** (TRIPOD / TRIPOD+AI, nested predictor-set comparison), also apply the CP1–CP4 probes in `references/domain-probes/clinical_prediction_model.md` (apparent-vs-optimism-corrected calibration/DCA, the incremental-value-vs-marginal-effect two-null distinction, EPV per nested model, net benefit as model comparison not policy).
332
+ - **Observational studies**: Confounding assessment (DAG or adjustment strategy), selection bias, exposure measurement validity. Run **Phase 2.5e (Confounding Completeness)** and apply the O1–O18 probes in `references/domain-probes/observational_confounding.md` — including O7 (over-adjustment: do not adjust for a consequence/mediator of the outcome, e.g. serum uric acid in an eGFR model — the opposite-direction failure to O1), O8 (analysis unit & clustering — run `check_cohort_arithmetic.py --id-col` for records-vs-subjects), O9 (construct validity of a report-/registry-derived outcome), O10 (an inferential effect-size gradient across overlapping/nested subsets needs a difference/interaction test, not descriptive refinement alone), and — for complex-survey data (NHANES/KNHANES/CHNS) — O11 (design-based weighting: the right weight + strata + PSU, subpopulation-not-subset) and O12 (data-driven inflection-point/'saturation' threshold mining needs a breakpoint CI + pre-specification, not a quoted cutoff), O13 (a cross-sectional mediation claim cannot establish X→M→Y order and needs an unmeasured-M–Y-confounding sensitivity), and O14 (a synergy/joint-effect/effect-modification claim needs the additive scale — RERI/AP/S with CIs — not a multiplicative-only interaction or joint-category ORs), O15 (an analytic cohort selected on an optional modality/procedure's availability is a spectrum/selection bias, not a generalizability caveat — ask for consecutive enrollment + a selected-vs-source comparison), and O16 (a serial-imaging size/growth endpoint needs a stated lesion-tracking rule + multiplicity prevalence + a solitary-lesion sensitivity), O17 (a many-exposure agnostic scan — ExWAS/EWAS/MWAS — needs multiplicity control against the true denominator + independent replication, not a raw p<0.05 top hit), and O18 (a multi-rater agreement / reader test run on pooled pairwise distances rather than independent subjects is pseudoreplication — re-run per-subject). If the manuscript develops or compares a **clinical prediction model** (TRIPOD / TRIPOD+AI, nested predictor-set comparison), also apply the CP1–CP4 probes in `references/domain-probes/clinical_prediction_model.md` (apparent-vs-optimism-corrected calibration/DCA, the incremental-value-vs-marginal-effect two-null distinction, EPV per nested model, net benefit as model comparison not policy).
333
333
  - **Educational studies**: Learning outcome measurement validity, Kirkpatrick level, control group adequacy, curriculum fidelity
334
334
  - **Meta-analyses**: Search comprehensiveness (2+ databases), screening reproducibility (2 reviewers), RoB assessment per study, GRADE certainty
335
335
  - **Case reports**: Diagnostic reasoning transparency, timeline completeness, informed consent, generalizability disclaimer
@@ -341,16 +341,16 @@ These modules carry the same domain-specific critique probes used by `/peer-revi
341
341
 
342
342
  | Manuscript type / signal | Probe module |
343
343
  |---|---|
344
- | Systematic Review / Meta-Analysis | `references/domain-probes/sr_ma.md` (P0–P17) |
344
+ | Systematic Review / Meta-Analysis | `references/domain-probes/sr_ma.md` (P0–P19) |
345
345
  | Time-to-event / survival / prognostic model (Cox, Fine-Gray, DeepSurv, nomogram, risk-stratification cutoff) | `references/domain-probes/survival_prognostic.md` (S1–S9) |
346
346
  | Radiomic feature reproducibility / acquisition-parameter sweep / reliability-based feature filtering | `references/domain-probes/radiomics.md` (R1–R4) |
347
347
  | Cross-modality image synthesis (MRI→PET / MRI→CT / non-contrast→contrast / low-dose→full-dose) claiming functional/molecular information or target-modality substitution | `references/domain-probes/image_synthesis.md` (IS1–IS4) |
348
348
  | Narrative / review article / primer / state-of-the-art | `references/domain-probes/narrative_review.md` (RV1–RV9) |
349
- | AI/ML primary study with a clinical claim (generalizable / outperforms clinicians / deployment-ready / can replace a reader) | `references/domain-probes/ai_overclaiming.md` (AO0–AO6) |
349
+ | AI/ML primary study with a clinical claim (generalizable / outperforms clinicians / deployment-ready / can replace a reader) | `references/domain-probes/ai_overclaiming.md` (AO0–AO7) |
350
350
  | Engineer-built medical-imaging model (segmentation / classification / detection; CNN / U-Net / nnU-Net / transformer) being validated — partition/leakage, seed & run variance, metric selection, reproducibility, reference-standard quality | `references/domain-probes/model_development.md` (MD0–MD8) |
351
351
  | LLM / MLLM evaluated on a clinical task (radiology report generation, visual question answering, clinical text extraction/classification; closed API or open weights) | `references/domain-probes/mllm_evaluation.md` (ME0–ME8) |
352
352
  | Randomised controlled trial (parallel / crossover / cluster / stepped-wedge) | `references/domain-probes/rct_trial.md` (RC0–RC7) |
353
- | Diagnostic test accuracy (DTA) primary study / multi-reader multi-case (MRMC) reader study (index test vs reference standard, AI-vs-reader, modality comparison) | `references/domain-probes/diagnostic_accuracy.md` (D1–D8) |
353
+ | Diagnostic test accuracy (DTA) primary study / multi-reader multi-case (MRMC) reader study (index test vs reference standard, AI-vs-reader, modality comparison) | `references/domain-probes/diagnostic_accuracy.md` (D1–D11) |
354
354
  | Case report / case series / single-patient clinical narrative (incl. adverse-event/pharmacovigilance and imaging-led radiology/nuclear-medicine/IR reports) | `references/domain-probes/case_report.md` (CR1–CR9) |
355
355
  | AI/ML, prediction, or diagnostic study claiming cross-population performance (generalizable / deployment-ready / "works for patients"), or presenting subgroup analyses as a fairness/equity argument | `references/domain-probes/equity_fairness.md` (EQ0–EQ6) |
356
356
  | Mendelian randomization (genetic variants as instrumental variables: two-sample summary-data, one-sample, multivariable MR, drug-target / cis-MR, non-linear MR) | `references/domain-probes/mendelian_randomization.md` (MR1–MR8) |
@@ -392,6 +392,20 @@ Internal consistency (Phase 2.5) is necessary but not sufficient. Numbers can be
392
392
  consistent across Abstract / Table / Text and still be wrong at the source — a single
393
393
  transcription error propagates cleanly through every downstream stage.
394
394
 
395
+ Also run the **displayed-arithmetic** gate — a stated difference must equal the subtraction of
396
+ its two displayed component values at the SAME precision:
397
+
398
+ ```bash
399
+ python3 "${CLAUDE_SKILL_DIR}/scripts/check_rounded_delta.py" \
400
+ --manuscript manuscript.md --out qc/rounded_delta.json
401
+ ```
402
+
403
+ `ROUNDED_DELTA_MISMATCH` (Minor) fires when e.g. AUCs are shown as `0.70` and `0.73` (a displayed
404
+ gap of 0.03) while the between-arm difference is stated as `0.02` — self-consistent only on the
405
+ unrounded values. Fix: report components and the delta at one precision, or footnote that the delta
406
+ is computed on unrounded values. A higher-precision component pair (`0.703` vs `0.726`) with a 2-dp
407
+ delta is the legitimate unrounded case and is not flagged.
408
+
395
409
  **Precedent failure pattern:**
396
410
  > A revision-era comparative meta-analysis reported a safety-outcome 2x2 with the
397
411
  > arm-level events direction-reversed relative to the primary-source Table. Internal
@@ -743,6 +757,18 @@ Phase 2.5c covers reference **integrity** — are the cited references real (fab
743
757
 
744
758
  ### Phase 2.5d: Cross-Reference QC (Manuscript ↔ rendered DOCX)
745
759
 
760
+ Before the DOCX is built, run the **markdown-stage orphan gate** — every captioned
761
+ `Figure N.` / `Table N.` must be cited at least once elsewhere in the body:
762
+
763
+ ```bash
764
+ python3 "${CLAUDE_SKILL_DIR}/scripts/check_figure_citation.py" \
765
+ --manuscript manuscript.md --out qc/figure_citation.json
766
+ ```
767
+
768
+ `FIGURE_ORPHAN` / `TABLE_ORPHAN` (Minor) catch a newly-added float that has a legend
769
+ but no in-text citation — the early, no-build counterpart to `check_xref`'s `UNCITED`
770
+ verdict, which catches the same class on the rendered DOCX (below).
771
+
746
772
  Reference-list integrity (Phase 2.5c) does **not** cover Table/Figure
747
773
  cross-references. This is a separate failure mode where in-text citations
748
774
  ("Supplementary Table S4 reports a sensitivity analysis") resolve to a different
@@ -1081,7 +1107,7 @@ The panel simulates independent peer reviewers who do not see each other's comme
1081
1107
  | Survival / prognostic cohort | R1 Biostatistics & Study Design · R2 Clinical (domain) · R3 Imaging/Radiology (if an imaging exposure) | `references/domain-probes/survival_prognostic.md` |
1082
1108
  | Systematic review / meta-analysis | R1 Methodology (search/screening/PRISMA) · R2 Clinical · R3 Statistics (pooling/heterogeneity) | `references/domain-probes/sr_ma.md` |
1083
1109
  | Radiomics / feature reproducibility | R1 Imaging physics & acquisition · R2 ML / Statistics · R3 Clinical translation | `references/domain-probes/radiomics.md` |
1084
- | Diagnostic-accuracy / AI model | R1 Study design & leakage · R2 Statistics (DeLong, calibration) · R3 Clinical / reference standard | `references/domain-probes/sr_ma.md` (P1 DTA cells) + `references/domain-probes/ai_overclaiming.md` (AO0–AO6, for AI clinical claims) + categories A–C |
1110
+ | Diagnostic-accuracy / AI model | R1 Study design & leakage · R2 Statistics (DeLong, calibration) · R3 Clinical / reference standard | `references/domain-probes/sr_ma.md` (P1 DTA cells) + `references/domain-probes/ai_overclaiming.md` (AO0–AO7, for AI clinical claims) + categories A–C |
1085
1111
  | Observational (STROBE) | R1 Epidemiology / confounding · R2 Clinical · R3 Statistics | `references/domain-probes/observational_confounding.md` (O1/O8 run as the Phase 2.5e / `check_cohort_arithmetic.py --id-col` deterministic gates; O7 over-adjustment) + `references/domain-probes/clinical_prediction_model.md` (CP1–CP4, when it is a prediction-model paper) + categories A–J + the effect-size / added-value axes |
1086
1112
  | Narrative / review article | R1 Domain-content expert · R2 Methodology / SANRA · R3 Technical accuracy · R4 Adversarial reject-hunter (structural: RV9 curated-base circularity, RV6 single-anchor overload, RV8 self-citation architecture) | `references/domain-probes/narrative_review.md` |
1087
1113
  | Case report | R1 Clinical case-report reviewer · R2 Ethics / de-identification · R3 Literature-context reviewer | `references/domain-probes/case_report.md` + CARE items + categories D/F/G |
@@ -49,6 +49,11 @@ A 5-probe checklist (AO1–AO5, with AO0 as a gate) for medical-AI/ML primary st
49
49
  - (b) **Success-conditioned selection** — the arm or the analyzed subset is gated on an AI-success condition (cases where the model produced an output, segmentations that "passed", studies the pipeline did not fail on), so the comparison is conditioned on the very thing under test.
50
50
  - This is a **design/paradigm-level** defect: the operationalized task, not the prose, is mis-specified, so it cannot be fixed by rewording the claim — escalate **past an ordinary Major** (editors read it as a Reject-grade construct-validity failure; a panel that files it as a fixable Major under-rates it). The fix is a re-designed arm whose task matches the intended deployment workflow and an unconditioned (consecutive / intention-to-diagnose) analysis set.
51
51
 
52
+ **AO7 — Comparative "within/comparable-to X variability" claim whose benchmark X was never quantified**:
53
+ - When the Abstract / hypothesis / Conclusion asserts that a result falls **"within inter-expert variability"**, **"comparable to the reference range"**, or **"on par with human readers"**, the named comparator quantity (the inter-expert spread, the human-reader range) must actually be **computed and reported** in Results / a Table. A benchmark claim whose benchmark does not exist in the paper is an unbenchmarked overclaim — the reader cannot check the comparison because the "within X" bound was never measured (e.g. an agreement-envelope was computed but the *volume* inter-expert spread it is compared against was not).
54
+ - Lead: for each "within / comparable-to / on par with `<comparator>` variability|range|performance" claim, verify the `<comparator>` quantity appears in Results or a Table with a number; if absent → flag as unbenchmarked.
55
+ - Severity: MAJOR when the comparative claim is a headline; the fix is to compute and report the benchmark, or to drop the comparative framing. Distinct from AO5 (metric overstates evidence) — here the comparison *target* is simply missing.
56
+
52
57
  ## Decision-impact / early-deployment probes (DECIDE-AI axis, DI1–DI5)
53
58
 
54
59
  Co-apply when a study claims **clinical utility, deployment, or decision impact** of an AI system, or *is* an early-stage live clinical evaluation. The reporting axis is then DECIDE-AI (early-stage clinical evaluation of AI decision-support); these probes check that a utility/deployment claim rests on real-use evidence, not retrospective accuracy. They sharpen AO4 for the deployment-evaluation case.
@@ -43,6 +43,20 @@ A checklist for **diagnostic test accuracy (DTA) primary studies** — an index
43
43
  - For an **imaging** study, check that **modality-specific safety contraindications** and **device/artifact exclusions** are enumerated where applicable: MR safety (pacemaker/implant, claustrophobia), iodinated/gadolinium **contrast** contraindications (renal function, allergy, pregnancy), and **image-quality/artifact** exclusions (motion, metal artifact, incomplete coverage). Silent omission of these categories in a prospective imaging cohort understates the selected spectrum.
44
44
  - Severity: a flow-vs-prose exclusion mismatch is MAJOR when it changes the analytic-N or the eligible spectrum; missing modality-safety/artifact exclusion categories is MINOR–MAJOR depending on how much of the source population they remove. The fix is a reconciled exclusion list (flow == prose) plus an explicit modality-safety/artifact exclusion enumeration.
45
45
 
46
+ **D9 — Confidence-weighted / rating reader study: unweighted baseline AUC must accompany the weighted primary**:
47
+ - When a reader study's novelty is a **confidence-weighted** (or rating-collapsed) score used as the ROC/AUC predictor, the **unweighted binary-call AUC** must be reported side-by-side (as a sensitivity analysis). Without it, you cannot tell whether the weighting *created* the result or hid an estimator fragility (e.g. a folded/non-monotonic encoding that collapses `real/5` with `ai/1`).
48
+ - Lead: if the primary predictor is a confidence/rating→single-score collapse and no unweighted binary-call AUC appears, ask for it; also confirm the (call × confidence) encoding is strictly monotonic (no boundary collision) — the folded-score bug understates one hypothesis and can flip another.
49
+ - Severity: MAJOR when the weighted score is the headline and no unweighted baseline is shown; the weighting must "earn its place" against the simpler estimator.
50
+
51
+ **D10 — "No stratum met threshold X" vs a per-stratum table that does meet X**:
52
+ - When the manuscript states a numeric admissibility/deployability rule (e.g. "AUC ≥ 0.75 **and** lower 95% bound ≥ 0.70") and concludes "**no stratum met** the rule" / "all strata were below", cross-check that claim against the **per-stratum AUC + CI table**. A blanket negative-stratum claim contradicted by a tabled stratum that literally satisfies the rule (e.g. ultrasound 0.789, CI 0.742–0.834) is a self-contradiction a reviewer verifies with arithmetic.
53
+ - Lead: parse the stated threshold rule, then test each stratum row's estimate+CI against it; flag any "no stratum met" prose contradicted by a qualifying row. Note multiplicity (with k strata, some crossings are expected) — the fix is to report the qualifying strata and frame them as hypothesis-generating, not to deny them.
54
+ - Severity: MAJOR (a headline negative claim contradicted by the paper's own table).
55
+
56
+ **D11 — Mixed normalisation in one comparison column (apples-to-oranges head-to-head)**:
57
+ - When a table column (or a row-wise "A vs B" comparison) places two metrics computed under **different normalisations / definitions** side by side — e.g. one method's volume error as a *standard relative error* and the comparator's as a *range-normalised* error — the implied head-to-head is invalid; the numbers are not on the same scale.
58
+ - Lead: check whether the two values sharing a comparison column are defined identically in the Methods/footnotes; if not, require either a common-scale recomputation or an explicit "not on the same scale" footnote. Severity: MEDIUM–MAJOR when a superiority/comparability claim rests on the mixed-scale comparison.
59
+
46
60
  **Output template (D2 / D6 example)**:
47
61
  > "The study uses a case-control (two-gate) design — confirmed cases versus healthy controls — rather than a consecutive series of patients in whom the diagnosis was suspected. This typically overestimates accuracy and does not reflect the intended-use spectrum, so I'd read the reported sensitivity/specificity as proof-of-concept rather than clinical accuracy, and suggest tempering the Abstract accordingly. Separately, the reader study reports a single reader-averaged AUC; because readers are a sample, I'd suggest an MRMC analysis (e.g., Obuchowski–Rockette) that accounts for both reader and case variance, with per-reader estimates shown and the unit of analysis (per-patient vs per-lesion) stated."
48
62
 
@@ -108,6 +108,11 @@ A 17-probe checklist for observational studies (cohort, case-control, cross-sect
108
108
  - **(b) Independent replication is the real safeguard, not the correction alone.** Agnostic scans carry a high false-discovery proportion even after FDR; the load-bearing control is an **independent replication** — a held-out split, a different cohort, or a different survey cycle — requiring **directional concordance** and a reported **replication rate** (how many discovery hits replicated, e.g. "110/164 replicated", "59% Bonferroni-surviving and concordant"). A single-cohort FDR-significant scan with no replication is hypothesis-generating only; presenting its top hits as established → MAJOR (downgrade to exploratory or add replication). A held-out **validation** set must be used once, for the final model, not reused as a second discovery pass.
109
109
  - **(c) Correlated exposures — Bonferroni conservatism and co-exposure confounding.** Exposome/omics exposures are heavily intercorrelated, with two consequences: (i) Bonferroni on the raw count is **over-conservative** (the effective number of independent tests is smaller — a permutation threshold or an effective-number adjustment is more honest), and (ii) a **univariate** hit can be a *marker for a correlated true cause* rather than itself causal, because the single-exposure model ignores co-exposure confounding / mixtures. Is the correlation structure addressed (effective-number-of-tests, clustering / dimension reduction, or a multi-exposure / mixture model), and is a univariate hit read as a *screen* rather than an isolated causal effect? A causal/actionable claim from one univariate hit inside a correlated exposure block, with no co-exposure adjustment → MAJOR.
110
110
  - **(d) Selective top-hit reporting / hidden multiple testing (HARKing).** The **full tested-exposure set and the full results** (every effect size + p/q, not just the significant rows) must be available — ideally pre-registered, at minimum in a supplement. Reporting only the significant hits, or re-narrating the scan as a "focused a-priori hypothesis" about the winners after seeing the results, is selective reporting / hidden multiplicity. Nominal (uncorrected) hits may be shown to inform future work only if **explicitly labelled as not surviving correction**. A Results section that presents only winners, with no full results table and no pre-registration → MAJOR (reporting).
111
+
112
+ **O18 — Pseudoreplication in multi-rater agreement / reader studies (pooled pairwise vs per-subject)**:
113
+ - When an agreement or reader study computes a test (Mann–Whitney, t-test, correlation) on **pooled pairwise distances / reader-pairs** rather than on **independent units** (subjects, lesions, aneurysms), the effective n is inflated (each subject contributes several pairwise rows) and the p-value is anti-conservative. This is the reader/agreement sibling of the analysis-unit / clustering issue in O8: the number of *observations* is not the number of *independent units*.
114
+ - Lead: when a reported test **n exceeds the number of independent subjects/lesions** (e.g. n=448 or 672 pairwise from 112 aneurysms) and no clustering / mixed-effects / per-subject aggregation is stated → flag. Ask for the analysis re-run at the **per-subject** level (or a mixed model with a subject random effect); a pooled-pairwise p can flip (e.g. p=0.02 pooled → p=0.59 per-aneurysm).
115
+ - Severity: MAJOR when a headline agreement/superiority claim rests on the pooled-pairwise test; MINOR when a per-subject sensitivity reproduces it. Applies to all multi-rater agreement / MRMC reader studies.
111
116
  - **(e) Effect size and resolution honesty at scale.** With the very large N these scans run on, trivially small effects clear any threshold; report **effect magnitudes** and clinical relevance alongside significance, and respect the **resolution floor** (a permutation procedure with k permutations cannot resolve p below ≈ 1/k; FDR has a minimum detectable q at a given hit count). A "number of significant exposures" headline with no effect sizes overstates the finding.
112
117
  - Severity: MAJOR when a headline causal/actionable claim rests on uncorrected, single-cohort-only, or univariate-in-a-correlated-block top hits; MINOR when correction + replication + full results are present and the claim is framed as screening. Cross-link O11 (complex-survey design — an NHANES/KNHANES ExWAS must combine design-based standard errors with the multiplicity correction, not one or the other), O12 (the single-exposure threshold/non-linearity analogue), and O2/O7 (confounding / over-adjustment for whichever hit survives). Report the tested-set size, the correction method, and the replication design explicitly.
113
118
 
@@ -110,6 +110,17 @@ Internal-consistency-first gate (P0) plus an 11-probe checklist (P1–P11). Thes
110
110
  - Lead: count studies at the 0%/100% boundary per outcome; if ≥ (k−1) are at the boundary, flag the pooled point-estimate/CI as spurious precision.
111
111
  - Recommend a descriptive tally ("5 of 6 studies reported 100%; the sixth reported X%") rather than a pooled estimate. Severity: MAJOR when the boundary pool is presented as a headline accuracy/success figure.
112
112
 
113
+ **P18 — Train-vs-validation pool integrity: apparent estimate smuggled into the "validation" pool**:
114
+ - A DTA / prognostic-model MA that separates a "training" pool from a "validation" pool must build the validation pool from **held-out / external / cross-validated** estimates only. The failure mode: for studies without cross-validation, the authors drop each study's **apparent (in-sample / resubstitution)** sensitivity–specificity (or "overall estimate") INTO the validation pool — so the headline "validation" performance is partly the same in-sample numbers, and the "train ≈ validation stability" the Discussion leans on is mechanical reuse.
115
+ - Lead: grep Methods for a train/validation split co-occurring with {`overall estimate`, `non–cross-validated` / `non-cross-validated`, `apparent`, `resubstitution`, `where validation was unavailable … used the overall`}. Then check whether a **sensitivity analysis excluding non-CV studies materially moves the validation pool** (a large drop = the primary "validation" estimate is optimism-contaminated).
116
+ - Severity: MAJOR #1 when the headline rests on it (estimand incoherence — the "validation" pool is not a validation estimate); often unfixable in the current form (recompute restricted to genuinely held-out estimates, or relabel as apparent). See `~/.claude/rules/dta-meta-analysis.md`.
117
+
118
+ **P19 — Reviewer-side included-study cell audit: metric-type, self-eligibility contradiction, CI provenance**:
119
+ - As a reviewer, a **random/convenience sample of the open-access included studies** cell-checked against source is sufficient to demonstrate a systematic extraction-error class — full re-extraction is NOT the reviewer's job. A sampled error rate above ~30% ⇒ the pooled estimates are untrustworthy without author-side full cell reconciliation (P1 / `dta-meta-analysis.md` §1).
120
+ - Beyond value-matches-source (P1), check three extraction pathologies: **(a) metric-type identity** — an `accuracy` or a *different task's* AUC tabulated AS the target AUC (accuracy ↔ AUC ↔ sens/spec are not interchangeable); **(b) self-eligibility contradiction** — an extracted metric/design that violates the review's OWN stated inclusion rule (e.g. an accuracy-only study the eligibility text excludes, entered anyway); **(c) CI provenance** — a CI present in the MA table that **does not exist in the source** ("derived from the point estimate and sample size" is not a valid route to an AUC CI).
121
+ - Also flag validation-type / analysis-unit mislabels (5-fold CV recorded as train/validation; N scans counted as N patients). Absence of a per-study 2×2 / sens–spec table is itself a PRISMA-DTA reporting MAJOR.
122
+ - Lead: sample K OA included studies; per study confirm metric TYPE + value + that the extracted design satisfies the paper's own eligibility + that any tabled CI appears in the source. Severity scales with the sampled error rate.
123
+
113
124
  **Output template (P1 cell-swap example)**:
114
125
  > "I spot-checked [Author Year] (PMID [...]) against the source paper and found that the values in Figure X are swapped. The source paper reports external-test sensitivity A% / specificity B% (n=N); the manuscript forest entries place [num1/denom1] in the sensitivity slot (which is the source's specificity numerator/denominator) and [num2/denom2] in the specificity slot (which is the source's sensitivity)."
115
126