medsci-skills 4.1.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 (702) hide show
  1. package/LICENSE +50 -0
  2. package/README.md +602 -0
  3. package/README_FIRST.md +27 -0
  4. package/bin/medsci-skills.js +159 -0
  5. package/installers/install-macos.command +19 -0
  6. package/installers/install-windows.cmd +26 -0
  7. package/installers/install-windows.ps1 +17 -0
  8. package/installers/install.py +218 -0
  9. package/metadata/skills_catalog.json +452 -0
  10. package/package.json +48 -0
  11. package/skills/academic-aio/SKILL.md +408 -0
  12. package/skills/academic-aio/references/case_studies/kjr_mllm_2025.md +82 -0
  13. package/skills/academic-aio/references/checklists/AIO_GENERAL.md +354 -0
  14. package/skills/academic-aio/references/journal_summarybox_templates.yaml +126 -0
  15. package/skills/academic-aio/references/oac_funding_checklist.yaml +129 -0
  16. package/skills/academic-aio/references/reporting_guideline_mapping.md +39 -0
  17. package/skills/academic-aio/references/schema_markup_templates/CodeRepository.jsonld +32 -0
  18. package/skills/academic-aio/references/schema_markup_templates/Dataset.jsonld +36 -0
  19. package/skills/academic-aio/references/schema_markup_templates/Person.jsonld +30 -0
  20. package/skills/academic-aio/references/schema_markup_templates/README.md +43 -0
  21. package/skills/academic-aio/references/schema_markup_templates/ScholarlyArticle.jsonld +55 -0
  22. package/skills/academic-aio/scripts/batch_metadata_audit.py +169 -0
  23. package/skills/academic-aio/scripts/validate_schema.py +118 -0
  24. package/skills/academic-aio/skill.yml +36 -0
  25. package/skills/academic-aio/templates/aio_audit_checklist.md.j2 +108 -0
  26. package/skills/add-journal/SKILL.md +482 -0
  27. package/skills/add-journal/skill.yml +33 -0
  28. package/skills/analyze-stats/SKILL.md +598 -0
  29. package/skills/analyze-stats/references/analysis_guides/missing_data.md +109 -0
  30. package/skills/analyze-stats/references/analysis_guides/nhis_icd10_mapping.md +247 -0
  31. package/skills/analyze-stats/references/analysis_guides/propensity_score.md +132 -0
  32. package/skills/analyze-stats/references/analysis_guides/regression.md +115 -0
  33. package/skills/analyze-stats/references/analysis_guides/repeated_measures.md +160 -0
  34. package/skills/analyze-stats/references/analysis_guides/survey_weighted.md +366 -0
  35. package/skills/analyze-stats/references/analysis_guides/test_selection.md +86 -0
  36. package/skills/analyze-stats/references/style/figure_style.mplstyle +69 -0
  37. package/skills/analyze-stats/references/style/theme_publication.R +147 -0
  38. package/skills/analyze-stats/references/table-standards/journal-profiles/ajr.yaml +51 -0
  39. package/skills/analyze-stats/references/table-standards/journal-profiles/european_radiology.yaml +55 -0
  40. package/skills/analyze-stats/references/table-standards/journal-profiles/jama.yaml +66 -0
  41. package/skills/analyze-stats/references/table-standards/journal-profiles/lancet.yaml +57 -0
  42. package/skills/analyze-stats/references/table-standards/journal-profiles/nejm.yaml +51 -0
  43. package/skills/analyze-stats/references/table-standards/journal-profiles/radiology.yaml +66 -0
  44. package/skills/analyze-stats/references/table-standards/table-standards.md +287 -0
  45. package/skills/analyze-stats/references/table-standards/table-types/diagnostic_accuracy.md +36 -0
  46. package/skills/analyze-stats/references/table-standards/table-types/meta_analysis.md +58 -0
  47. package/skills/analyze-stats/references/table-standards/table-types/model_comparison.md +36 -0
  48. package/skills/analyze-stats/references/table-standards/table-types/regression_results.md +50 -0
  49. package/skills/analyze-stats/references/table-standards/table-types/table1_demographics.md +51 -0
  50. package/skills/analyze-stats/references/table-standards/tool-comparison.md +79 -0
  51. package/skills/analyze-stats/references/templates/agreement_analysis.py +436 -0
  52. package/skills/analyze-stats/references/templates/dca_plot.R +237 -0
  53. package/skills/analyze-stats/references/templates/diagnostic_accuracy.py +401 -0
  54. package/skills/analyze-stats/references/templates/dta_meta_analysis.R +384 -0
  55. package/skills/analyze-stats/references/templates/forest_plot.py +412 -0
  56. package/skills/analyze-stats/references/templates/likert_summary.py +356 -0
  57. package/skills/analyze-stats/references/templates/meta_analysis.R +365 -0
  58. package/skills/analyze-stats/references/templates/propensity_score.py +478 -0
  59. package/skills/analyze-stats/references/templates/regression.py +425 -0
  60. package/skills/analyze-stats/references/templates/repeated_measures.py +434 -0
  61. package/skills/analyze-stats/references/templates/sample_size.R +382 -0
  62. package/skills/analyze-stats/references/templates/survey_weighted_analysis.py +411 -0
  63. package/skills/analyze-stats/references/templates/survival_analysis.py +325 -0
  64. package/skills/analyze-stats/references/templates/table1_demographics.py +287 -0
  65. package/skills/analyze-stats/scripts/check_generated_code.py +335 -0
  66. package/skills/analyze-stats/skill.yml +38 -0
  67. package/skills/analyze-stats/tests/fixtures/gen_bad.R +16 -0
  68. package/skills/analyze-stats/tests/fixtures/gen_bad.py +24 -0
  69. package/skills/analyze-stats/tests/fixtures/gen_clean.py +21 -0
  70. package/skills/analyze-stats/tests/test_generated_code.sh +59 -0
  71. package/skills/analyze-stats/tests/test_survival_template.sh +53 -0
  72. package/skills/author-strategy/SKILL.md +117 -0
  73. package/skills/author-strategy/analyze_patterns.py +303 -0
  74. package/skills/author-strategy/fetch_pubmed.py +374 -0
  75. package/skills/author-strategy/skill.yml +34 -0
  76. package/skills/batch-cohort/SKILL.md +223 -0
  77. package/skills/batch-cohort/references/base_template_knhanes.R +210 -0
  78. package/skills/batch-cohort/references/batch_template_generator.R +222 -0
  79. package/skills/batch-cohort/references/variable_coding_registry.md +136 -0
  80. package/skills/batch-cohort/skill.yml +35 -0
  81. package/skills/calc-sample-size/SKILL.md +491 -0
  82. package/skills/calc-sample-size/references/formulas.md +655 -0
  83. package/skills/calc-sample-size/references/observational_cohort.md +49 -0
  84. package/skills/calc-sample-size/skill.yml +51 -0
  85. package/skills/check-reporting/SKILL.md +534 -0
  86. package/skills/check-reporting/references/LICENSES.md +41 -0
  87. package/skills/check-reporting/references/checklists/AMSTAR2.md +54 -0
  88. package/skills/check-reporting/references/checklists/ARRIVE_2.md +234 -0
  89. package/skills/check-reporting/references/checklists/CARE.md +102 -0
  90. package/skills/check-reporting/references/checklists/CLAIM_2024.md +128 -0
  91. package/skills/check-reporting/references/checklists/CLEAR.md +113 -0
  92. package/skills/check-reporting/references/checklists/CONSORT.md +86 -0
  93. package/skills/check-reporting/references/checklists/COSMIN_RoB.md +136 -0
  94. package/skills/check-reporting/references/checklists/GRRAS.md +61 -0
  95. package/skills/check-reporting/references/checklists/MI_CLEAR_LLM.md +167 -0
  96. package/skills/check-reporting/references/checklists/MOOSE.md +85 -0
  97. package/skills/check-reporting/references/checklists/NOS.md +88 -0
  98. package/skills/check-reporting/references/checklists/PRISMA_2020.md +135 -0
  99. package/skills/check-reporting/references/checklists/PRISMA_DTA.md +36 -0
  100. package/skills/check-reporting/references/checklists/PRISMA_P.md +56 -0
  101. package/skills/check-reporting/references/checklists/PROBAST.md +75 -0
  102. package/skills/check-reporting/references/checklists/PROBAST_AI.md +130 -0
  103. package/skills/check-reporting/references/checklists/QUADAS2.md +77 -0
  104. package/skills/check-reporting/references/checklists/QUADAS_C.md +131 -0
  105. package/skills/check-reporting/references/checklists/ROBINS_E.md +179 -0
  106. package/skills/check-reporting/references/checklists/ROBINS_I.md +87 -0
  107. package/skills/check-reporting/references/checklists/ROBIS.md +114 -0
  108. package/skills/check-reporting/references/checklists/ROB_ME.md +126 -0
  109. package/skills/check-reporting/references/checklists/RoB2.md +79 -0
  110. package/skills/check-reporting/references/checklists/RoB_NMA.md +96 -0
  111. package/skills/check-reporting/references/checklists/SPIRIT.md +112 -0
  112. package/skills/check-reporting/references/checklists/SQUIRE_2.md +68 -0
  113. package/skills/check-reporting/references/checklists/STARD.md +129 -0
  114. package/skills/check-reporting/references/checklists/STARD_AI.md +211 -0
  115. package/skills/check-reporting/references/checklists/STROBE.md +80 -0
  116. package/skills/check-reporting/references/checklists/SWiM.md +33 -0
  117. package/skills/check-reporting/references/checklists/TRIPOD.md +157 -0
  118. package/skills/check-reporting/references/checklists/TRIPOD_AI.md +140 -0
  119. package/skills/check-reporting/references/step4c_registration_timing.md +93 -0
  120. package/skills/check-reporting/references/step4d_prisma_figure_audit.md +137 -0
  121. package/skills/check-reporting/scripts/check_checklist_exists.py +183 -0
  122. package/skills/check-reporting/scripts/check_checklist_version.py +168 -0
  123. package/skills/check-reporting/scripts/check_framework_naming.py +206 -0
  124. package/skills/check-reporting/scripts/check_prisma_figure.py +209 -0
  125. package/skills/check-reporting/scripts/prisma_cascade_check.py +274 -0
  126. package/skills/check-reporting/skill.yml +41 -0
  127. package/skills/check-reporting/tests/fixtures/framework_bad.md +8 -0
  128. package/skills/check-reporting/tests/fixtures/framework_clean.md +7 -0
  129. package/skills/check-reporting/tests/test_checklist_fail_fast.sh +77 -0
  130. package/skills/check-reporting/tests/test_checklist_version.sh +72 -0
  131. package/skills/check-reporting/tests/test_framework_naming.sh +45 -0
  132. package/skills/check-reporting/tests/test_prisma_cascade.sh +104 -0
  133. package/skills/clean-data/SKILL.md +180 -0
  134. package/skills/clean-data/references/cleaning_patterns.md +299 -0
  135. package/skills/clean-data/references/profiling_template.py +304 -0
  136. package/skills/clean-data/scripts/check_structural_zero.py +174 -0
  137. package/skills/clean-data/skill.yml +35 -0
  138. package/skills/clean-data/tests/fixtures/smoking.csv +8 -0
  139. package/skills/clean-data/tests/test_structural_zero.sh +49 -0
  140. package/skills/cross-national/SKILL.md +264 -0
  141. package/skills/cross-national/skill.yml +37 -0
  142. package/skills/define-variables/SKILL.md +146 -0
  143. package/skills/define-variables/references/common_definitions.md +190 -0
  144. package/skills/define-variables/skill.yml +34 -0
  145. package/skills/define-variables/templates/variable_operationalization.md +64 -0
  146. package/skills/deidentify/SKILL.md +203 -0
  147. package/skills/deidentify/deidentify.py +1224 -0
  148. package/skills/deidentify/locales/_template.json +45 -0
  149. package/skills/deidentify/locales/au.json +43 -0
  150. package/skills/deidentify/locales/ca.json +44 -0
  151. package/skills/deidentify/locales/cn.json +47 -0
  152. package/skills/deidentify/locales/de.json +48 -0
  153. package/skills/deidentify/locales/fr.json +48 -0
  154. package/skills/deidentify/locales/in.json +48 -0
  155. package/skills/deidentify/locales/jp.json +48 -0
  156. package/skills/deidentify/locales/kr.json +48 -0
  157. package/skills/deidentify/locales/uk.json +45 -0
  158. package/skills/deidentify/locales/us.json +43 -0
  159. package/skills/deidentify/references/date_shift_guide.md +82 -0
  160. package/skills/deidentify/references/hipaa_18_identifiers.md +48 -0
  161. package/skills/deidentify/references/korean_phi_patterns.md +135 -0
  162. package/skills/deidentify/skill.yml +43 -0
  163. package/skills/deidentify/tests/README.md +26 -0
  164. package/skills/deidentify/tests/test_clean.csv +16 -0
  165. package/skills/deidentify/tests/test_edge_cases.csv +11 -0
  166. package/skills/deidentify/tests/test_phi_korean.csv +11 -0
  167. package/skills/design-ai-benchmarking/SKILL.md +214 -0
  168. package/skills/design-ai-benchmarking/references/benchmark_export_schema.json +69 -0
  169. package/skills/design-ai-benchmarking/references/elicitation_rubric_template.md +37 -0
  170. package/skills/design-ai-benchmarking/skill.yml +38 -0
  171. package/skills/design-study/SKILL.md +298 -0
  172. package/skills/design-study/skill.yml +33 -0
  173. package/skills/fill-icmje-coi/SKILL.md +216 -0
  174. package/skills/fill-icmje-coi/scripts/fill_icmje_coi.py +140 -0
  175. package/skills/fill-icmje-coi/skill.yml +35 -0
  176. package/skills/fill-icmje-coi/templates/icmje_coi_seed_synthetic.docx +0 -0
  177. package/skills/fill-protocol/SKILL.md +248 -0
  178. package/skills/fill-protocol/examples/example_irb_template.yaml +53 -0
  179. package/skills/fill-protocol/references/best_practices.md +121 -0
  180. package/skills/fill-protocol/scripts/doc_to_docx.py +111 -0
  181. package/skills/fill-protocol/scripts/fill_form.py +611 -0
  182. package/skills/fill-protocol/scripts/inspect_template.py +61 -0
  183. package/skills/fill-protocol/setup.sh +162 -0
  184. package/skills/fill-protocol/skill.yml +37 -0
  185. package/skills/find-cohort-gap/SKILL.md +309 -0
  186. package/skills/find-cohort-gap/references/cohort_profile_template.md +93 -0
  187. package/skills/find-cohort-gap/references/onepager_template.md +84 -0
  188. package/skills/find-cohort-gap/references/pattern_scoring_rubric.md +169 -0
  189. package/skills/find-cohort-gap/references/saturation_query_templates.md +143 -0
  190. package/skills/find-cohort-gap/skill.yml +35 -0
  191. package/skills/find-journal/POLICY.md +87 -0
  192. package/skills/find-journal/SKILL.md +340 -0
  193. package/skills/find-journal/references/journal_profiles/AJNR.md +29 -0
  194. package/skills/find-journal/references/journal_profiles/AJR.md +30 -0
  195. package/skills/find-journal/references/journal_profiles/Abdominal_Radiology.md +30 -0
  196. package/skills/find-journal/references/journal_profiles/Academic_Radiology.md +30 -0
  197. package/skills/find-journal/references/journal_profiles/Annals_of_Internal_Medicine.md +33 -0
  198. package/skills/find-journal/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +28 -0
  199. package/skills/find-journal/references/journal_profiles/BMC_Medicine.md +31 -0
  200. package/skills/find-journal/references/journal_profiles/British_Journal_of_Radiology.md +39 -0
  201. package/skills/find-journal/references/journal_profiles/CVIR.md +30 -0
  202. package/skills/find-journal/references/journal_profiles/Chest.md +39 -0
  203. package/skills/find-journal/references/journal_profiles/Clinical_Radiology.md +30 -0
  204. package/skills/find-journal/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +32 -0
  205. package/skills/find-journal/references/journal_profiles/Diabetes_Metabolism_Journal.md +36 -0
  206. package/skills/find-journal/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +32 -0
  207. package/skills/find-journal/references/journal_profiles/Endocrinology_and_Metabolism.md +37 -0
  208. package/skills/find-journal/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +39 -0
  209. package/skills/find-journal/references/journal_profiles/European_Radiology.md +29 -0
  210. package/skills/find-journal/references/journal_profiles/Hepatology_Communications.md +40 -0
  211. package/skills/find-journal/references/journal_profiles/Hepatology_International.md +37 -0
  212. package/skills/find-journal/references/journal_profiles/IEEE_JBHI.md +28 -0
  213. package/skills/find-journal/references/journal_profiles/IEEE_TMI.md +28 -0
  214. package/skills/find-journal/references/journal_profiles/INSI.md +29 -0
  215. package/skills/find-journal/references/journal_profiles/Investigative_Radiology.md +25 -0
  216. package/skills/find-journal/references/journal_profiles/JACC_Advances.md +41 -0
  217. package/skills/find-journal/references/journal_profiles/JACC_Asia.md +30 -0
  218. package/skills/find-journal/references/journal_profiles/JACR.md +28 -0
  219. package/skills/find-journal/references/journal_profiles/JAMA.md +40 -0
  220. package/skills/find-journal/references/journal_profiles/JAMA_Network_Open.md +30 -0
  221. package/skills/find-journal/references/journal_profiles/JCSM.md +39 -0
  222. package/skills/find-journal/references/journal_profiles/JKMS.md +32 -0
  223. package/skills/find-journal/references/journal_profiles/JMIR.md +29 -0
  224. package/skills/find-journal/references/journal_profiles/JMIR_Medical_Education.md +29 -0
  225. package/skills/find-journal/references/journal_profiles/JNIS.md +35 -0
  226. package/skills/find-journal/references/journal_profiles/JVIR.md +31 -0
  227. package/skills/find-journal/references/journal_profiles/Journal_of_Biomedical_Informatics.md +29 -0
  228. package/skills/find-journal/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +40 -0
  229. package/skills/find-journal/references/journal_profiles/Journal_of_Magnetic_Resonance_Imaging.md +30 -0
  230. package/skills/find-journal/references/journal_profiles/Journal_of_Nuclear_Medicine.md +31 -0
  231. package/skills/find-journal/references/journal_profiles/Journal_of_Stroke.md +32 -0
  232. package/skills/find-journal/references/journal_profiles/KJR.md +38 -0
  233. package/skills/find-journal/references/journal_profiles/Korean_Circulation_Journal.md +38 -0
  234. package/skills/find-journal/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +36 -0
  235. package/skills/find-journal/references/journal_profiles/Lancet_Diabetes_and_Endocrinology.md +40 -0
  236. package/skills/find-journal/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +49 -0
  237. package/skills/find-journal/references/journal_profiles/Lancet_Infectious_Diseases.md +38 -0
  238. package/skills/find-journal/references/journal_profiles/Lancet_Neurology.md +39 -0
  239. package/skills/find-journal/references/journal_profiles/Lancet_Oncology.md +40 -0
  240. package/skills/find-journal/references/journal_profiles/Lancet_Psychiatry.md +38 -0
  241. package/skills/find-journal/references/journal_profiles/Lancet_Public_Health.md +30 -0
  242. package/skills/find-journal/references/journal_profiles/Lancet_Respiratory_Medicine.md +39 -0
  243. package/skills/find-journal/references/journal_profiles/Liver_International.md +33 -0
  244. package/skills/find-journal/references/journal_profiles/Medical_Image_Analysis.md +28 -0
  245. package/skills/find-journal/references/journal_profiles/NEJM.md +33 -0
  246. package/skills/find-journal/references/journal_profiles/Nature_Machine_Intelligence.md +31 -0
  247. package/skills/find-journal/references/journal_profiles/Nature_Medicine.md +39 -0
  248. package/skills/find-journal/references/journal_profiles/Neuroradiology.md +31 -0
  249. package/skills/find-journal/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +39 -0
  250. package/skills/find-journal/references/journal_profiles/PLOS_Medicine.md +32 -0
  251. package/skills/find-journal/references/journal_profiles/RYAI.md +28 -0
  252. package/skills/find-journal/references/journal_profiles/Radiology.md +29 -0
  253. package/skills/find-journal/references/journal_profiles/Skeletal_Radiology.md +31 -0
  254. package/skills/find-journal/references/journal_profiles/Stroke.md +37 -0
  255. package/skills/find-journal/references/journal_profiles/The_BMJ.md +31 -0
  256. package/skills/find-journal/references/journal_profiles/The_Lancet.md +31 -0
  257. package/skills/find-journal/references/journal_profiles/The_Lancet_Digital_Health.md +29 -0
  258. package/skills/find-journal/references/journal_profiles/World_Journal_of_Hepatology.md +53 -0
  259. package/skills/find-journal/references/journal_profiles/npj_Digital_Medicine.md +29 -0
  260. package/skills/find-journal/skill.yml +34 -0
  261. package/skills/fulltext-retrieval/SKILL.md +174 -0
  262. package/skills/fulltext-retrieval/fetch_oa.py +433 -0
  263. package/skills/fulltext-retrieval/pdf_to_md.py +160 -0
  264. package/skills/fulltext-retrieval/skill.yml +41 -0
  265. package/skills/generate-codebook/SKILL.md +155 -0
  266. package/skills/generate-codebook/references/codebook_schema.md +76 -0
  267. package/skills/generate-codebook/scripts/generate_codebook.py +278 -0
  268. package/skills/generate-codebook/skill.yml +35 -0
  269. package/skills/generate-codebook/tests/test_generate_codebook.sh +76 -0
  270. package/skills/grant-builder/SKILL.md +251 -0
  271. package/skills/grant-builder/skill.yml +34 -0
  272. package/skills/humanize/SKILL.md +251 -0
  273. package/skills/humanize/references/ai_patterns.md +571 -0
  274. package/skills/humanize/skill.yml +33 -0
  275. package/skills/intake-project/SKILL.md +264 -0
  276. package/skills/intake-project/skill.yml +34 -0
  277. package/skills/lit-sync/SKILL.md +448 -0
  278. package/skills/lit-sync/references/locale/ko/note_templates.md +110 -0
  279. package/skills/lit-sync/skill.yml +52 -0
  280. package/skills/lit-sync/tests/test_poll_logic.sh +92 -0
  281. package/skills/ma-scout/SKILL.md +640 -0
  282. package/skills/ma-scout/references/project_readme_template.md +95 -0
  283. package/skills/ma-scout/references/project_readme_template_ko.md +82 -0
  284. package/skills/ma-scout/skill.yml +33 -0
  285. package/skills/make-figures/SKILL.md +957 -0
  286. package/skills/make-figures/references/critic_rubrics/data_plot.md +166 -0
  287. package/skills/make-figures/references/critic_rubrics/flow_diagram.md +169 -0
  288. package/skills/make-figures/references/design_principles.md +181 -0
  289. package/skills/make-figures/references/exemplar_diagrams/README.md +65 -0
  290. package/skills/make-figures/references/exemplar_diagrams/consort/README.md +15 -0
  291. package/skills/make-figures/references/exemplar_diagrams/consort/template_input.yaml +37 -0
  292. package/skills/make-figures/references/exemplar_diagrams/consort/template_output.pdf +0 -0
  293. package/skills/make-figures/references/exemplar_diagrams/consort/template_output.png +0 -0
  294. package/skills/make-figures/references/exemplar_diagrams/consort/template_output_600.png +0 -0
  295. package/skills/make-figures/references/exemplar_diagrams/other/other_02.meta.yaml +4 -0
  296. package/skills/make-figures/references/exemplar_diagrams/other/other_02.png +0 -0
  297. package/skills/make-figures/references/exemplar_diagrams/other/other_02_why.md +13 -0
  298. package/skills/make-figures/references/exemplar_diagrams/pipeline/README.md +15 -0
  299. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.meta.yaml +4 -0
  300. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.png +0 -0
  301. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01_why.md +13 -0
  302. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.meta.yaml +4 -0
  303. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.png +0 -0
  304. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03_why.md +13 -0
  305. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.meta.yaml +4 -0
  306. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.png +0 -0
  307. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04_why.md +13 -0
  308. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.meta.yaml +4 -0
  309. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.png +0 -0
  310. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05_why.md +13 -0
  311. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.meta.yaml +4 -0
  312. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.png +0 -0
  313. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06_why.md +13 -0
  314. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.meta.yaml +4 -0
  315. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.png +0 -0
  316. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07_why.md +13 -0
  317. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.meta.yaml +4 -0
  318. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.png +0 -0
  319. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08_why.md +13 -0
  320. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.meta.yaml +4 -0
  321. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.png +0 -0
  322. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09_why.md +13 -0
  323. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.meta.yaml +4 -0
  324. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.png +0 -0
  325. package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10_why.md +13 -0
  326. package/skills/make-figures/references/exemplar_diagrams/prisma/README.md +15 -0
  327. package/skills/make-figures/references/exemplar_diagrams/prisma/template_input.yaml +47 -0
  328. package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.pdf +0 -0
  329. package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.png +0 -0
  330. package/skills/make-figures/references/exemplar_diagrams/prisma/template_output_600.png +0 -0
  331. package/skills/make-figures/references/exemplar_diagrams/stard/README.md +15 -0
  332. package/skills/make-figures/references/exemplar_diagrams/stard/template_input.yaml +40 -0
  333. package/skills/make-figures/references/exemplar_diagrams/stard/template_output.pdf +0 -0
  334. package/skills/make-figures/references/exemplar_diagrams/stard/template_output.png +0 -0
  335. package/skills/make-figures/references/exemplar_diagrams/stard/template_output_600.png +0 -0
  336. package/skills/make-figures/references/exemplar_diagrams/strobe/template_input.yaml +43 -0
  337. package/skills/make-figures/references/exemplar_diagrams/strobe/template_input_pptx.yaml +43 -0
  338. package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pdf +0 -0
  339. package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.png +0 -0
  340. package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pptx +0 -0
  341. package/skills/make-figures/references/exemplar_diagrams/strobe/template_output_600.png +0 -0
  342. package/skills/make-figures/references/figure_specs.md +291 -0
  343. package/skills/make-figures/references/flow_diagram_lessons.md +164 -0
  344. package/skills/make-figures/references/jacc_central_illustration_principles.md +91 -0
  345. package/skills/make-figures/references/medical_illustration_sources.md +98 -0
  346. package/skills/make-figures/references/pipeline_concepts_medical_ai.md +240 -0
  347. package/skills/make-figures/references/reporting_guideline_figure_map.md +104 -0
  348. package/skills/make-figures/references/visual_abstract_templates/european_radiology.pptx +0 -0
  349. package/skills/make-figures/references/visual_abstract_templates/jacc_central_illustration.pptx +0 -0
  350. package/skills/make-figures/references/visual_abstract_templates/medsci_default.pptx +0 -0
  351. package/skills/make-figures/references/visual_abstract_templates/template_guide.md +114 -0
  352. package/skills/make-figures/scripts/build_jacc_template.py +77 -0
  353. package/skills/make-figures/scripts/build_prisma2020_template.py +371 -0
  354. package/skills/make-figures/scripts/build_strobe_template.py +351 -0
  355. package/skills/make-figures/scripts/critic_figure.py +264 -0
  356. package/skills/make-figures/scripts/derive_figure_legend_counts.py +138 -0
  357. package/skills/make-figures/scripts/extract_exemplar_from_pdf.py +186 -0
  358. package/skills/make-figures/scripts/fetch_official_templates.sh +88 -0
  359. package/skills/make-figures/scripts/fill_prisma_template.py +142 -0
  360. package/skills/make-figures/scripts/generate_flow_diagram.R +133 -0
  361. package/skills/make-figures/scripts/generate_image.py +99 -0
  362. package/skills/make-figures/scripts/generate_visual_abstract.py +438 -0
  363. package/skills/make-figures/scripts/validate_pptx_mac_compat.py +233 -0
  364. package/skills/make-figures/skill.yml +52 -0
  365. package/skills/make-figures/templates/official/NOTES.md +62 -0
  366. package/skills/make-figures/templates/official/consort2010/CONSORT_2025_editable_checklist.docx +0 -0
  367. package/skills/make-figures/templates/official/consort2010/CONSORT_2025_flow_diagram.docx +0 -0
  368. package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v1.pptx +0 -0
  369. package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v2.pptx +0 -0
  370. package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_updated_v2.pptx +0 -0
  371. package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_editable_checklist.docx +0 -0
  372. package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_participant_timeline.docx +0 -0
  373. package/skills/make-figures/templates/official/stard2015/STARD_2015_checklist.docx +0 -0
  374. package/skills/make-figures/templates/official/stard2015/STARD_2015_flow_diagram.pdf +0 -0
  375. package/skills/make-figures/tests/fixtures/figure1_flow.yaml +8 -0
  376. package/skills/make-figures/tests/fixtures/manuscript_ok.md +9 -0
  377. package/skills/make-figures/tests/fixtures/manuscript_stale.md +4 -0
  378. package/skills/make-figures/tests/test_legend_reconcile.sh +36 -0
  379. package/skills/manage-project/SKILL.md +358 -0
  380. package/skills/manage-project/references/pre_submission_checklist.md +53 -0
  381. package/skills/manage-project/references/project_state_template.json +37 -0
  382. package/skills/manage-project/references/scaffold_templates.md +118 -0
  383. package/skills/manage-project/references/status_output_format.md +44 -0
  384. package/skills/manage-project/references/timeline_example.md +20 -0
  385. package/skills/manage-project/skill.yml +36 -0
  386. package/skills/manage-project/templates/SSOT.yaml.template +41 -0
  387. package/skills/manage-refs/LICENSE.zotero-mcp +21 -0
  388. package/skills/manage-refs/NOTICE.md +29 -0
  389. package/skills/manage-refs/SKILL.md +289 -0
  390. package/skills/manage-refs/citation_styles/README.md +40 -0
  391. package/skills/manage-refs/citation_styles/american-journal-of-roentgenology.csl +211 -0
  392. package/skills/manage-refs/citation_styles/cardiovascular-and-interventional-radiology.csl +19 -0
  393. package/skills/manage-refs/citation_styles/european-radiology.csl +19 -0
  394. package/skills/manage-refs/citation_styles/journal-of-cachexia-sarcopenia-and-muscle.csl +150 -0
  395. package/skills/manage-refs/citation_styles/journal-of-korean-medical-science-strict.csl +533 -0
  396. package/skills/manage-refs/citation_styles/journal-of-korean-medical-science.csl +16 -0
  397. package/skills/manage-refs/citation_styles/korean-journal-of-radiology.csl +155 -0
  398. package/skills/manage-refs/citation_styles/nature.csl +189 -0
  399. package/skills/manage-refs/citation_styles/nlm-citation-sequence.csl +535 -0
  400. package/skills/manage-refs/citation_styles/radiology.csl +228 -0
  401. package/skills/manage-refs/citation_styles/springer-basic-brackets.csl +187 -0
  402. package/skills/manage-refs/citation_styles/springer-vancouver-brackets.csl +276 -0
  403. package/skills/manage-refs/citation_styles/vancouver-superscript.csl +536 -0
  404. package/skills/manage-refs/citation_styles/vancouver.csl +535 -0
  405. package/skills/manage-refs/references/REFERENCE_STYLE_SPECS.md +59 -0
  406. package/skills/manage-refs/references/check_xref_symptoms.md +35 -0
  407. package/skills/manage-refs/scripts/_vendor_citation_writer.py +600 -0
  408. package/skills/manage-refs/scripts/check_citation_keys.py +112 -0
  409. package/skills/manage-refs/scripts/check_csl_render.py +102 -0
  410. package/skills/manage-refs/scripts/check_xref.py +633 -0
  411. package/skills/manage-refs/scripts/fill_journal_abbrev.py +104 -0
  412. package/skills/manage-refs/scripts/inject_zotero_cwyw.py +133 -0
  413. package/skills/manage-refs/scripts/md_marker_convert.py +193 -0
  414. package/skills/manage-refs/scripts/pre_submission_gate.sh +238 -0
  415. package/skills/manage-refs/scripts/render_pandoc.sh +88 -0
  416. package/skills/manage-refs/skill.yml +70 -0
  417. package/skills/manage-refs/tests/fixtures/pre_submission_gate/README.md +32 -0
  418. package/skills/manage-refs/tests/fixtures/pre_submission_gate/manuscript.md +10 -0
  419. package/skills/manage-refs/tests/fixtures/pre_submission_gate/refs.bib +34 -0
  420. package/skills/manage-refs/tests/fixtures/pre_submission_gate/run.sh +117 -0
  421. package/skills/manage-refs/tests/test_vN_docx_check.sh +145 -0
  422. package/skills/meta-analysis/SKILL.md +739 -0
  423. package/skills/meta-analysis/references/LICENSES.md +21 -0
  424. package/skills/meta-analysis/references/PROSPERO_template.md +221 -0
  425. package/skills/meta-analysis/references/ai_pre_screening_template.py +245 -0
  426. package/skills/meta-analysis/references/checklists/JBI_Case_Series.md +45 -0
  427. package/skills/meta-analysis/references/checklists/NOS.md +88 -0
  428. package/skills/meta-analysis/references/checklists/PRISMA_DTA.md +36 -0
  429. package/skills/meta-analysis/references/checklists/PROBAST.md +75 -0
  430. package/skills/meta-analysis/references/checklists/QUADAS2.md +77 -0
  431. package/skills/meta-analysis/references/checklists/ROBINS_I.md +87 -0
  432. package/skills/meta-analysis/references/checklists/RoB2.md +79 -0
  433. package/skills/meta-analysis/references/data_integrity_checklist.md +57 -0
  434. package/skills/meta-analysis/references/icmje_coi_guide.md +181 -0
  435. package/skills/meta-analysis/references/phase10_recovery.md +136 -0
  436. package/skills/meta-analysis/references/phase4_km_composite.md +58 -0
  437. package/skills/meta-analysis/references/phase6_statistical_synthesis.md +148 -0
  438. package/skills/meta-analysis/references/phase9_circulation.md +84 -0
  439. package/skills/meta-analysis/references/post_submission_release_ops.md +41 -0
  440. package/skills/meta-analysis/references/r_templates.md +132 -0
  441. package/skills/meta-analysis/references/review_orchestration.md +40 -0
  442. package/skills/meta-analysis/references/submission_package_drift.md +71 -0
  443. package/skills/meta-analysis/scripts/check_pool_consistency.py +201 -0
  444. package/skills/meta-analysis/scripts/cohort_overlap_check.py +242 -0
  445. package/skills/meta-analysis/scripts/dta_extraction_qc.py +137 -0
  446. package/skills/meta-analysis/scripts/screening_reconcile.py +160 -0
  447. package/skills/meta-analysis/skill.yml +47 -0
  448. package/skills/meta-analysis/templates/FINAL_POOL_LOCK.yaml.template +70 -0
  449. package/skills/meta-analysis/templates/extraction_form_v2.md +129 -0
  450. package/skills/meta-analysis/templates/supplementary_8file_checklist.md +94 -0
  451. package/skills/meta-analysis/tests/test_pool_consistency.sh +123 -0
  452. package/skills/orchestrate/SKILL.md +501 -0
  453. package/skills/orchestrate/references/dialogue_nodes.md +196 -0
  454. package/skills/orchestrate/references/report_template.md +109 -0
  455. package/skills/orchestrate/references/report_template_ko.md +88 -0
  456. package/skills/orchestrate/skill.yml +44 -0
  457. package/skills/peer-review/SKILL.md +381 -0
  458. package/skills/peer-review/references/aczel_2021_reviewer2_patterns.md +88 -0
  459. package/skills/peer-review/references/domain-probes/ai_overclaiming.md +47 -0
  460. package/skills/peer-review/references/domain-probes/narrative_review.md +44 -0
  461. package/skills/peer-review/references/domain-probes/observational_confounding.md +48 -0
  462. package/skills/peer-review/references/domain-probes/radiomics.md +38 -0
  463. package/skills/peer-review/references/domain-probes/sr_ma.md +87 -0
  464. package/skills/peer-review/references/domain-probes/survival_prognostic.md +68 -0
  465. package/skills/peer-review/references/exemplar_reviews/README.md +43 -0
  466. package/skills/peer-review/references/exemplar_reviews/ai_overclaiming.md +47 -0
  467. package/skills/peer-review/references/exemplar_reviews/calibration_missing.md +44 -0
  468. package/skills/peer-review/references/exemplar_reviews/data_leakage.md +48 -0
  469. package/skills/peer-review/references/exemplar_reviews/reference_standard_validity.md +45 -0
  470. package/skills/peer-review/references/narrative_review_audit.md +67 -0
  471. package/skills/peer-review/references/reviewer_calibration/README.md +34 -0
  472. package/skills/peer-review/references/reviewer_calibration/compliance_floor.md +52 -0
  473. package/skills/peer-review/references/reviewer_profiles/AJR.md +82 -0
  474. package/skills/peer-review/references/reviewer_profiles/EURE.md +64 -0
  475. package/skills/peer-review/references/reviewer_profiles/INSI.md +57 -0
  476. package/skills/peer-review/references/reviewer_profiles/KJR.md +100 -0
  477. package/skills/peer-review/references/reviewer_profiles/README.md +32 -0
  478. package/skills/peer-review/references/reviewer_profiles/RYAI.md +86 -0
  479. package/skills/peer-review/skill.yml +39 -0
  480. package/skills/present-paper/SKILL.md +675 -0
  481. package/skills/present-paper/references/critic_rubrics/slide.md +155 -0
  482. package/skills/present-paper/references/generate_pptx_templates.py +604 -0
  483. package/skills/present-paper/references/medical_presentation_templates.md +277 -0
  484. package/skills/present-paper/references/slide_design_principles.md +202 -0
  485. package/skills/present-paper/references/slide_visual_styles/nature_lancet.md +168 -0
  486. package/skills/present-paper/references/workflow-checklist.md +109 -0
  487. package/skills/present-paper/scripts/extract_pdf_figures.py +243 -0
  488. package/skills/present-paper/scripts/inject_pronunciation_notes.py +178 -0
  489. package/skills/present-paper/scripts/inject_speaker_notes.py +133 -0
  490. package/skills/present-paper/scripts/strip_notes_for_sharing.py +140 -0
  491. package/skills/present-paper/scripts/trim_caption.py +271 -0
  492. package/skills/present-paper/skill.yml +41 -0
  493. package/skills/present-paper/templates/build_pptx_nature_lancet.py +688 -0
  494. package/skills/publish-skill/SKILL.md +370 -0
  495. package/skills/publish-skill/references/license-compatibility-matrix.md +132 -0
  496. package/skills/publish-skill/references/pii-patterns.md +130 -0
  497. package/skills/publish-skill/scripts/audit_skill.sh +278 -0
  498. package/skills/publish-skill/skill.yml +35 -0
  499. package/skills/render-pdf-doc/SKILL.md +146 -0
  500. package/skills/render-pdf-doc/references/known_pitfalls.md +53 -0
  501. package/skills/render-pdf-doc/references/pandoc_korean_cheatsheet.md +77 -0
  502. package/skills/render-pdf-doc/scripts/check_deps.sh +42 -0
  503. package/skills/render-pdf-doc/scripts/infer_colwidths.py +164 -0
  504. package/skills/render-pdf-doc/scripts/render_pdf.sh +98 -0
  505. package/skills/render-pdf-doc/skill.yml +57 -0
  506. package/skills/render-pdf-doc/templates/anchor-doc.md +27 -0
  507. package/skills/render-pdf-doc/templates/anchor-doc_ko.md +25 -0
  508. package/skills/render-pdf-doc/templates/briefing-handout.md +33 -0
  509. package/skills/render-pdf-doc/templates/briefing-handout_ko.md +31 -0
  510. package/skills/render-pdf-doc/templates/proposal-cover.md +33 -0
  511. package/skills/render-pdf-doc/templates/proposal-cover_ko.md +31 -0
  512. package/skills/render-pdf-doc/templates/reference-table.md +22 -0
  513. package/skills/render-pdf-doc/templates/reference-table_ko.md +20 -0
  514. package/skills/replicate-study/SKILL.md +150 -0
  515. package/skills/replicate-study/references/harmonization_3country.csv +47 -0
  516. package/skills/replicate-study/references/harmonization_knhanes_nhanes.csv +68 -0
  517. package/skills/replicate-study/references/methodology_extraction_template.md +134 -0
  518. package/skills/replicate-study/skill.yml +37 -0
  519. package/skills/review-paper/SKILL.md +104 -0
  520. package/skills/review-paper/references/macro_skeleton.md +6 -0
  521. package/skills/review-paper/skill.yml +25 -0
  522. package/skills/revise/SKILL.md +515 -0
  523. package/skills/revise/references/r2r_voice.md +346 -0
  524. package/skills/revise/skill.yml +43 -0
  525. package/skills/search-lit/SKILL.md +443 -0
  526. package/skills/search-lit/references/parse_pubmed.py +326 -0
  527. package/skills/search-lit/references/pubmed_eutils.sh +111 -0
  528. package/skills/search-lit/skill.yml +46 -0
  529. package/skills/self-review/SKILL.md +1045 -0
  530. package/skills/self-review/references/domain-probes/ai_overclaiming.md +47 -0
  531. package/skills/self-review/references/domain-probes/narrative_review.md +44 -0
  532. package/skills/self-review/references/domain-probes/observational_confounding.md +48 -0
  533. package/skills/self-review/references/domain-probes/radiomics.md +38 -0
  534. package/skills/self-review/references/domain-probes/sr_ma.md +87 -0
  535. package/skills/self-review/references/domain-probes/survival_prognostic.md +68 -0
  536. package/skills/self-review/references/exemplar_findings/README.md +43 -0
  537. package/skills/self-review/references/exemplar_findings/cohort_arithmetic_mismatch.md +35 -0
  538. package/skills/self-review/references/exemplar_findings/estimand_drift_posthoc_primary.md +39 -0
  539. package/skills/self-review/references/exemplar_findings/scope_overreach_cross_sectional.md +35 -0
  540. package/skills/self-review/references/exemplar_findings/unadjusted_confounder.md +36 -0
  541. package/skills/self-review/references/panel_review_template.md +177 -0
  542. package/skills/self-review/scripts/check_artifact_coverage.py +301 -0
  543. package/skills/self-review/scripts/check_claim_artifact.py +248 -0
  544. package/skills/self-review/scripts/check_classical_style.py +185 -0
  545. package/skills/self-review/scripts/check_cohort_arithmetic.py +481 -0
  546. package/skills/self-review/scripts/check_confounding_completeness.py +287 -0
  547. package/skills/self-review/scripts/check_panel_diversity.py +336 -0
  548. package/skills/self-review/scripts/check_reference_adequacy.py +392 -0
  549. package/skills/self-review/scripts/check_reviewer_team_consistency.py +412 -0
  550. package/skills/self-review/scripts/check_scope_coherence.py +177 -0
  551. package/skills/self-review/skill.yml +47 -0
  552. package/skills/self-review/tests/fixtures/claim_manuscript.md +17 -0
  553. package/skills/self-review/tests/fixtures/claim_prereg.md +6 -0
  554. package/skills/self-review/tests/fixtures/cohort_bad.md +21 -0
  555. package/skills/self-review/tests/fixtures/cohort_clean.md +21 -0
  556. package/skills/self-review/tests/fixtures/cohort_partition.csv +5 -0
  557. package/skills/self-review/tests/fixtures/coverage_analysis/31_delong_nested_added_value.csv +3 -0
  558. package/skills/self-review/tests/fixtures/coverage_analysis/table1_demographics.csv +3 -0
  559. package/skills/self-review/tests/fixtures/coverage_clean.md +13 -0
  560. package/skills/self-review/tests/fixtures/coverage_manuscript.md +11 -0
  561. package/skills/self-review/tests/fixtures/panel_collapse.json +27 -0
  562. package/skills/self-review/tests/fixtures/panel_good.json +32 -0
  563. package/skills/self-review/tests/fixtures/panel_monoculture.json +32 -0
  564. package/skills/self-review/tests/fixtures/refadeq_letter.md +13 -0
  565. package/skills/self-review/tests/fixtures/refadeq_original_fixed.md +42 -0
  566. package/skills/self-review/tests/fixtures/refadeq_original_uncited.md +40 -0
  567. package/skills/self-review/tests/fixtures/scope_bad.md +9 -0
  568. package/skills/self-review/tests/fixtures/scope_clean.md +8 -0
  569. package/skills/self-review/tests/fixtures/scope_surrogate.md +8 -0
  570. package/skills/self-review/tests/fixtures/style_bad.md +13 -0
  571. package/skills/self-review/tests/fixtures/style_clean.md +11 -0
  572. package/skills/self-review/tests/fixtures/table1_by_exposure.csv +11 -0
  573. package/skills/self-review/tests/test_artifact_coverage.sh +44 -0
  574. package/skills/self-review/tests/test_claim_artifact.sh +50 -0
  575. package/skills/self-review/tests/test_classical_style.sh +44 -0
  576. package/skills/self-review/tests/test_cohort_arithmetic.sh +49 -0
  577. package/skills/self-review/tests/test_confounding_completeness.sh +66 -0
  578. package/skills/self-review/tests/test_panel_diversity.sh +55 -0
  579. package/skills/self-review/tests/test_panel_mode.sh +69 -0
  580. package/skills/self-review/tests/test_reference_adequacy.sh +68 -0
  581. package/skills/self-review/tests/test_reviewer_team_consistency.sh +138 -0
  582. package/skills/self-review/tests/test_scope_coherence.sh +46 -0
  583. package/skills/setup-medsci/SKILL.md +110 -0
  584. package/skills/setup-medsci/references/setup-checklist.md +51 -0
  585. package/skills/setup-medsci/skill.yml +30 -0
  586. package/skills/sync-submission/SKILL.md +382 -0
  587. package/skills/sync-submission/scripts/author_registry_example.yaml +36 -0
  588. package/skills/sync-submission/scripts/blind_sweep.py +203 -0
  589. package/skills/sync-submission/scripts/check_asset_anonymization.py +300 -0
  590. package/skills/sync-submission/scripts/check_cross_artifact_stale.py +211 -0
  591. package/skills/sync-submission/scripts/cover_letter_drift_check.py +451 -0
  592. package/skills/sync-submission/scripts/cross_document_n_check.py +486 -0
  593. package/skills/sync-submission/scripts/detect_copy_divergence.py +136 -0
  594. package/skills/sync-submission/scripts/preflight_gate.py +458 -0
  595. package/skills/sync-submission/scripts/scope_drift_check.py +362 -0
  596. package/skills/sync-submission/scripts/sync_submission.py +169 -0
  597. package/skills/sync-submission/skill.yml +43 -0
  598. package/skills/sync-submission/tests/fixtures/copy_ok.md +5 -0
  599. package/skills/sync-submission/tests/fixtures/copy_stale.md +5 -0
  600. package/skills/sync-submission/tests/fixtures/ssot.md +5 -0
  601. package/skills/sync-submission/tests/test_asset_anonymization.sh +99 -0
  602. package/skills/sync-submission/tests/test_copy_divergence.sh +44 -0
  603. package/skills/sync-submission/tests/test_cross_artifact_stale.sh +80 -0
  604. package/skills/sync-submission/tests/test_cross_document_n.sh +132 -0
  605. package/skills/sync-submission/tests/test_preflight_gate.sh +112 -0
  606. package/skills/sync-submission/tests/test_scope_drift.sh +122 -0
  607. package/skills/sync-submission/tests/test_vN_docx_assertion.sh +51 -0
  608. package/skills/verify-refs/SKILL.md +177 -0
  609. package/skills/verify-refs/references/manual_checkpoint_guide.md +100 -0
  610. package/skills/verify-refs/scripts/verify_cli.sh +62 -0
  611. package/skills/verify-refs/scripts/verify_refs.py +782 -0
  612. package/skills/verify-refs/skill.yml +44 -0
  613. package/skills/verify-refs/tests/fixtures/pagination_placeholder.bib +17 -0
  614. package/skills/verify-refs/tests/test_pagination_placeholder.sh +42 -0
  615. package/skills/version-dataset/SKILL.md +143 -0
  616. package/skills/version-dataset/references/manifest_schema.md +72 -0
  617. package/skills/version-dataset/scripts/version_dataset.py +242 -0
  618. package/skills/version-dataset/skill.yml +35 -0
  619. package/skills/version-dataset/tests/test_version_dataset.sh +52 -0
  620. package/skills/write-paper/SKILL.md +1148 -0
  621. package/skills/write-paper/references/exemplar_methods/README.md +38 -0
  622. package/skills/write-paper/references/exemplar_methods/ai_validation_tripod_claim.md +47 -0
  623. package/skills/write-paper/references/exemplar_methods/diagnostic_accuracy_stard.md +50 -0
  624. package/skills/write-paper/references/exemplar_methods/observational_cohort_strobe.md +43 -0
  625. package/skills/write-paper/references/journal_profiles/AJNR.md +185 -0
  626. package/skills/write-paper/references/journal_profiles/AJR.md +149 -0
  627. package/skills/write-paper/references/journal_profiles/Abdominal_Radiology.md +139 -0
  628. package/skills/write-paper/references/journal_profiles/Academic_Radiology.md +90 -0
  629. package/skills/write-paper/references/journal_profiles/Annals_of_Internal_Medicine.md +150 -0
  630. package/skills/write-paper/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +82 -0
  631. package/skills/write-paper/references/journal_profiles/British_Journal_of_Radiology.md +161 -0
  632. package/skills/write-paper/references/journal_profiles/CVIR.md +157 -0
  633. package/skills/write-paper/references/journal_profiles/Chest.md +270 -0
  634. package/skills/write-paper/references/journal_profiles/Clinical_Radiology.md +160 -0
  635. package/skills/write-paper/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +147 -0
  636. package/skills/write-paper/references/journal_profiles/Diabetes_Metabolism_Journal.md +163 -0
  637. package/skills/write-paper/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +216 -0
  638. package/skills/write-paper/references/journal_profiles/Endocrinology_and_Metabolism.md +167 -0
  639. package/skills/write-paper/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +192 -0
  640. package/skills/write-paper/references/journal_profiles/European_Radiology.md +159 -0
  641. package/skills/write-paper/references/journal_profiles/Hepatology_Communications.md +110 -0
  642. package/skills/write-paper/references/journal_profiles/Hepatology_International.md +106 -0
  643. package/skills/write-paper/references/journal_profiles/IEEE_TMI.md +180 -0
  644. package/skills/write-paper/references/journal_profiles/INSI.md +163 -0
  645. package/skills/write-paper/references/journal_profiles/Investigative_Radiology.md +86 -0
  646. package/skills/write-paper/references/journal_profiles/JACC_Advances.md +197 -0
  647. package/skills/write-paper/references/journal_profiles/JACC_Asia.md +168 -0
  648. package/skills/write-paper/references/journal_profiles/JACR.md +87 -0
  649. package/skills/write-paper/references/journal_profiles/JAMA.md +188 -0
  650. package/skills/write-paper/references/journal_profiles/JAMA_Network_Open.md +170 -0
  651. package/skills/write-paper/references/journal_profiles/JCSM.md +266 -0
  652. package/skills/write-paper/references/journal_profiles/JKMS.md +201 -0
  653. package/skills/write-paper/references/journal_profiles/JMIR.md +88 -0
  654. package/skills/write-paper/references/journal_profiles/JMIR_Medical_Education.md +86 -0
  655. package/skills/write-paper/references/journal_profiles/JNIS.md +227 -0
  656. package/skills/write-paper/references/journal_profiles/JVIR.md +158 -0
  657. package/skills/write-paper/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +191 -0
  658. package/skills/write-paper/references/journal_profiles/Journal_of_Stroke.md +176 -0
  659. package/skills/write-paper/references/journal_profiles/KJR.md +185 -0
  660. package/skills/write-paper/references/journal_profiles/Korean_Circulation_Journal.md +184 -0
  661. package/skills/write-paper/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +178 -0
  662. package/skills/write-paper/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +127 -0
  663. package/skills/write-paper/references/journal_profiles/Liver_International.md +165 -0
  664. package/skills/write-paper/references/journal_profiles/Medical_Image_Analysis.md +147 -0
  665. package/skills/write-paper/references/journal_profiles/NEJM.md +147 -0
  666. package/skills/write-paper/references/journal_profiles/Nature_Medicine.md +181 -0
  667. package/skills/write-paper/references/journal_profiles/Neuroradiology.md +151 -0
  668. package/skills/write-paper/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +184 -0
  669. package/skills/write-paper/references/journal_profiles/PLOS_Medicine.md +166 -0
  670. package/skills/write-paper/references/journal_profiles/RYAI.md +124 -0
  671. package/skills/write-paper/references/journal_profiles/Radiology.md +173 -0
  672. package/skills/write-paper/references/journal_profiles/Skeletal_Radiology.md +135 -0
  673. package/skills/write-paper/references/journal_profiles/Stroke.md +210 -0
  674. package/skills/write-paper/references/journal_profiles/The_BMJ.md +121 -0
  675. package/skills/write-paper/references/journal_profiles/The_Lancet.md +112 -0
  676. package/skills/write-paper/references/journal_profiles/The_Lancet_Digital_Health.md +104 -0
  677. package/skills/write-paper/references/journal_profiles/World_Journal_of_Hepatology.md +106 -0
  678. package/skills/write-paper/references/journal_profiles/npj_Digital_Medicine.md +93 -0
  679. package/skills/write-paper/references/paper_types/ai_validation.md +270 -0
  680. package/skills/write-paper/references/paper_types/animal_study.md +194 -0
  681. package/skills/write-paper/references/paper_types/case_report.md +237 -0
  682. package/skills/write-paper/references/paper_types/cross_national.md +328 -0
  683. package/skills/write-paper/references/paper_types/letter.md +127 -0
  684. package/skills/write-paper/references/paper_types/meta_analysis.md +181 -0
  685. package/skills/write-paper/references/paper_types/nhis_cohort.md +297 -0
  686. package/skills/write-paper/references/paper_types/original_article.md +221 -0
  687. package/skills/write-paper/references/paper_types/technical_note.md +131 -0
  688. package/skills/write-paper/references/section_guides/discussion.md +155 -0
  689. package/skills/write-paper/references/section_guides/introduction.md +108 -0
  690. package/skills/write-paper/references/section_guides/methods.md +144 -0
  691. package/skills/write-paper/references/section_guides/results.md +113 -0
  692. package/skills/write-paper/references/section_guides/step7_1_classical_qc.md +67 -0
  693. package/skills/write-paper/references/section_guides/step7_4a_audit_recovery.md +74 -0
  694. package/skills/write-paper/references/section_guides/title_abstract.md +123 -0
  695. package/skills/write-paper/references/section_templates/methods_statistical.md +147 -0
  696. package/skills/write-paper/scripts/check_placeholders.py +182 -0
  697. package/skills/write-paper/skill.yml +48 -0
  698. package/skills/write-paper/tests/test_placeholders.sh +107 -0
  699. package/skills/write-protocol/SKILL.md +243 -0
  700. package/skills/write-protocol/references/ethics_checklist.md +150 -0
  701. package/skills/write-protocol/references/protocol_template.md +304 -0
  702. package/skills/write-protocol/skill.yml +34 -0
