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,51 @@
1
+ schema_version: 2
2
+ name: calc-sample-size
3
+ layer: A
4
+ owner_domain: study_design
5
+ when_to_use:
6
+ - User asks for a sample size, power calculation, or "how many patients/subjects do I need"
7
+ - Drafting an IRB sample size justification before /write-protocol Methods
8
+ - Re-deriving N when a reviewer challenges the original power assumption
9
+ - Estimating events-per-variable (EPV) for survival or logistic regression
10
+ when_NOT_to_use:
11
+ - Statistical analysis of collected data (use /analyze-stats)
12
+ - Choosing the test itself rather than its N (use /design-study)
13
+ - Replicating a prior study's reported N without recomputation (still re-derive)
14
+ inputs:
15
+ - study_design (proportions, continuous, agreement, survival, ANOVA, logistic, NI/equivalence, diagnostic accuracy, repeated measures, Cox EPV)
16
+ - parameters (effect size, alpha, power, attrition rate, etc.)
17
+ outputs:
18
+ - protocol/sample_size_justification.md # IRB-ready prose, Output Format §"IRB Justification Text"
19
+ - protocol/sample_size_calc.R # reproducible R script
20
+ - protocol/sample_size_calc.py # alternative reproducible Python script
21
+ deterministic_scripts:
22
+ - inline R/Python code blocks (skill-emitted, not packaged)
23
+ side_effects:
24
+ - none # no external API calls; pure computation + literature anchoring
25
+ downstream_consumers:
26
+ - write-protocol # embeds Output §"IRB Justification Text" verbatim into Methods §Sample Size
27
+ - write-paper # embeds same text into Methods (post-IRB)
28
+ - design-study # cross-reference for analysis-unit / cohort-logic alignment
29
+ ssot_boundary:
30
+ - protocol/sample_size_justification.md is the canonical sample size text. write-protocol and write-paper EMBED VERBATIM; do not rephrase numbers.
31
+ quality_gates:
32
+ - parameters_documented: every parameter has a Source column entry (user / literature / convention)
33
+ - effect_size_interpretation: Cohen's benchmark classification present
34
+ - methodological_reference: cited (e.g., "Schoenfeld, 1981" for survival)
35
+ - reproducible_code: both R and Python emitted (skill default), runnable standalone
36
+ forbidden_actions:
37
+ - fabricate_effect_size_from_unverified_assumption
38
+ - omit_attrition_or_loss_to_followup
39
+ - silent_protocol_modification # changes to N must update both justification.md and protocol Methods
40
+
41
+ # v2.1 quality card
42
+ purpose: "Compute sample size / power with decision-tree test selection and reproducible R/Python code plus IRB-ready justification."
43
+ safety_boundaries:
44
+ - "Effect-size assumptions are justified and sourced, not fabricated; attrition/loss is accounted for."
45
+ - "Any change to N updates both the justification and the protocol Methods (no silent change)."
46
+ known_limitations:
47
+ - "Emits inline R/Python, not a packaged script; the user runs it."
48
+ - "Output is only as valid as the assumed effect size and design."
49
+ validation_commands:
50
+ - "re-run the emitted power code and confirm N matches the justification"
51
+ evidence_surface: manual_workflow
@@ -0,0 +1,534 @@
1
+ ---
2
+ name: check-reporting
3
+ description: Check manuscript compliance with medical research reporting guidelines. Supports 32 guidelines including STROBE, CONSORT, STARD, STARD-AI, TRIPOD, TRIPOD+AI, ARRIVE, PRISMA, PRISMA-DTA, PRISMA-P, CARE, SPIRIT, CLAIM, MI-CLEAR-LLM, SQUIRE 2.0, CLEAR, MOOSE, GRRAS, SWiM, AMSTAR 2, and risk of bias tools (QUADAS-2, QUADAS-C, RoB 2, ROBINS-I, ROBINS-E, ROBIS, ROB-ME, PROBAST, PROBAST+AI, NOS, COSMIN, RoB NMA). Generates item-by-item assessment with PRESENT/MISSING/PARTIAL status.
4
+ triggers: checklist, reporting guideline, STROBE, CONSORT, STARD, STARD-AI, TRIPOD, PRISMA, PRISMA-DTA, PRISMA-P, ARRIVE, CARE, CLAIM, MI-CLEAR-LLM, SPIRIT, QUADAS, QUADAS-C, RoB, ROBINS, ROBINS-E, ROBIS, ROB-ME, PROBAST, NOS, COSMIN, AMSTAR, SWiM, risk of bias, compliance check, LLM accuracy
5
+ tools: Read, Write, Edit, Bash, Grep, Glob
6
+ model: inherit
7
+ ---
8
+
9
+ # Check-Reporting Skill
10
+
11
+ You are helping a medical researcher verify that their manuscript complies with the appropriate
12
+ medical research reporting guideline. You perform a systematic, item-by-item audit and produce a
13
+ compliance report suitable for journal submission.
14
+
15
+ ## Communication Rules
16
+
17
+ - Communicate with the user in their preferred language.
18
+ - Checklist items and report output are in English (matching guideline originals).
19
+ - Medical terminology is always in English.
20
+
21
+ ## Reference Files
22
+
23
+ - **Checklists (bundled, open license)**: `${CLAUDE_SKILL_DIR}/references/checklists/`
24
+ - `STROBE.md` -- observational studies (CC BY)
25
+ - `STARD.md` -- diagnostic accuracy studies (CC BY 4.0)
26
+ - `STARD_AI.md` -- AI diagnostic accuracy studies (CC BY, Sounderajah et al. Nat Med 2025)
27
+ - `TRIPOD.md` -- prediction models, classic 2015 version (CC BY, Moons et al. Ann Intern Med 2015)
28
+ - `TRIPOD_AI.md` -- prediction models with AI/ML (CC BY 4.0, Collins et al. BMJ 2024)
29
+ - `PRISMA_2020.md` -- systematic reviews (CC BY)
30
+ - `ARRIVE_2.md` -- animal studies (CC0)
31
+ - `PRISMA_DTA.md` -- DTA systematic reviews (CC BY, McInnes et al. JAMA 2018)
32
+ - `QUADAS2.md` -- diagnostic accuracy risk of bias (CC BY, Whiting et al. Ann Intern Med 2011)
33
+ - `RoB2.md` -- RCT risk of bias (CC BY, Sterne et al. BMJ 2019)
34
+ - `ROBINS_I.md` -- non-randomised studies risk of bias (CC BY, Sterne et al. BMJ 2016)
35
+ - `PROBAST.md` -- prediction model risk of bias (CC BY, Wolff et al. Ann Intern Med 2019)
36
+ - `NOS.md` -- observational study quality (public domain, Ottawa Hospital)
37
+ - `CONSORT.md` -- randomised controlled trials, CONSORT 2025 (CC BY 4.0, Hopewell et al. BMJ 2025)
38
+ - `CARE.md` -- case reports, CARE 2013 (CC BY-NC 4.0, Gagnier et al. J Clin Epidemiol 2014)
39
+ - `SPIRIT.md` -- clinical trial protocols, SPIRIT 2025 (CC BY 4.0, Chan et al. BMJ 2025)
40
+ - `CLAIM_2024.md` -- AI/ML in clinical imaging, CLAIM 2024 Update (RSNA open access, Tejani et al. Radiol Artif Intell 2024)
41
+ - `MI_CLEAR_LLM.md` -- LLM accuracy studies in healthcare (CC BY-NC 4.0, Park et al. KJR 2024; 2025 update)
42
+ - `SQUIRE_2.md` -- quality improvement in healthcare/education (CC BY, Ogrinc et al. BMJ Qual Saf 2016)
43
+ - `CLEAR.md` -- radiomics studies (CC BY 4.0, Kocak et al. Insights Imaging 2023)
44
+ - `MOOSE.md` -- meta-analysis of observational studies (Stroup et al. JAMA 2000)
45
+ - `GRRAS.md` -- reliability and agreement studies (Kottner et al. J Clin Epidemiol 2011)
46
+ - `QUADAS_C.md` -- comparative DTA risk of bias, extension to QUADAS-2 (CC BY 4.0, Yang et al. 2021)
47
+ - `ROBINS_E.md` -- non-randomised exposure studies risk of bias (CC BY-NC-ND 4.0, Higgins et al. Environ Int 2024)
48
+ - `ROBIS.md` -- risk of bias in systematic reviews (Whiting et al. J Clin Epidemiol 2016)
49
+ - `ROB_ME.md` -- risk of bias due to missing evidence in meta-analysis (CC BY-NC-ND 4.0, Page et al. BMJ 2023)
50
+ - `PROBAST_AI.md` -- prediction model risk of bias, updated for AI/ML (Moons et al. BMJ 2025)
51
+ - `COSMIN_RoB.md` -- reliability/measurement error risk of bias (Mokkink et al. BMC Med Res Methodol 2020)
52
+ - `RoB_NMA.md` -- risk of bias in network meta-analysis (Lunny et al. 2024)
53
+ - `AMSTAR2.md` -- quality of systematic reviews (Shea et al. BMJ 2017)
54
+ - `PRISMA_P.md` -- systematic review protocols (Shamseer et al. BMJ 2015)
55
+ - `SWiM.md` -- synthesis without meta-analysis reporting (Campbell et al. BMJ 2020)
56
+ - Fail-fast contract: if a routed guideline has no vendored checklist file, the skill does **not** silently construct items from memory. It halts with a `MISSING_CHECKLIST_CONTRACT_VIOLATION` and surfaces the gap. A from-memory assessment is allowed only with the explicit `--allow-from-memory` opt-in, and that report must be clearly labelled NON-AUTHORITATIVE. See Step 2 and `scripts/check_checklist_exists.py`.
57
+
58
+ ---
59
+
60
+ ## Workflow
61
+
62
+ ### Step 0: Existing-checklist staleness pre-check
63
+
64
+ If a checklist already exists for this project (`qc/reporting_checklist.json` or a prior `.md` report), verify it targets the **current** manuscript before reusing it — a checklist generated against an older version carries stale section/line references and a stale version label that a reviewer who cross-checks will catch:
65
+
66
+ ```bash
67
+ python3 "${CLAUDE_SKILL_DIR}/scripts/check_checklist_version.py" \
68
+ --checklist qc/reporting_checklist.json --manuscript manuscript_v8.md
69
+ ```
70
+
71
+ A non-zero exit means the existing checklist is stale (older `target_version`, changed `source_sha256`, different `target_manuscript`) or pre-dates the version contract — regenerate it against the current manuscript (Steps 1–5) rather than reusing it. Every report you generate must carry the `target_manuscript` / `target_version` / `source_sha256` fields (Part A header + Part D JSON) so this check works next round.
72
+
73
+ ### Step 1: Select Guideline
74
+
75
+ Determine the appropriate reporting guideline. Auto-detect from the manuscript type or accept
76
+ user specification.
77
+
78
+ **Auto-detection mapping:**
79
+
80
+ | Study Type | Primary Guideline | AI Extension |
81
+ |------------|------------------|--------------|
82
+ | Observational study | STROBE | -- |
83
+ | Randomized controlled trial | CONSORT 2025 | CONSORT-AI |
84
+ | Diagnostic accuracy study | STARD 2015 | STARD-AI |
85
+ | Prediction model (development/validation) | TRIPOD | TRIPOD+AI |
86
+ | Systematic review / meta-analysis | PRISMA 2020 | -- |
87
+ | DTA systematic review / meta-analysis | PRISMA-DTA | -- |
88
+ | Meta-analysis of observational studies | MOOSE | PRISMA 2020 (use both) |
89
+ | Risk of bias (DTA studies) | QUADAS-2 | -- |
90
+ | Risk of bias (RCTs) | RoB 2 | -- |
91
+ | Risk of bias (non-randomised intervention studies) | ROBINS-I | -- |
92
+ | Risk of bias (non-randomised exposure studies) | ROBINS-E | -- |
93
+ | Risk of bias (comparative DTA studies) | QUADAS-C | QUADAS-2 (use both) |
94
+ | Risk of bias (prediction models) | PROBAST | PROBAST+AI |
95
+ | Risk of bias (systematic reviews) | ROBIS | AMSTAR 2 |
96
+ | Risk of bias (missing evidence in MA) | ROB-ME | -- |
97
+ | Risk of bias (network meta-analysis) | RoB NMA | -- |
98
+ | Risk of bias (measurement properties) | COSMIN RoB | -- |
99
+ | Quality assessment (observational) | NOS | -- |
100
+ | Case report | CARE | -- |
101
+ | Study protocol | SPIRIT 2025 | SPIRIT-AI |
102
+ | Animal study | ARRIVE 2.0 | -- |
103
+ | AI/ML study in clinical imaging | CLAIM 2024 | -- |
104
+ | LLM accuracy evaluation in healthcare | MI-CLEAR-LLM | STARD-AI or CLAIM 2024 (use alongside) |
105
+ | Reliability / agreement study | GRRAS | -- |
106
+ | SR protocol | PRISMA-P | -- |
107
+ | Synthesis without meta-analysis | SWiM | PRISMA 2020 (use both) |
108
+ | Quality of systematic reviews | AMSTAR 2 | ROBIS |
109
+ | Radiomics study | CLEAR | CLAIM 2024 (if deep learning component) |
110
+ | Educational / QI study | SQUIRE 2.0 | -- |
111
+
112
+ **Rules:**
113
+ - If the study involves AI/ML, always apply the AI extension in addition to the base guideline.
114
+ - **Exception — TRIPOD**: TRIPOD+AI 2024 (Collins et al., BMJ 2024) is a complete rewrite, not an addendum to TRIPOD 2015 (Moons et al., Ann Intern Med 2015). For non-AI prediction models, use TRIPOD 2015 only. For AI/ML prediction models, use TRIPOD+AI 2024 only. Do NOT apply both simultaneously.
115
+ - **STARD-AI** (Sounderajah et al., Nat Med 2025) extends STARD 2015 with 14 new and 4 modified items (40 total). For AI diagnostic accuracy studies, use STARD-AI (which incorporates all STARD 2015 items). Do NOT apply both STARD 2015 and STARD-AI simultaneously — STARD-AI supersedes STARD 2015 for AI studies.
116
+ - **MI-CLEAR-LLM** is a supplementary checklist (6 items), not a standalone reporting guideline. Always pair it with the study's primary guideline (e.g., STARD-AI for AI diagnostic accuracy, CLAIM for imaging AI). Apply MI-CLEAR-LLM whenever the study evaluates LLM accuracy as an outcome — do NOT apply it merely because the manuscript was written with LLM assistance.
117
+ - If multiple guidelines apply (e.g., a diagnostic accuracy study that is also an AI study), check against all relevant guidelines and merge into one report.
118
+ - If the user requests a specific guideline, use that one regardless of auto-detection.
119
+
120
+ ### Step 2: Load Checklist
121
+
122
+ 1. **Run the fail-fast guard first** for every guideline you intend to apply:
123
+
124
+ ```bash
125
+ python "${CLAUDE_SKILL_DIR}/scripts/check_checklist_exists.py" --guideline "STARD-AI"
126
+ ```
127
+
128
+ - Exit 0 → the vendored checklist exists; read it from
129
+ `${CLAUDE_SKILL_DIR}/references/checklists/` and proceed.
130
+ - Exit 1 (`MISSING_CHECKLIST_CONTRACT_VIOLATION`) → the guideline is routed
131
+ but no checklist file is vendored. **Do not construct items from memory.**
132
+ Halt, report the violation to the user, and stop unless they explicitly
133
+ opt in (next bullet).
134
+ - Exit 2 (`UNKNOWN_GUIDELINE`) → the name is not recognised; confirm the
135
+ correct guideline with the user.
136
+
137
+ 2. **No silent fallback.** A from-memory checklist is permitted only when the
138
+ user explicitly accepts it — re-run the guard with `--allow-from-memory`
139
+ (exit 0 + a NON-AUTHORITATIVE warning). In that case the output report MUST
140
+ carry a prominent banner that the assessment was constructed from model
141
+ knowledge and is not backed by a vendored checklist, and `submission_safe`
142
+ must not be asserted on its basis.
143
+
144
+ ### Step 3: Scan Manuscript
145
+
146
+ Read all sections of the manuscript thoroughly:
147
+ 1. Title and abstract
148
+ 2. Introduction
149
+ 3. Methods (all subsections)
150
+ 4. Results (all subsections)
151
+ 5. Discussion
152
+ 6. Tables, figures, and their captions
153
+ 7. Supplemental materials (if available)
154
+ 8. References (for registration numbers, protocol references)
155
+
156
+ Gather context from the full document before starting the item-by-item assessment.
157
+
158
+ ### Step 4: Assess Each Item
159
+
160
+ For every checklist item, determine:
161
+
162
+ | Status | Criteria |
163
+ |--------|----------|
164
+ | **PRESENT** | The item is fully addressed with sufficient detail. |
165
+ | **PARTIAL** | The item is mentioned or partially addressed but lacks required detail. |
166
+ | **MISSING** | The item is not found anywhere in the manuscript. |
167
+ | **N/A** | The item does not apply to this particular study (justify why). |
168
+
169
+ For each item, record:
170
+ - **Status**: PRESENT / PARTIAL / MISSING / N/A
171
+ - **Location**: Section name and paragraph or approximate position (e.g., "Methods, paragraph 3")
172
+ - **Notes**: What was found (if PRESENT/PARTIAL) or what should be added (if MISSING)
173
+
174
+ ### Step 4b: Section Boundary Check
175
+
176
+ In addition to checklist items, verify that:
177
+ - **Results section** contains only factual findings: no interpretation, no "why" explanations,
178
+ no prior literature comparisons, no evaluative adjectives without numbers.
179
+ - **Discussion section** does not introduce new data not presented in Results.
180
+ - Flag any boundary violation as a separate finding in Part C Action Items with the label
181
+ `[BOUNDARY]`.
182
+
183
+ ### Step 4c: Registration / Protocol Timing Consistency Check
184
+
185
+ **Applies to:** systematic reviews, meta-analyses, and intervention studies with
186
+ prospective registration (PRISMA 2020, PRISMA-DTA, PRISMA-P, MOOSE, CONSORT, SPIRIT).
187
+
188
+ **Why this step exists:** the registration identifier is a single checklist item and can
189
+ pass Step 4 even when the manuscript is internally inconsistent about *when* the
190
+ registration or its amendments occurred relative to the analysis. An undisclosed
191
+ post-hoc amendment is a common rejection trigger.
192
+
193
+ **Five audit items (summary):** (1) registration identifier present in Methods, Abstract,
194
+ and cover letter; (2) initial registration date precedes — or is explicitly disclosed as
195
+ post-dating — the extraction milestone; (3) amendment dates appear in Methods, the
196
+ described change is visible in Methods, analysis was re-run if amendment post-dates the
197
+ lock, and no amendment post-dates submission; (4) cross-artifact agreement between
198
+ Methods and the registry record (PROSPERO PDF, ClinicalTrials.gov export) — silent
199
+ discrepancy is a finding; (5) retrospective-registration disclosure paragraph when
200
+ evidence suggests post-extraction filing.
201
+
202
+ **Registration-ID format gate:** a PROSPERO ID is `CRD42` + 9 digits = 14 characters
203
+ (`^CRD42\d{9}$`, e.g. `CRD42024500001`). Run `grep -oE 'CRD42[0-9]+' manuscript.md` and
204
+ assert each match is 14 characters long; a 15-character ID (a stray inserted digit) is a
205
+ transcription error logged as `[REGISTRATION-TIMING]` (`fixable_by_ai: false` — verify against
206
+ the live PROSPERO record, do not guess the correct digit).
207
+
208
+ **Flagging:** any failure is logged in Part C Action Items with label
209
+ `[REGISTRATION-TIMING]`. `fixable_by_ai: false` when reconciliation requires an external
210
+ amendment filing; `true` only when the fix is a Methods-text insertion of a date already
211
+ disclosed elsewhere. Part D JSON includes a `registration_timing` object
212
+ (registry, id, initial_registration_date, amendments[], timing_consistency, findings[]).
213
+
214
+ **Load-on-demand procedural detail** (exact item-by-item procedure, JSON schema,
215
+ flagging edge cases): `${CLAUDE_SKILL_DIR}/references/step4c_registration_timing.md`.
216
+
217
+ ### Step 4d: PRISMA Figure 1 Arithmetic & Cross-Reference Audit
218
+
219
+ **Applies to:** systematic reviews and meta-analyses using PRISMA 2020 / PRISMA-DTA /
220
+ PRISMA-P. Triggers when Item 16a (flow diagram) is PRESENT.
221
+
222
+ **Why this step exists:** the flow diagram is a single checklist item and can pass Step 4
223
+ visually while still containing arithmetic errors (records screened ≠ identified − duplicates;
224
+ sought-for-retrieval ≠ screened − excluded) or text↔figure number disagreements. Senior
225
+ MA reviewers commonly require strict PRISMA 2020 diagram conformance and explicit body↔
226
+ figure number agreement; reviewers who detect these mismatches lose confidence in the
227
+ study's data integrity immediately.
228
+
229
+ **Four arithmetic checks:**
230
+ 1. records screened = records identified − duplicates removed
231
+ 2. records sought-for-retrieval = records screened − records excluded (screening)
232
+ 3. reports retrieved = sought − reports not retrieved
233
+ 4. studies included = reports assessed for eligibility − reports excluded (with reasons)
234
+
235
+ **Two cross-reference checks:**
236
+ - Body text PRISMA numbers (e.g., "315 records identified, 122 duplicates removed,
237
+ 186 records screened") match Figure 1 box labels 1:1.
238
+ - Reasons for exclusion (Methods + Figure legend) agree on counts and category names.
239
+
240
+ **Procedure:**
241
+ 1. Extract numbers from manuscript Results / PRISMA flow paragraph (regex: integers near
242
+ keywords `identified`, `duplicates`, `screened`, `excluded`, `sought`, `retrieved`,
243
+ `assessed`, `included`).
244
+ 2. Extract numbers from Figure 1 source — preferred order: (a) `analysis/figures/Figure1_PRISMA.md`
245
+ markdown manifest, (b) caption text in `manuscript.md`, (c) PPTX text run if `.pptx`
246
+ exists, (d) manual entry from PNG/SVG.
247
+ 3. **Cross-check `analysis/figures/_figure_manifest.md`** (produced by `/make-figures`):
248
+ verify that the row whose `Type = prisma` (or `Type = prisma-dta`) points at the same
249
+ file path used as the audit source, and that the row's `Critic` field is `yes` or
250
+ `partial` (not `no`). A missing manifest row, mismatched path, or `Critic = no` flag
251
+ logs `[MANIFEST-XREF]` (advisory) — the arithmetic check still runs against the source
252
+ identified in step 2. Skip this sub-step if `_figure_manifest.md` does not exist (older
253
+ projects).
254
+ 4. Run 4 arithmetic checks; emit PRESENT / MISSING / MISMATCH per equation.
255
+ 5. Run 2 cross-reference checks; emit PRESENT / MISSING / MISMATCH per number.
256
+ 6. Output `qc/prisma_figure_audit.json` and a short table.
257
+
258
+ **Flagging:** any MISMATCH or arithmetic failure logs a Part C Action Item with label
259
+ `[PRISMA-FIGURE]`. `fixable_by_ai: false` (numbers must be reconciled by the author).
260
+
261
+ **Load-on-demand procedural detail** (exact regex set, JSON schema, edge cases —
262
+ duplicates handled across databases, citation searching strand, dual-reviewer screening):
263
+ `${CLAUDE_SKILL_DIR}/references/step4d_prisma_figure_audit.md`.
264
+
265
+ **Cross-cutting**: integrates with `~/.claude/rules/numerical-safety.md` (PRISMA 5-way
266
+ consistency: text ↔ Figure ↔ extraction CSV ↔ analysis script ↔ supplementary).
267
+
268
+ ### Step 4e: Reporting-Framework Naming Audit
269
+
270
+ **Applies to:** any manuscript that invokes an AI/extension reporting framework
271
+ (PROBAST+AI, STARD-AI, TRIPOD+AI, TRIPOD-LLM, CONSORT-AI, SPIRIT-AI, PRISMA-DTA, QUADAS-C).
272
+
273
+ **Why this step exists:** a base reporting tool and its extension are distinct instruments
274
+ with separate citations (manuscript-style-classical §14). Step 1 routes to the right
275
+ checklist but does not police how the framework is *named* in prose. The recurring failures
276
+ are: invoking an extension without ever naming or citing the base instrument it extends;
277
+ mixing `+AI` and `-AI` hyphenation for one family within a single document; coining item
278
+ labels like "12-AI"; and waving at "recent guidance" instead of naming the framework.
279
+
280
+ **Run the deterministic gate:**
281
+
282
+ ```bash
283
+ python3 "${CLAUDE_SKILL_DIR}/scripts/check_framework_naming.py" \
284
+ --manuscript manuscript.md --out qc/framework_naming.json --strict
285
+ ```
286
+
287
+ **Verdicts:** `BASE_MISSING` (extension used, base instrument never named standalone) is a
288
+ Major and logs `[FRAMEWORK-NAMING]` in Part C with `fixable_by_ai: true` (insert the base
289
+ name + its citation). `HYPHEN_MIX`, `CITE_MISSING`, `SELF_COINED_LABEL`, and `VAGUE_GUIDANCE`
290
+ are Minor (`fixable_by_ai: true`). Part D JSON includes a `framework_naming` object mirroring
291
+ the script's `claims[]`.
292
+
293
+ ### Step 5: Generate Report
294
+
295
+ Produce a structured compliance report in two parts.
296
+
297
+ #### Part A: Summary
298
+
299
+ ```
300
+ ## Reporting Guideline Compliance Report
301
+
302
+ Manuscript: {title}
303
+ Target manuscript file: {manuscript filename, e.g. manuscript_v8.md}
304
+ Target version: {version token from the filename or frontmatter, e.g. v8}
305
+ Guideline: {name and version}
306
+ Date: {YYYY-MM-DD}
307
+ Assessed by: Claude (automated pre-screening)
308
+
309
+ ### Summary
310
+
311
+ | Status | Count | Percentage |
312
+ |--------|-------|------------|
313
+ | PRESENT | {n} | {%} |
314
+ | PARTIAL | {n} | {%} |
315
+ | MISSING | {n} | {%} |
316
+ | N/A | {n} | {%} |
317
+ | **Total** | **{n}** | **100%** |
318
+
319
+ Overall compliance: {PRESENT count}/{applicable count} ({%})
320
+ ```
321
+
322
+ #### Part B: Item-by-Item Checklist
323
+
324
+ ```
325
+ ### Detailed Checklist
326
+
327
+ | # | Section | Item | Status | Location | Notes |
328
+ |---|---------|------|--------|----------|-------|
329
+ | 1 | Title/Abstract | {item text} | PRESENT | Title | {notes} |
330
+ | 2 | Introduction | {item text} | MISSING | -- | {suggestion} |
331
+ | ... | ... | ... | ... | ... | ... |
332
+ ```
333
+
334
+ #### Part C: Action Items (for MISSING and PARTIAL)
335
+
336
+ ```
337
+ ### Action Items (Priority Order)
338
+
339
+ 1. **[MISSING] Item {N}: {item name}**
340
+ - Required: {what needs to be added}
341
+ - Suggested location: {section, paragraph}
342
+ - Example text: "{draft sentence or phrase}"
343
+
344
+ 2. **[PARTIAL] Item {N}: {item name}**
345
+ - Current: {what was found}
346
+ - Needed: {what additional detail is required}
347
+ - Suggested revision: "{draft revision}"
348
+ ```
349
+
350
+ Order action items by:
351
+ 1. Items most journals enforce strictly (e.g., ethics approval, registration, sample size)
352
+ 2. Items in the Methods section (easiest to fix)
353
+ 3. Items in other sections
354
+
355
+ #### Part D: Machine-Readable JSON Summary
356
+
357
+ Append a fenced JSON block at the end of the report. This enables `/write-paper` Phase 7 and `/orchestrate` to parse compliance results programmatically. This block **MUST** be present when invoked with `--json` flag or when called from `/write-paper` Phase 7. It SHOULD also be present in standard invocations (appended after Part C).
358
+
359
+ ```json
360
+ {
361
+ "check_reporting_version": "1.1",
362
+ "manuscript_title": "...",
363
+ "target_manuscript": "manuscript_v8.md",
364
+ "target_version": "v8",
365
+ "source_sha256": "<first 12 hex chars of sha256 of the manuscript file bytes>",
366
+ "guideline": "STARD-AI",
367
+ "guideline_version": "2025",
368
+ "date": "YYYY-MM-DD",
369
+ "total_items": 40,
370
+ "present": 32,
371
+ "partial": 4,
372
+ "missing": 3,
373
+ "na": 1,
374
+ "compliance_pct": 88.9,
375
+ "action_items": [
376
+ {
377
+ "item_number": 12,
378
+ "section": "Methods",
379
+ "item_name": "Sample size justification",
380
+ "status": "MISSING",
381
+ "suggested_location": "Methods, after participant description",
382
+ "suggested_fix": "Add: 'The sample size was determined based on [rationale]. A minimum of [N] cases was required to achieve [target] precision for the primary endpoint.'",
383
+ "fixable_by_ai": true
384
+ },
385
+ {
386
+ "item_number": 7,
387
+ "section": "Methods",
388
+ "item_name": "Blinding of index test to reference standard",
389
+ "status": "PARTIAL",
390
+ "current_text": "Readers were blinded",
391
+ "needed": "Specify what readers were blinded to (reference standard results, clinical information, other reader results)",
392
+ "suggested_fix": "Expand to: 'Readers interpreted [index test] images blinded to the reference standard results, clinical information, and other readers' assessments.'",
393
+ "fixable_by_ai": true
394
+ }
395
+ ]
396
+ }
397
+ ```
398
+
399
+ **Field definitions:**
400
+ - `compliance_pct`: `present / (total_items - na) * 100`, rounded to one decimal
401
+ - `action_items`: Array of MISSING and PARTIAL items only (PRESENT and N/A excluded)
402
+ - `fixable_by_ai`: `true` if the fix involves inserting or expanding text with information available in the manuscript or inferable from context; `false` if it requires external information (e.g., registration number, IRB approval number, specific protocol details only the author knows)
403
+ - `suggested_fix`: Concrete draft text that can be inserted or used to expand an existing sentence
404
+
405
+ ---
406
+
407
+ ## Assessment Standards
408
+
409
+ ### Be Strict
410
+
411
+ - PARTIAL means the item is mentioned but lacks specificity. For example:
412
+ - "We used appropriate statistical tests" = PARTIAL (which tests?)
413
+ - "We used the Mann-Whitney U test for continuous variables and Fisher's exact test for categorical variables" = PRESENT
414
+ - A vague reference does not count as PRESENT. The detail level must match what the guideline expects.
415
+
416
+ ### Be Specific in Suggestions
417
+
418
+ - For MISSING items, provide a draft sentence the user can insert.
419
+ - For PARTIAL items, point to the exact gap and suggest specific additions.
420
+ - Reference the specific manuscript section where the addition should go.
421
+
422
+ ### Common Gaps to Watch For
423
+
424
+ These items are frequently missing in medical manuscripts:
425
+
426
+ 1. **Study registration number** (CONSORT, PRISMA, STARD)
427
+ 2. **Registration / amendment date consistency** (PRISMA 2020, PRISMA-DTA, CONSORT, SPIRIT) — run Step 4c whenever a registration identifier is present
428
+ 3. **Sample size justification** (CONSORT, STROBE, STARD)
429
+ 4. **Missing data handling** (all guidelines)
430
+ 5. **Blinding details** (CONSORT, STARD)
431
+ 6. **Funding and conflicts of interest** (all guidelines)
432
+ 7. **Ethics approval with committee name and approval number** (all guidelines)
433
+ 8. **Data availability statement** (increasingly required)
434
+ 9. **AI-specific: training/validation/test split details** (TRIPOD+AI, CLAIM, STARD-AI)
435
+ 10. **AI-specific: model architecture and hyperparameters** (TRIPOD+AI, CLAIM, STARD-AI)
436
+ 11. **AI-specific: failure mode analysis** (CLAIM, STARD-AI)
437
+ 12. **AI-specific: fairness/bias assessment** (STARD-AI)
438
+ 13. **AI-specific: commercial interests and data/code availability** (STARD-AI)
439
+
440
+ ---
441
+
442
+ ## PRISMA Cascade Arithmetic Auto-Verify
443
+
444
+ PRISMA 2020 flow diagrams chain a cascade of subtractions (database
445
+ records → after dedup → title/abstract screened → full-text reviewed →
446
+ included in synthesis). Off-by-one errors in the prose cascade are a
447
+ high-frequency reviewer red flag (e.g., `151 + 108 + 39 + 1 + 1 + 4 =
448
+ 304` followed by a prose summary "305" four lines later).
449
+
450
+ When PRISMA 2020 or PRISMA-DTA is selected and round-by-round
451
+ screening TSV artifacts are available, run the cascade auto-verify:
452
+
453
+ ```bash
454
+ python "${CLAUDE_SKILL_DIR}/scripts/prisma_cascade_check.py" \
455
+ --round1 2_Screening/round1.tsv \
456
+ --round2 2_Screening/round2.tsv \
457
+ --round3 2_Screening/round3_adjudication.tsv \
458
+ --manuscript manuscript.md \
459
+ --out qc/prisma_cascade.json
460
+ ```
461
+
462
+ The script:
463
+ 1. Reads the round TSVs and counts `INCLUDE` / `EXCLUDE` / `MAYBE`
464
+ decisions per round.
465
+ 2. Computes the cascade arithmetic from raw decisions (no prose).
466
+ 3. Optionally grep the manuscript for matching stage-count claims and
467
+ emits per-stage drift when the prose disagrees.
468
+
469
+ Treat any `manuscript_drift` entry as a P0 blocker — fix the prose to
470
+ match the computed cascade and re-run.
471
+
472
+ ## Submission Checklist Export
473
+
474
+ Many journals require a filled reporting checklist to be submitted alongside the manuscript.
475
+ When the user asks for a submission-ready checklist, format the output as:
476
+
477
+ ```
478
+ {Guideline Name} Checklist
479
+
480
+ Manuscript title: {title}
481
+ Date: {YYYY-MM-DD}
482
+
483
+ | Item # | Checklist Item | Reported on Page # | Reported in Section |
484
+ |--------|---------------|-------------------|-------------------|
485
+ | 1 | {item text} | {page or N/A} | {section} |
486
+ | 2 | {item text} | {page or N/A} | {section} |
487
+ | ... | ... | ... | ... |
488
+ ```
489
+
490
+ Page numbers should be filled in by the user after final formatting. Use section names as placeholders.
491
+
492
+ ---
493
+
494
+ ## Skill Interactions
495
+
496
+ | When | Call | Purpose |
497
+ |------|------|---------|
498
+ | During manuscript writing | `/write-paper` Phase 7 | Final compliance check |
499
+ | Need to add Methods text | `/write-paper` Phase 3 | Draft missing Methods content |
500
+ | Need statistical details | `/analyze-stats` | Generate missing statistical reporting |
501
+ | Need flow diagram | `/make-figures` | Generate CONSORT/STARD/PRISMA diagram |
502
+
503
+ ---
504
+
505
+ ## Error Handling
506
+
507
+ - If the manuscript file cannot be read, ask the user for the correct path.
508
+ - If the study type is ambiguous, ask the user to confirm before selecting a guideline.
509
+ - If a checklist item is genuinely unclear in its applicability, mark as N/A with justification.
510
+ - This is a pre-screening tool. Always remind the user that final compliance should be verified by all co-authors and ideally by a methodologist.
511
+
512
+ ## Language
513
+
514
+ - Checklist content and compliance report: English
515
+ - Communication with user: Match user's preferred language
516
+ - Medical terms: English only
517
+
518
+ ## Anti-Hallucination
519
+
520
+ - **Never fabricate references.** All citations must be verified via `/search-lit` with confirmed DOI or PMID. Mark unverified references as `[UNVERIFIED - NEEDS MANUAL CHECK]`.
521
+ - **Never invent clinical definitions, diagnostic criteria, or guideline recommendations.** If uncertain, flag with `[VERIFY]` and ask the user.
522
+ - **Never fabricate numerical results** — compliance percentages, scores, effect sizes, or sample sizes must come from actual data or analysis output.
523
+ - If a reporting guideline item, journal policy, or clinical standard is uncertain, state the uncertainty rather than guessing.
524
+
525
+ ---
526
+
527
+ ## Gates
528
+
529
+ | Gate | Severity | Trigger | Action on fail |
530
+ |---|---|---|---|
531
+ | Mandatory items present | ENFORCED at submission | < 100% of guideline-mandatory items marked PRESENT | Auto-fix MISSING items where text exists; otherwise route to `/write-paper` Phase 7 for re-draft |
532
+ | Step 4d PRISMA Figure 1 arithmetic & cross-reference audit (PRISMA / PRISMA-DTA only) | ENFORCED for SR/MA | flow numbers don't sum (e.g., screened ≠ included + excluded), or in-text counts mismatch flow diagram | HALT; reconcile against extraction artifacts |
533
+ | Optional items (e.g., supplementary AI declarations) | ADVISORY | < 80% of optional items present | warn; user accepts |
534
+ | Cross-reporting-guideline routing (study type → guideline) | ENFORCED | study type undeclared or guideline missing | Ask user; do not silently default |
@@ -0,0 +1,41 @@
1
+ # Checklist Licenses
2
+
3
+ Attribution for bundled reporting guideline checklists.
4
+
5
+ | File | Guideline | Reference | License |
6
+ |------|-----------|-----------|---------|
7
+ | STROBE.md | STROBE 2007 | von Elm E et al. PLoS Med 2007 | CC BY |
8
+ | STARD.md | STARD 2015 | Bossuyt PM et al. BMJ 2015 | CC BY 4.0 |
9
+ | STARD_AI.md | STARD-AI 2025 | Sounderajah V et al. Nat Med 2025;31:3283-3289 | CC BY |
10
+ | TRIPOD_AI.md | TRIPOD+AI 2024 | Collins GS et al. BMJ 2024 | CC BY 4.0 |
11
+ | PRISMA_2020.md | PRISMA 2020 | Page MJ et al. BMJ 2021 | CC BY |
12
+ | ARRIVE_2.md | ARRIVE 2.0 | Percie du Sert N et al. PLoS Biol 2020 | CC0 |
13
+ | PRISMA_DTA.md | PRISMA-DTA 2018 | McInnes MDF et al. JAMA 2018 | CC BY |
14
+ | QUADAS2.md | QUADAS-2 | Whiting PF et al. Ann Intern Med 2011 | CC BY |
15
+ | RoB2.md | RoB 2 | Sterne JAC et al. BMJ 2019 | CC BY |
16
+ | ROBINS_I.md | ROBINS-I | Sterne JAC et al. BMJ 2016 | CC BY |
17
+ | PROBAST.md | PROBAST | Wolff RF et al. Ann Intern Med 2019 | CC BY |
18
+ | NOS.md | Newcastle-Ottawa Scale | Wells GA et al. Ottawa Hospital Research Institute | Public Domain |
19
+ | MI_CLEAR_LLM.md | MI-CLEAR-LLM 2025 | Park SH et al. Korean J Radiol 2024;25(10):865-868; 2025 update KJR 2025;26(12):1123-1132 | CC BY-NC 4.0 |
20
+ | CONSORT.md | CONSORT 2025 | Hopewell S et al. BMJ 2025;389:e081123 | CC BY 4.0 |
21
+ | SPIRIT.md | SPIRIT 2025 | Chan AW et al. BMJ 2025;389:e081477 | CC BY 4.0 |
22
+ | CARE.md | CARE 2013 | Gagnier JJ et al. J Clin Epidemiol 2014;67(1):46-51 | CC BY-NC 4.0 |
23
+ | CLAIM_2024.md | CLAIM 2024 Update | Tejani AS et al. Radiol Artif Intell 2024;6(4):e240300 | RSNA, open access |
24
+
25
+ These files are educational summaries of published assessment tools. The original
26
+ checklist documents should be cited in any manuscript that uses them.
27
+
28
+ ## Third-party licenses (NOT covered by the repository MIT license)
29
+
30
+ Most files above are CC BY / CC0 / public domain and redistribute freely with
31
+ attribution. The following retain their own licenses and are **not** placed under
32
+ this repository's MIT license — downstream use must comply with the original terms:
33
+
34
+ - **CARE.md** and **MI_CLEAR_LLM.md** are **CC BY-NC 4.0**: free to copy and
35
+ redistribute **with attribution for non-commercial purposes**. Commercial use
36
+ requires permission from the original rights holders.
37
+ - **CLAIM_2024.md** is an educational summary of an RSNA open-access checklist
38
+ (© RSNA). Cite Tejani et al. 2024; consult RSNA for commercial reuse terms.
39
+
40
+ All files remain educational summaries that cite their source; they do not relicense
41
+ the underlying guidelines.