@@ -0,0 +1,80 @@
1
+ # STROBE Checklist
2
+
3
+ **Strengthening the Reporting of Observational Studies in Epidemiology**
4
+ Version: STROBE 2007 (combined checklist for cohort, case-control, and cross-sectional studies)
5
+ Source: https://www.strobe-statement.org
6
+
7
+ ## Checklist Items (22 items)
8
+
9
+ ### Title and Abstract
10
+
11
+ | # | Item | Description |
12
+ |---|------|-------------|
13
+ | 1a | Title | Indicate the study's design with a commonly used term in the title or abstract. |
14
+ | 1b | Abstract | Provide in the abstract an informative and balanced summary of what was done and what was found. |
15
+
16
+ ### Introduction
17
+
18
+ | # | Item | Description |
19
+ |---|------|-------------|
20
+ | 2 | Background/rationale | Explain the scientific background and rationale for the investigation being reported. |
21
+ | 3 | Objectives | State specific objectives, including any prespecified hypotheses. |
22
+
23
+ ### Methods
24
+
25
+ | # | Item | Description |
26
+ |---|------|-------------|
27
+ | 4 | Study design | Present key elements of study design early in the paper. |
28
+ | 5 | Setting | Describe the setting, locations, and relevant dates, including periods of recruitment, exposure, follow-up, and data collection. |
29
+ | 6a | Participants | *Cohort study*: Give the eligibility criteria, and the sources and methods of selection of participants. Describe methods of follow-up. *Case-control study*: Give the eligibility criteria, and the sources and methods of case ascertainment and control selection. Give the rationale for the choice of cases and controls. *Cross-sectional study*: Give the eligibility criteria, and the sources and methods of selection of participants. |
30
+ | 6b | Participants | *Cohort study*: For matched studies, give matching criteria and number of exposed and unexposed. *Case-control study*: For matched studies, give matching criteria and the number of controls per case. |
31
+ | 7 | Variables | Clearly define all outcomes, exposures, predictors, potential confounders, and effect modifiers. Give diagnostic criteria, if applicable. |
32
+ | 8 | Data sources/measurement | For each variable of interest, give sources of data and details of methods of assessment (measurement). Describe comparability of assessment methods if there is more than one group. |
33
+ | 9 | Bias | Describe any efforts to address potential sources of bias. |
34
+ | 10 | Study size | Explain how the study size was arrived at. |
35
+ | 11 | Quantitative variables | Explain how quantitative variables were handled in the analyses. If applicable, describe which groupings were chosen and why. |
36
+ | 12a | Statistical methods | Describe all statistical methods, including those used to control for confounding. |
37
+ | 12b | Statistical methods | Describe any methods used to examine subgroups and interactions. |
38
+ | 12c | Statistical methods | Explain how missing data were addressed. |
39
+ | 12d | Statistical methods | *Cohort study*: If applicable, explain how loss to follow-up was addressed. *Case-control study*: If applicable, explain how matching of cases and controls was addressed. *Cross-sectional study*: If applicable, describe analytical methods taking account of sampling strategy. |
40
+ | 12e | Statistical methods | Describe any sensitivity analyses. |
41
+
42
+ ### Results
43
+
44
+ | # | Item | Description |
45
+ |---|------|-------------|
46
+ | 13a | Participants | Report numbers of individuals at each stage of study -- e.g., numbers potentially eligible, examined for eligibility, confirmed eligible, included in the study, completing follow-up, and analysed. |
47
+ | 13b | Participants | Give reasons for non-participation at each stage. |
48
+ | 13c | Participants | Consider use of a flow diagram. |
49
+ | 14a | Descriptive data | Give characteristics of study participants (e.g., demographic, clinical, social) and information on exposures and potential confounders. |
50
+ | 14b | Descriptive data | Indicate number of participants with missing data for each variable of interest. |
51
+ | 14c | Descriptive data | *Cohort study*: Summarise follow-up time (e.g., average and total amount). |
52
+ | 15 | Outcome data | *Cohort study*: Report numbers of outcome events or summary measures over time. *Case-control study*: Report numbers in each exposure category, or summary measures of exposure. *Cross-sectional study*: Report numbers of outcome events or summary measures. |
53
+ | 16a | Main results | Give unadjusted estimates and, if applicable, confounder-adjusted estimates and their precision (e.g., 95% confidence interval). Make clear which confounders were adjusted for and why they were included. |
54
+ | 16b | Main results | Report category boundaries when continuous variables were categorized. |
55
+ | 16c | Main results | If relevant, consider translating estimates of relative risk into absolute risk for a meaningful time period. |
56
+ | 17 | Other analyses | Report other analyses done -- e.g., analyses of subgroups and interactions, and sensitivity analyses. |
57
+
58
+ ### Discussion
59
+
60
+ | # | Item | Description |
61
+ |---|------|-------------|
62
+ | 18 | Key results | Summarise key results with reference to study objectives. |
63
+ | 19 | Limitations | Discuss limitations of the study, taking into account sources of potential bias or imprecision. Discuss both direction and magnitude of any potential bias. |
64
+ | 20 | Interpretation | Give a cautious overall interpretation of results considering objectives, limitations, multiplicity of analyses, results from similar studies, and other relevant evidence. |
65
+ | 21 | Generalisability | Discuss the generalisability (external validity) of the study results. |
66
+
67
+ ### Other Information
68
+
69
+ | # | Item | Description |
70
+ |---|------|-------------|
71
+ | 22 | Funding | Give the source of funding and the role of the funders for the present study and, if applicable, for the original study on which the present article is based. |
72
+
73
+ ---
74
+
75
+ ## Notes for Assessors
76
+
77
+ - Items 6b, 12d, and 14c have study-design-specific wording. Choose the version matching the study design.
78
+ - Item 13c (flow diagram) is a recommendation, not a strict requirement, but strongly encouraged.
79
+ - For studies involving AI/ML, consider also checking against TRIPOD+AI or CLAIM as applicable.
80
+ - STROBE extensions exist for specific designs: STROBE-ME (molecular epidemiology), STROBE-NI (neonatal infections), RECORD (routinely collected health data).
@@ -0,0 +1,33 @@
1
+ # SWiM Checklist
2
+
3
+ **Synthesis Without Meta-analysis (SWiM) in systematic reviews: reporting guideline**
4
+ Version: SWiM 2020
5
+ Source: Campbell M et al. BMJ 2020;368:l6890. doi: 10.1136/bmj.l6890
6
+ Website: https://swim.sphsu.gla.ac.uk/
7
+
8
+ ## Checklist Items (9 items)
9
+
10
+ ### Reporting Items
11
+
12
+ | # | Item | Description |
13
+ |---|------|-------------|
14
+ | 1 | Grouping studies for synthesis | Provide a description of and rationale for the groups used in the synthesis (e.g., by population, intervention, outcome, study design). Specify which studies were included in each group. |
15
+ | 2 | Describe the standardised metric and transformation methods used | Describe the standardised metric for each outcome and the methods used to transform study results (e.g., converting to a common effect measure such as risk ratio, mean difference, or standardized mean difference). If no transformation was applied, state the metric used in each study. |
16
+ | 3 | Describe the synthesis methods | Describe and justify the methods used to synthesise results when meta-analysis of effect estimates is not used. Methods include: vote counting based on direction of effect, combining P values, calculating the median effect size, combining confidence intervals, Bayesian synthesis, and other approaches. |
17
+ | 4 | Criteria used to prioritise results for summary and synthesis | Where applicable, describe criteria used to decide which study results to prioritise for the synthesis (e.g., most adjusted, longest follow-up, largest sample, most relevant outcome). |
18
+ | 5 | Investigation of heterogeneity in reported effects | Describe the methods used to examine how the synthesis results relate to key study characteristics. State whether heterogeneity was investigated (e.g., by narrative comparison of subgroups, visual inspection of forest plots without pooling, tabulation of results by study characteristics). |
19
+ | 6 | Certainty of evidence | Describe the methods used to assess certainty of the synthesised findings (e.g., GRADE approach adapted for narrative synthesis). |
20
+ | 7 | Data presentation methods | Describe the data presentation methods used to display the individual study results and the synthesis (e.g., structured tables, forest plots without pooling, harvest plots, albatross plots, bubble plots). |
21
+ | 8 | Reporting results | For each synthesis, provide a brief summary of the key findings, including the number of studies and participants contributing to the synthesis, the direction and size of the effect (with a measure of precision if available), and the certainty of evidence. |
22
+ | 9 | Limitations of the synthesis | Report the limitations of the synthesis methods used and/or the grouped studies. Discuss the impact of the limitations on the certainty of the synthesis results. Compare the review findings against what would have been reported using meta-analysis where applicable. |
23
+
24
+ ---
25
+
26
+ ## Notes for Assessors
27
+
28
+ - SWiM complements PRISMA 2020 — it provides additional guidance for reporting when meta-analysis is not performed
29
+ - We estimate that 35% of health-related systematic reviews do not do meta-analysis
30
+ - Items currently available in PRISMA (Items 13, 14, and 21) and RAMESES (Items 15 and 19) also apply
31
+ - SWiM items should accompany PRISMA items, not replace them
32
+ - The guideline applies to systematic reviews using alternative synthesis methods: vote counting based on direction, combining P values, narrative synthesis, range of effects, etc.
33
+ - Not applicable to qualitative evidence syntheses (use ENTREQ instead)
@@ -0,0 +1,157 @@
1
+ # TRIPOD Checklist
2
+
3
+ **Transparent Reporting of a multivariable prediction model for Individual Prognosis Or Diagnosis**
4
+ Version: TRIPOD 2015
5
+ Source: Moons KGM et al. Ann Intern Med. 2015;162:55-63. https://www.tripod-statement.org
6
+
7
+ ## Applicability
8
+
9
+ Items apply to different study types:
10
+ - **D** = Development study only
11
+ - **V** = Validation study only
12
+ - **DV** = Both development and validation studies
13
+
14
+ ## Checklist Items
15
+
16
+ ### Title and Abstract
17
+
18
+ | # | Item | Applies | Description |
19
+ |---|------|---------|-------------|
20
+ | 1 | Title | DV | Identify the study as developing and/or validating a multivariable prediction model, the target population, and the outcome to be predicted. |
21
+ | 2 | Abstract | DV | Provide a summary of objectives, study design, setting, participants, sample size, predictors, outcome, statistical analysis, results, and conclusions. |
22
+
23
+ ### Introduction
24
+
25
+ | # | Item | Applies | Description |
26
+ |---|------|---------|-------------|
27
+ | 3a | Background | DV | Explain the medical context (including whether diagnostic or prognostic) and rationale for developing or validating the multivariable prediction model, including references to existing models. |
28
+ | 3b | Objectives | DV | Specify the objectives, including whether the study describes the development or validation of the model or both. |
29
+
30
+ ### Methods
31
+
32
+ #### Source of Data
33
+
34
+ | # | Item | Applies | Description |
35
+ |---|------|---------|-------------|
36
+ | 4a | Source of data | DV | Describe the study design or source of data (e.g., randomized trial, cohort, or registry data), separately for the development and validation data sets, if applicable. |
37
+ | 4b | Source of data | DV | Specify the key study dates, including start of accrual; end of accrual; and, if applicable, end of follow-up. |
38
+
39
+ #### Participants
40
+
41
+ | # | Item | Applies | Description |
42
+ |---|------|---------|-------------|
43
+ | 5a | Participants | DV | Specify key elements of the study setting (e.g., primary care, secondary care, general population) including number and location of centres. |
44
+ | 5b | Participants | DV | Describe eligibility criteria for participants. |
45
+ | 5c | Participants | DV | Give details of treatments received, if relevant. |
46
+
47
+ #### Outcome
48
+
49
+ | # | Item | Applies | Description |
50
+ |---|------|---------|-------------|
51
+ | 6a | Outcome | DV | Clearly define the outcome that is predicted by the prediction model, including how and when assessed. |
52
+ | 6b | Outcome | DV | Report any actions to blind assessment of the outcome to be predicted. |
53
+
54
+ #### Predictors
55
+
56
+ | # | Item | Applies | Description |
57
+ |---|------|---------|-------------|
58
+ | 7a | Predictors | DV | Clearly define all predictors used in developing or validating the multivariable prediction model, including how and when they were measured. |
59
+ | 7b | Predictors | DV | Report any actions to blind assessment of predictors for the outcome and other predictors. |
60
+
61
+ #### Sample Size
62
+
63
+ | # | Item | Applies | Description |
64
+ |---|------|---------|-------------|
65
+ | 8 | Sample size | DV | Explain how the study size was arrived at. |
66
+
67
+ #### Missing Data
68
+
69
+ | # | Item | Applies | Description |
70
+ |---|------|---------|-------------|
71
+ | 9 | Missing data | DV | Describe how missing data were handled (e.g., complete-case analysis, single imputation, multiple imputation) with details of any imputation method. |
72
+
73
+ #### Statistical Analysis Methods
74
+
75
+ | # | Item | Applies | Description |
76
+ |---|------|---------|-------------|
77
+ | 10a | Model building | D | Describe how predictors were handled in the analyses. |
78
+ | 10b | Model building | D | Specify type of model, all model-building procedures (including any predictor selection), and method for internal validation. |
79
+ | 10c | Validation | V | For validation, describe how the predictions were calculated. |
80
+ | 10d | Model performance | DV | Specify all measures used to assess model performance and, if relevant, to compare multiple models. |
81
+ | 10e | Model updating | V | Describe any model updating (e.g., recalibration) arising from the validation, if done. |
82
+
83
+ #### Risk Groups
84
+
85
+ | # | Item | Applies | Description |
86
+ |---|------|---------|-------------|
87
+ | 11 | Risk groups | DV | Provide details on how risk groups were created, if done. |
88
+
89
+ #### Development vs. Validation
90
+
91
+ | # | Item | Applies | Description |
92
+ |---|------|---------|-------------|
93
+ | 12 | Development vs. validation | V | For validation, identify any differences from the development data in setting, eligibility criteria, outcome, and predictors. |
94
+
95
+ ### Results
96
+
97
+ #### Participants
98
+
99
+ | # | Item | Applies | Description |
100
+ |---|------|---------|-------------|
101
+ | 13a | Participants | DV | Describe the flow of participants through the study, including the number of participants with and without the outcome and, if applicable, a summary of the follow-up time. A diagram may be helpful. |
102
+ | 13b | Participants | DV | Describe the characteristics of the participants (basic demographics, clinical features, available predictors), including the number of participants with missing data for predictors and outcome. |
103
+ | 13c | Participants | V | For validation, show a comparison with the development data of the distribution of important variables (demographics, predictors, and outcome). |
104
+
105
+ #### Model Development
106
+
107
+ | # | Item | Applies | Description |
108
+ |---|------|---------|-------------|
109
+ | 14a | Model development | D | Specify the number of participants and outcome events in each analysis. |
110
+ | 14b | Model development | D | If done, report the unadjusted association between each candidate predictor and outcome. |
111
+
112
+ #### Model Specification
113
+
114
+ | # | Item | Applies | Description |
115
+ |---|------|---------|-------------|
116
+ | 15a | Model specification | D | Present the full prediction model to allow predictions for individuals (i.e., all regression coefficients, and model intercept or baseline survival at a given time point). |
117
+ | 15b | Model specification | D | Explain how to use the prediction model. |
118
+
119
+ #### Model Performance
120
+
121
+ | # | Item | Applies | Description |
122
+ |---|------|---------|-------------|
123
+ | 16 | Model performance | DV | Report performance measures (with CIs) for the prediction model. Report discrimination (e.g., C-statistic/AUC) and calibration (e.g., calibration plot, Hosmer-Lemeshow, calibration slope and intercept). |
124
+
125
+ #### Model Updating
126
+
127
+ | # | Item | Applies | Description |
128
+ |---|------|---------|-------------|
129
+ | 17 | Model updating | V | If done, report the results from any model updating (e.g., model recalibration). |
130
+
131
+ ### Discussion
132
+
133
+ | # | Item | Applies | Description |
134
+ |---|------|---------|-------------|
135
+ | 18 | Limitations | DV | Discuss any limitations of the study (such as nonrepresentative sample, few events per predictor, missing data). |
136
+ | 19a | Interpretation | V | For validation, discuss the results with reference to performance in the development data, and any other validation data. |
137
+ | 19b | Interpretation | DV | Give an overall interpretation of the results, considering objectives, limitations, results from similar studies, and other relevant evidence. |
138
+ | 20 | Implications | DV | Discuss the potential clinical use of the model and implications for future research. |
139
+
140
+ ### Other Information
141
+
142
+ | # | Item | Applies | Description |
143
+ |---|------|---------|-------------|
144
+ | 21 | Supplementary information | DV | Provide information about the availability of supplementary resources, such as study protocol, Web calculator, and data sets. |
145
+ | 22 | Funding | DV | Give the source of funding and the role of the funders for the present study. |
146
+
147
+ ---
148
+
149
+ ## Notes for Assessors
150
+
151
+ - TRIPOD 2015 applies to **non-AI/ML prediction models only** (logistic regression, Cox regression, etc.). For AI/ML prediction models, use TRIPOD+AI 2024 instead. Do NOT apply both simultaneously.
152
+ - Items 10a, 10b, 14a, 14b, 15a, 15b are specific to **development studies**. Mark as N/A for validation-only studies.
153
+ - Items 10c, 10e, 13c, 17, 19a are specific to **validation studies**. Mark as N/A for development-only studies.
154
+ - Item 16 must include BOTH discrimination (C-statistic/AUC) and calibration (calibration plot, Hosmer-Lemeshow, or calibration slope/intercept). A study reporting only AUC without calibration assessment is PARTIAL on this item.
155
+ - Item 8 (sample size): the events per variable (EPV) ratio should be reported. EPV < 10 should be flagged as a limitation.
156
+ - Item 15a (full model specification): the complete regression equation must be presented, not just significant predictors. Omitting non-significant predictors from the final model presentation is a common gap.
157
+ - For studies that combine development and validation (e.g., internal-external validation), all items apply.
@@ -0,0 +1,140 @@
1
+ # TRIPOD+AI Checklist
2
+
3
+ **Transparent Reporting of a multivariable prediction model for Individual Prognosis Or Diagnosis -- AI Extension**
4
+ Version: TRIPOD+AI 2024
5
+ Source: https://www.tripod-statement.org
6
+
7
+ ## Checklist Items
8
+
9
+ Items marked with **(AI)** are specific to the AI extension. All other items are from TRIPOD 2015.
10
+
11
+ ### Title and Abstract
12
+
13
+ | # | Item | Description |
14
+ |---|------|-------------|
15
+ | 1 | Title | Identify the study as developing and/or validating a multivariable prediction model, the target population, and the outcome to be predicted. |
16
+ | 1-AI | Title (AI) | Identify that the prediction model uses AI/ML methods. |
17
+ | 2 | Abstract | Provide a summary of objectives, study design, setting, participants, sample size, predictors, outcome, statistical analysis, results, and conclusions. |
18
+
19
+ ### Introduction
20
+
21
+ | # | Item | Description |
22
+ |---|------|-------------|
23
+ | 3a | Background | Explain the medical context (including whether diagnostic or prognostic) and rationale for developing or validating the multivariable prediction model, including references to existing models. |
24
+ | 3b | Objectives | Specify the objectives, including whether the study describes the development or validation of the model or both. |
25
+
26
+ ### Methods
27
+
28
+ #### Source of Data
29
+
30
+ | # | Item | Description |
31
+ |---|------|-------------|
32
+ | 4a | Source of data | Describe the study design or source of data (e.g., randomized trial, cohort, or registry data), separately for the development and validation data sets, if applicable. |
33
+ | 4b | Source of data | Specify the key study dates, including start of accrual; end of accrual; and, if applicable, end of follow-up. |
34
+ | 4-AI | Source of data (AI) | Describe the source of all input data types (e.g., imaging modality, laboratory system, free text, structured data). |
35
+
36
+ #### Participants
37
+
38
+ | # | Item | Description |
39
+ |---|------|-------------|
40
+ | 5a | Participants | Specify key elements of the study setting (e.g., primary care, secondary care, general population) including number and location of centres. |
41
+ | 5b | Participants | Describe eligibility criteria for participants. |
42
+ | 5c | Participants | Give details of treatments received, if relevant. |
43
+
44
+ #### Outcome
45
+
46
+ | # | Item | Description |
47
+ |---|------|-------------|
48
+ | 6a | Outcome | Clearly define the outcome that is predicted by the prediction model, including how and when assessed. |
49
+ | 6b | Outcome | Report any actions to blind assessment of the outcome to be predicted. |
50
+
51
+ #### Predictors
52
+
53
+ | # | Item | Description |
54
+ |---|------|-------------|
55
+ | 7a | Predictors | Clearly define all predictors used in developing or validating the multivariable prediction model, including how and when they were measured. |
56
+ | 7b | Predictors | Report any actions to blind assessment of predictors for the outcome and other predictors. |
57
+ | 7-AI | Predictors (AI) | Describe data preprocessing steps: normalization, augmentation, feature extraction, handling of missing inputs, and any dimensionality reduction. |
58
+
59
+ #### Sample Size
60
+
61
+ | # | Item | Description |
62
+ |---|------|-------------|
63
+ | 8 | Sample size | Explain how the study size was arrived at. |
64
+ | 8-AI | Sample size (AI) | Report the effective sample size relative to model complexity (e.g., events per variable, events per parameter). |
65
+
66
+ #### Missing Data
67
+
68
+ | # | Item | Description |
69
+ |---|------|-------------|
70
+ | 9 | Missing data | Describe how missing data were handled (e.g., complete-case analysis, single imputation, multiple imputation) with details of any imputation method. |
71
+
72
+ #### Statistical Analysis Methods
73
+
74
+ | # | Item | Description |
75
+ |---|------|-------------|
76
+ | 10a | Model development | Describe how predictors were handled in the analyses. |
77
+ | 10b | Model development | Specify type of model, all model-building procedures (including any predictor selection), and method for internal validation. |
78
+ | 10c | Validation | For validation, describe how the predictions were calculated. |
79
+ | 10d | Model performance | Specify all measures used to assess model performance and, if relevant, to compare multiple models. |
80
+ | 10e | Model updating | Describe any model updating (e.g., recalibration) arising from the validation, if done. |
81
+ | 10-AI-a | Model architecture (AI) | Describe the model architecture in sufficient detail for replication (e.g., network type, number of layers, activation functions, loss function). |
82
+ | 10-AI-b | Training procedure (AI) | Describe the training procedure: optimizer, learning rate (schedule), batch size, number of epochs, early stopping criteria, regularization methods. |
83
+ | 10-AI-c | Software and hardware (AI) | Report software libraries (with version numbers), programming language, and hardware used (especially GPU type for deep learning). |
84
+ | 10-AI-d | Reproducibility (AI) | Report measures taken to ensure reproducibility (random seeds, data splits, code availability). |
85
+
86
+ #### Risk Groups
87
+
88
+ | # | Item | Description |
89
+ |---|------|-------------|
90
+ | 11 | Risk groups | Provide details on how risk groups were created, if done. |
91
+
92
+ #### Development vs. Validation
93
+
94
+ | # | Item | Description |
95
+ |---|------|-------------|
96
+ | 12 | Development vs. validation | For validation, identify any differences from the development data in setting, eligibility criteria, outcome, and predictors. |
97
+
98
+ ### Results
99
+
100
+ | # | Item | Description |
101
+ |---|------|-------------|
102
+ | 13a | Participants | Describe the flow of participants through the study, including the number of participants with and without the outcome and, if applicable, a summary of the follow-up time. A diagram may be helpful. |
103
+ | 13b | Participants | Describe the characteristics of the participants (basic demographics, clinical features, available predictors), including the number of participants with missing data for predictors and outcome. |
104
+ | 13c | Participants | For validation, show a comparison with the development data of the distribution of important variables (demographics, predictors, and outcome). |
105
+ | 14a | Model development | Specify the number of participants and outcome events in each analysis. |
106
+ | 14b | Model development | If done, report the unadjusted association between each candidate predictor and outcome. |
107
+ | 15a | Model specification | Present the full prediction model to allow predictions for individuals (i.e., all regression coefficients, and model intercept or baseline survival at a given time point). |
108
+ | 15b | Model specification | Explain how to use the prediction model. |
109
+ | 15-AI | Model specification (AI) | If the full model cannot be presented as coefficients: report model availability (e.g., open-source repository, API, executable), and describe the input/output specification. |
110
+ | 16 | Model performance | Report performance measures (with CIs) for the prediction model. Report discrimination (e.g., C-statistic/AUC) and calibration (e.g., calibration plot, Hosmer-Lemeshow, calibration slope and intercept). |
111
+ | 16-AI | Fairness assessment (AI) | Report model performance stratified by relevant demographic subgroups (age, sex, ethnicity) if data are available. |
112
+
113
+ ### Discussion
114
+
115
+ | # | Item | Description |
116
+ |---|------|-------------|
117
+ | 18 | Limitations | Discuss any limitations of the study (such as nonrepresentative sample, few events per predictor, missing data). |
118
+ | 19a | Interpretation | For validation, discuss the results with reference to performance in the development data, and any other validation data. |
119
+ | 19b | Interpretation | Give an overall interpretation of the results, considering objectives, limitations, results from similar studies, and other relevant evidence. |
120
+ | 19-AI | Interpretation (AI) | Discuss potential sources of bias in the AI model: data bias, label noise, distribution shift between development and deployment settings. |
121
+ | 20 | Implications | Discuss the potential clinical use of the model and implications for future research. |
122
+
123
+ ### Other Information
124
+
125
+ | # | Item | Description |
126
+ |---|------|-------------|
127
+ | 21 | Supplementary information | Provide information about the availability of supplementary resources, such as study protocol, Web calculator, and data sets. |
128
+ | 21-AI | Code and model availability (AI) | State whether the trained model and/or source code are publicly available, and provide the repository URL or access instructions. |
129
+ | 22 | Funding | Give the source of funding and the role of the funders for the present study. |
130
+
131
+ ---
132
+
133
+ ## Notes for Assessors
134
+
135
+ - TRIPOD applies to both development and validation studies. Some items (e.g., 10c, 13c, 19a) are specific to validation studies; mark as N/A for development-only studies.
136
+ - The AI extension items are mandatory for any study using machine learning or deep learning methods.
137
+ - Item 15a (full model specification) is often not feasible for deep learning models; in that case, item 15-AI (model availability) becomes critical.
138
+ - Item 16 must include BOTH discrimination and calibration. A study reporting only AUC without calibration assessment is PARTIAL on this item.
139
+ - Item 16-AI (fairness) is increasingly expected but may be marked N/A if the study population lacks demographic diversity data, with a note explaining this limitation.
140
+ - For studies that are both diagnostic accuracy and prediction model studies, consider cross-referencing with STARD as well.
@@ -0,0 +1,93 @@
1
+ # Step 4c Reference — Registration / Protocol Timing Consistency Check
2
+
3
+ Load this reference when running Step 4c during `/check-reporting`. The SKILL.md body
4
+ carries only the scope + trigger summary; full item-by-item procedure lives here.
5
+
6
+ ## Applies To
7
+
8
+ Systematic reviews, meta-analyses, and intervention studies with prospective registration
9
+ (PRISMA 2020, PRISMA-DTA, PRISMA-P, MOOSE, CONSORT, SPIRIT).
10
+
11
+ ## Motivation
12
+
13
+ The registration identifier itself is a single checklist item in most guidelines, so it
14
+ can pass the Step 4 audit even when the manuscript is internally inconsistent about
15
+ *when* the registration or its amendments occurred relative to the analysis. Reviewers
16
+ and editors scrutinize this timing — an undisclosed post-hoc amendment is a common
17
+ rejection trigger.
18
+
19
+ ## Items to Check
20
+
21
+ ### 1. Registration identifier present
22
+
23
+ Confirm the registration number (e.g., PROSPERO CRD####, ClinicalTrials.gov NCT####) is
24
+ cited in Methods, the Abstract, and (where required) the cover letter.
25
+
26
+ ### 2. Initial registration date vs. manuscript milestone dates
27
+
28
+ Extract from the manuscript:
29
+ - Search start / end date (e.g., "databases were searched from 2010-01-01 to 2025-12-31").
30
+ - Screening / data extraction completion date (often in the PRISMA flow caption or in
31
+ Methods).
32
+ - If the Methods states an explicit registration date, that date must predate — or at
33
+ minimum not contradict — the screening/extraction milestone. A registration date
34
+ *after* data extraction completion must be disclosed as retrospective and justified.
35
+
36
+ ### 3. Amendment date(s) consistency
37
+
38
+ If the manuscript references an amendment to the registered protocol:
39
+ - The amendment date must appear in Methods (typical phrasing: "The registered protocol
40
+ was amended on YYYY-MM-DD to …").
41
+ - The described amendment content must match what Methods actually reports (e.g., an
42
+ eligibility refinement, subgroup reassignment, outcome addition). A Methods-stated
43
+ amendment that does not correspond to any visible methods change is a red flag.
44
+ - If the amendment post-dates the analysis lock, Methods must state that the analysis
45
+ was re-run after the amendment — otherwise the amendment is a post-hoc rationalization.
46
+ - The amendment date must not post-date the manuscript submission date (when the latter
47
+ is known from the cover letter or file metadata).
48
+
49
+ ### 4. Cross-artifact agreement
50
+
51
+ When the author provides the registry record (PROSPERO PDF, ClinicalTrials.gov export)
52
+ as a supplement or accompanying document:
53
+ - Primary outcome(s), eligibility criteria, and analysis plan described in Methods must
54
+ agree with the registry entry, or explicit amendment citations must reconcile any
55
+ difference.
56
+ - A silent discrepancy between registry and Methods is a `[REGISTRATION-TIMING]`
57
+ finding, reported in Part C with `fixable_by_ai: false` (requires author action — file
58
+ an amendment or correct Methods text).
59
+
60
+ ### 5. Retrospective registration disclosure
61
+
62
+ If any evidence suggests the registration was filed after data extraction began
63
+ (registration date later than the reported extraction start, or the registry record's
64
+ "current stage" indicates post-extraction filing), Methods must contain a disclosure
65
+ paragraph. The absence of such disclosure in a retrospective-registered review is a
66
+ `[REGISTRATION-TIMING]` finding.
67
+
68
+ ## Flagging Rules
69
+
70
+ - Any failure among items 1 – 5 is reported in Part C Action Items with the label
71
+ `[REGISTRATION-TIMING]`.
72
+ - Mark `fixable_by_ai: false` when reconciliation requires an external amendment filing
73
+ or an author-supplied date.
74
+ - Mark `fixable_by_ai: true` only when the fix is a Methods-text insertion of a known
75
+ registration identifier or amendment date already disclosed elsewhere in the
76
+ manuscript.
77
+
78
+ ## JSON Field (Part D)
79
+
80
+ Include a `registration_timing` object when this step runs:
81
+
82
+ ```json
83
+ "registration_timing": {
84
+ "registry": "PROSPERO",
85
+ "registration_id": "CRD########",
86
+ "initial_registration_date": "YYYY-MM-DD or null",
87
+ "amendments": [
88
+ { "date": "YYYY-MM-DD", "described_change": "..." }
89
+ ],
90
+ "timing_consistency": "CONSISTENT | DISCREPANCY | INCOMPLETE",
91
+ "findings": ["free-text list of specific issues"]
92
+ }
93
+ ```
@@ -0,0 +1,137 @@
1
+ # Step 4d — PRISMA Figure 1 Arithmetic & Cross-Reference Audit (Procedural Detail)
2
+
3
+ Load-on-demand from `SKILL.md` Step 4d. Applies to PRISMA 2020 / PRISMA-DTA / PRISMA-P
4
+ systematic reviews and meta-analyses where Item 16a (flow diagram) is PRESENT.
5
+
6
+ ## Inputs
7
+
8
+ | Source | Path | Required |
9
+ |--------|------|----------|
10
+ | Manuscript body | `manuscript/manuscript.md` (or path provided) | yes |
11
+ | Figure 1 manifest | `analysis/figures/Figure1_PRISMA.md` (preferred) | one of |
12
+ | Figure 1 PPTX | `analysis/figures/Figure1_PRISMA.pptx` (text-extractable) | one of |
13
+ | Figure 1 caption | embedded in `manuscript.md` | one of |
14
+ | Figure 1 PNG/SVG | `analysis/figures/Figure1_PRISMA.{png,svg}` | fallback (manual entry) |
15
+
16
+ If no machine-readable Figure source exists, Step 4d emits `MISSING` for the cross-reference
17
+ checks and asks the user to supply numbers manually.
18
+
19
+ ## Number extraction (regex)
20
+
21
+ ```python
22
+ KEYWORDS = {
23
+ "identified": r"(\d[\d,]*)\s+(?:records?|reports?)\s+identified",
24
+ "duplicates": r"(\d[\d,]*)\s+(?:records?|reports?|duplicates?)\s+(?:removed|duplicates? removed)",
25
+ "screened": r"(\d[\d,]*)\s+(?:records?|reports?)\s+screened",
26
+ "excluded_screening": r"(\d[\d,]*)\s+(?:records?|reports?)\s+excluded(?:\s+(?:at|after|during)\s+screening)?",
27
+ "sought": r"(\d[\d,]*)\s+(?:reports?|records?)\s+sought(?:\s+for\s+retrieval)?",
28
+ "not_retrieved": r"(\d[\d,]*)\s+(?:reports?|records?)\s+(?:not\s+retrieved|unobtainable)",
29
+ "retrieved": r"(\d[\d,]*)\s+(?:reports?|records?)\s+retrieved",
30
+ "assessed": r"(\d[\d,]*)\s+(?:reports?|records?)\s+assessed(?:\s+for\s+eligibility)?",
31
+ "excluded_eligibility": r"(\d[\d,]*)\s+(?:reports?|records?)\s+excluded(?:\s+with\s+reasons?)?",
32
+ "included": r"(\d[\d,]*)\s+(?:studies|records?|reports?)\s+included",
33
+ }
34
+ ```
35
+
36
+ Apply to body text and Figure source independently → produce two dictionaries
37
+ `body_numbers` and `figure_numbers`.
38
+
39
+ ## Arithmetic checks (4)
40
+
41
+ ```python
42
+ def check_arithmetic(n: dict) -> list[dict]:
43
+ results = []
44
+ if all(k in n for k in ["identified", "duplicates", "screened"]):
45
+ ok = n["identified"] - n["duplicates"] == n["screened"]
46
+ results.append({"eq": "screened = identified - duplicates",
47
+ "lhs": n["screened"], "rhs": n["identified"] - n["duplicates"],
48
+ "status": "PRESENT" if ok else "MISMATCH"})
49
+ if all(k in n for k in ["screened", "excluded_screening", "sought"]):
50
+ ok = n["screened"] - n["excluded_screening"] == n["sought"]
51
+ results.append({"eq": "sought = screened - excluded_screening",
52
+ "lhs": n["sought"], "rhs": n["screened"] - n["excluded_screening"],
53
+ "status": "PRESENT" if ok else "MISMATCH"})
54
+ if all(k in n for k in ["sought", "not_retrieved", "retrieved"]):
55
+ ok = n["sought"] - n["not_retrieved"] == n["retrieved"]
56
+ results.append({"eq": "retrieved = sought - not_retrieved",
57
+ "lhs": n["retrieved"], "rhs": n["sought"] - n["not_retrieved"],
58
+ "status": "PRESENT" if ok else "MISMATCH"})
59
+ if all(k in n for k in ["assessed", "excluded_eligibility", "included"]):
60
+ ok = n["assessed"] - n["excluded_eligibility"] == n["included"]
61
+ results.append({"eq": "included = assessed - excluded_eligibility",
62
+ "lhs": n["included"], "rhs": n["assessed"] - n["excluded_eligibility"],
63
+ "status": "PRESENT" if ok else "MISMATCH"})
64
+ return results
65
+ ```
66
+
67
+ Run independently on `body_numbers` and `figure_numbers`.
68
+
69
+ ## Cross-reference check (body ↔ figure)
70
+
71
+ For each key in `KEYWORDS`:
72
+ - Both present + agree → `PRESENT`
73
+ - Both present + disagree → `MISMATCH` (record both values)
74
+ - Only one source has it → `MISSING` (record which side)
75
+ - Neither → skip
76
+
77
+ ## JSON schema (`qc/prisma_figure_audit.json`)
78
+
79
+ ```json
80
+ {
81
+ "manuscript": "manuscript/manuscript.md",
82
+ "figure_source": "analysis/figures/Figure1_PRISMA.md",
83
+ "body_numbers": { "identified": 315, "duplicates": 122, "screened": 186, "...": "..." },
84
+ "figure_numbers": { "identified": 315, "duplicates": 122, "screened": 186, "...": "..." },
85
+ "arithmetic_body": [
86
+ {"eq": "screened = identified - duplicates", "lhs": 186, "rhs": 193, "status": "MISMATCH"}
87
+ ],
88
+ "arithmetic_figure": [],
89
+ "cross_reference": [
90
+ {"key": "screened", "body": 186, "figure": 186, "status": "PRESENT"}
91
+ ],
92
+ "audit_safe": false,
93
+ "action_items": [
94
+ "[PRISMA-FIGURE] body arithmetic 'screened = identified - duplicates' fails: 186 vs 315-122=193"
95
+ ]
96
+ }
97
+ ```
98
+
99
+ `audit_safe: true` ⟺ all arithmetic_body, arithmetic_figure, cross_reference rows are
100
+ `PRESENT`. Anything else → `false` and Step 5 must surface action_items.
101
+
102
+ ## Edge cases
103
+
104
+ - **Multi-database identification**: PRISMA 2020 supports separate boxes for database vs
105
+ register vs other methods. Sum across boxes for `identified` total — extraction regex must
106
+ handle `321 records (213 from databases, 108 from citation searching)`.
107
+ - **Citation searching strand**: separate flow on right side of PRISMA 2020 diagram. If
108
+ present, run arithmetic checks on each strand independently + a combined `total identified`
109
+ check.
110
+ - **Dual-reviewer screening**: numbers should reflect post-consensus counts. If body reports
111
+ pre/post-consensus separately, use post-consensus.
112
+ - **Reports vs records**: PRISMA 2020 distinguishes records (citations) from reports
113
+ (full-text). Regex captures both; treat them as the same key for arithmetic but flag
114
+ inconsistent terminology (`[PRISMA-FIGURE-TERMINOLOGY]`).
115
+ - **Duplicates split across stages**: some manuscripts list duplicates removed automatically
116
+ (deduplication tool) separately from manual deduplication. Sum.
117
+ - **Reasons for exclusion**: Step 4d does not enforce specific reasons but checks that
118
+ the count of "with reasons" categories sums to `excluded_eligibility`. Add as optional
119
+ check `excluded_eligibility = sum(reason_counts)`.
120
+
121
+ ## Cross-cutting rules
122
+
123
+ - `~/.claude/rules/numerical-safety.md`: PRISMA 5-way consistency (text ↔ Figure ↔
124
+ extraction CSV ↔ analysis script ↔ supplementary). Step 4d covers text ↔ Figure;
125
+ extraction CSV ↔ script ↔ supplementary belong to `/meta-analysis` Phase 6 and
126
+ `/write-paper` Step 7.3a.
127
+ - `~/.claude/rules/manuscript-style-classical.md`: number formatting (Arabic numerals,
128
+ thousands separator consistent with journal style).
129
+
130
+ ## Related
131
+
132
+ - `/check-reporting prisma` (this step caller)
133
+ - `/write-paper` Step 7.3a (Numerical Claim Audit — different scope: pooled estimates,
134
+ not flow diagram)
135
+ - `/make-figures` (PRISMA flow diagram generation — produces `Figure1_PRISMA.md` manifest
136
+ this step consumes)
137
+ - Sample primary source (motivation): an active meta-analysis project v3 Figure 1 PRISMA verification, 2026-04-26