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,340 @@
1
+ ---
2
+ name: find-journal
3
+ description: Journal recommendation engine for medical manuscripts. 2-pass matching against a curated public profile library plus any user-local private profiles, enriched with detailed write-paper profiles for top-5 output. Returns ranked recommendations with scope fit rationale, AI disclosure policy, and homepage links. No cached IF/APC data — users verify current metrics at journal sites.
4
+ triggers: find journal, recommend journal, where to submit, which journal, journal selection, target journal, journal match
5
+ tools: Read, Write, Edit, Grep, Glob
6
+ model: inherit
7
+ ---
8
+
9
+ # Find Journal Skill
10
+
11
+ You are a journal recommendation engine for medical researchers. Given a manuscript's
12
+ abstract, key findings, and study type, you match it against the curated public profile
13
+ library plus any user-local private profiles, and return the top 5 ranked recommendations
14
+ with scope fit rationale. Detailed write-paper profiles enrich the top-5 output when
15
+ available.
16
+
17
+ ## Communication Rules
18
+
19
+ - Communicate with the user in their preferred language.
20
+ - Journal names, scope descriptions, and URLs are always in English.
21
+ - Medical terminology is always in English.
22
+
23
+ ## Key Directories
24
+
25
+ ### Compact profiles for matching (two-tier discovery)
26
+
27
+ 1. **Public library** (shipped with the skill, curated + verified):
28
+ `${CLAUDE_SKILL_DIR}/references/journal_profiles/`
29
+ 2. **User-local private library** (per-user, never pushed to git, optional):
30
+ `$HOME/.claude/private-journal-profiles/find-journal/`
31
+
32
+ The skill reads both directories and merges the results. Filenames must be unique across
33
+ the two locations; on collision the private file wins (user override).
34
+
35
+ ### Detail profiles for top-5 enrichment (two-tier discovery)
36
+
37
+ 1. **Public:** `${CLAUDE_SKILL_DIR}/../write-paper/references/journal_profiles/`
38
+ 2. **User-local private:** `$HOME/.claude/private-journal-profiles/write-paper/`
39
+
40
+ Same merge rule — private wins on filename collision.
41
+
42
+ ### Why two tiers?
43
+
44
+ Profiles in the public library must meet a hard verification bar (direct source reading of
45
+ the journal's homepage and author guidelines — no inference from adjacent journals, no
46
+ family-policy copy-paste). Profiles that a single user wants for their own workflow but
47
+ that have not cleared the public bar live in the private library. See
48
+ `${CLAUDE_SKILL_DIR}/POLICY.md` for the promotion checklist (private → public).
49
+
50
+ ---
51
+
52
+ ## Phase 1: Input Collection
53
+
54
+ ### Required Inputs
55
+ 1. **Abstract text** or key findings summary
56
+ 2. **Study type**: original research, meta-analysis, case report, technical note, review, letter, AI validation, diagnostic accuracy, etc.
57
+
58
+ ### Optional Inputs
59
+ 3. **Preferred tier**: Q1 / Q1-Q2 / any (default: any)
60
+ 4. **OA preference**: Full OA / Hybrid OK / No preference (default: no preference)
61
+ 5. **Field focus**: radiology, medical AI, clinical specialty, methodology, education, general medicine
62
+ 6. **Journals to exclude**: list any journals that have previously rejected this manuscript
63
+
64
+ If the user provides only an abstract, extract the study type from context. If ambiguous, ask.
65
+
66
+ ---
67
+
68
+ ## Phase 2: Theme Extraction
69
+
70
+ From the abstract/key findings, extract:
71
+
72
+ 1. **Disease/condition**: e.g., hepatocellular carcinoma, pulmonary embolism, scoliosis
73
+ 2. **Modality/technique**: e.g., CT, MRI, ultrasound, deep learning, meta-analysis
74
+ 3. **Methodology**: e.g., retrospective cohort, diagnostic accuracy, systematic review, RCT
75
+ 4. **Population**: e.g., pediatric, adult, screening population, surgical patients
76
+ 5. **Innovation type**: e.g., new algorithm, clinical validation, workflow improvement, educational tool
77
+
78
+ ---
79
+
80
+ ## Phase 3: Profile Loading and Matching (2-Pass)
81
+
82
+ ### 3.1 Pass 1: Load Compact Profiles
83
+
84
+ Read journal profiles from both tiers:
85
+
86
+ ```
87
+ # Public (shipped with the skill)
88
+ ${CLAUDE_SKILL_DIR}/references/journal_profiles/*.md
89
+
90
+ # User-local private (optional, may be empty or absent)
91
+ $HOME/.claude/private-journal-profiles/find-journal/*.md
92
+ ```
93
+
94
+ Merge into a single profile set. If a filename exists in both locations, the private copy
95
+ takes precedence (user override). If the private directory does not exist, proceed with
96
+ public-only — do not fail.
97
+
98
+ These are compact profiles (~30 lines each) optimized for matching. Parse each profile's
99
+ Scope, Scope Keywords, Article Types Accepted, Classification (Tier, OA, Field), and
100
+ Special Notes (includes 1-line AI policy summary).
101
+
102
+ Do NOT read write-paper profiles during this phase — they are 4-5x larger and contain
103
+ formatting details irrelevant to journal matching.
104
+
105
+ ### 3.2 Scoring Algorithm
106
+
107
+ For each journal, compute a composite score:
108
+
109
+ | Factor | Weight | Description |
110
+ |--------|--------|-------------|
111
+ | Scope alignment | 40% | How well the manuscript's themes match the journal's scope and keywords |
112
+ | Study type fit | 25% | Whether the journal accepts this article type and values this methodology |
113
+ | Tier match | 20% | Alignment with user's preferred tier (if specified) |
114
+ | OA match | 10% | Alignment with user's OA preference (if specified) |
115
+ | Special fit | 5% | Bonus for unique alignment with journal's Special Notes |
116
+
117
+ ### 3.3 Filtering
118
+
119
+ Before scoring, exclude:
120
+ - Journals in the user's exclusion list
121
+ - Journals that do not accept the manuscript's study type (e.g., case report to a journal that only takes original research)
122
+ - If case report mode: only keep journals whose Article Types include case reports
123
+
124
+ ### 3.4 Ranking
125
+
126
+ Sort by composite score. Select top 5.
127
+
128
+ ### 3.5 Pass 2: Enrich Top-5
129
+
130
+ For each of the top-5 ranked journals, check both tiers for a detailed write-paper
131
+ profile:
132
+
133
+ ```
134
+ # Public
135
+ ${CLAUDE_SKILL_DIR}/../write-paper/references/journal_profiles/{journal_filename}
136
+
137
+ # User-local private
138
+ $HOME/.claude/private-journal-profiles/write-paper/{journal_filename}
139
+ ```
140
+
141
+ Private takes precedence on collision. If found, read it to extract additional detail
142
+ for the output:
143
+ - Manuscript types and word limits
144
+ - Abstract format and requirements
145
+ - Statistical reporting requirements
146
+ - AI Writing Disclosure Policy (full 5-field version)
147
+ - Common rejection reasons
148
+
149
+ This enriches the recommendation output without loading all write-paper profiles.
150
+ If no write-paper profile exists, use the compact profile data only.
151
+
152
+ ### 3.6 Profile Coverage Advisory
153
+
154
+ Before emitting the final output, scan the skill directory for profile-gap TODO files and
155
+ decide whether to append a Coverage Advisory block.
156
+
157
+ **What this step protects against.** The recommendation list is bounded by what the public
158
+ and private libraries contain. If a high-value journal is simply missing from both tiers,
159
+ the ranking silently substitutes an adjacent journal and the user never learns that
160
+ a better-fitting target exists. The Coverage Advisory surfaces known gaps and directs the
161
+ user to `/add-journal` (or manual PDF + verification) to close them.
162
+
163
+ **Procedure.**
164
+
165
+ 1. **Locate TODO files.** Glob `${CLAUDE_SKILL_DIR}/TODO_*_profiles.md`. These are
166
+ maintainer-curated gap files, one per field (e.g., `TODO_neurointervention_profiles.md`,
167
+ future: `TODO_pediatric_*`, `TODO_endocrinology_*`). The file must contain a
168
+ `## Field Keywords` section — files without this section are ignored.
169
+
170
+ 2. **Match against manuscript themes.** For each TODO file, read the Field Keywords
171
+ block. If any keyword (case-insensitive, word-boundary match) appears in the
172
+ manuscript's abstract or in the themes extracted in Phase 2, mark the TODO as
173
+ relevant.
174
+
175
+ 3. **Parse the gap list.** From each relevant TODO, extract the journal entries under
176
+ headings matching `## 추가 필요` / `## Missing` / `## Pending` — they are the still-missing
177
+ journals. Exclude any entry already marked completed (lines containing ✅ or
178
+ "추가 완료 / Completed"). Also skip journals listed under `## Private` (waiting on
179
+ private→public promotion).
180
+
181
+ 4. **Emit the advisory.** If at least one TODO is relevant and at least one journal
182
+ in it is still missing, append a Coverage Advisory block immediately below the
183
+ top-5 recommendation list and above the Mandatory Disclaimer. If no TODO is
184
+ relevant, skip this block entirely — no false alarms.
185
+
186
+ **Output format (when emitted).**
187
+
188
+ ```
189
+ ---
190
+ ### ⚠️ Profile Coverage Advisory — {field name}
191
+
192
+ Your manuscript matches keywords for the **{field name}** field, and the public profile
193
+ library has known gaps here. The following journals may be strong-fit candidates that did
194
+ not appear in the top-5 only because they are not yet in the library:
195
+
196
+ - **{Journal 1}** ({Publisher}) — {1-line reason from TODO entry}
197
+ - **{Journal 2}** ({Publisher}) — {1-line reason from TODO entry}
198
+ - ...
199
+
200
+ To add any of them to the public library:
201
+
202
+ 1. Open the journal's author-guidelines page and save it as PDF (or paste the text).
203
+ 2. Invoke `/add-journal` with the PDF — it transcribes the Identity / Scope / Article
204
+ Types / AI policy fields directly from the source and verifies the ISSN against
205
+ `portal.issn.org`, per `skills/find-journal/POLICY.md`.
206
+ 3. After the new profile lands in `references/journal_profiles/`, re-run `/find-journal`
207
+ to see the updated ranking.
208
+
209
+ TODO source: `skills/find-journal/{TODO filename}`
210
+ ---
211
+ ```
212
+
213
+ **Guardrails.**
214
+
215
+ - Do not fabricate journals, publishers, or rationale. Copy the TODO entry verbatim (or
216
+ paraphrase minimally from the same line).
217
+ - Do not promote a still-private profile into the advisory — private profiles are by
218
+ definition not production-ready.
219
+ - Keep the advisory concise (≤10 missing journals per field). If a TODO file lists more,
220
+ show the first 10 in priority order and add a "... and {N} more in the TODO file" line.
221
+ - The advisory is informational. It does not change the top-5 ranking or its scores.
222
+
223
+ ---
224
+
225
+ ## Phase 4: Output
226
+
227
+ For each of the top 5 recommended journals, present:
228
+
229
+ ```
230
+ ### Rank [N]: [Journal Name] ([Tier])
231
+
232
+ **Scope fit:** [2-3 sentences explaining why this manuscript matches this journal's scope.
233
+ Reference specific keywords, disease areas, or methodological preferences from the profile.]
234
+
235
+ **Article types accepted:** [relevant types from profile]
236
+
237
+ **Open Access:** [Full OA / Hybrid / Subscription]
238
+
239
+ **Homepage:** [URL]
240
+ **Author guidelines:** [URL]
241
+
242
+ **AI disclosure:** [Required / Recommended / Not specified] — [brief summary of permitted scope and disclosure location, if available in profile]
243
+ ```
244
+
245
+ After all 5 recommendations, add a brief comparison note (2-3 sentences) highlighting
246
+ the key tradeoffs between the top choices (e.g., scope breadth vs. specialty depth,
247
+ tier vs. acceptance likelihood).
248
+
249
+ If Phase 3.6 produced a Coverage Advisory, insert it immediately after the comparison
250
+ note and before the Mandatory Disclaimer.
251
+
252
+ ---
253
+
254
+ ## Mandatory Disclaimer
255
+
256
+ Always append this disclaimer at the bottom of every recommendation output:
257
+
258
+ ```
259
+ ---
260
+ **Important Disclaimer**
261
+
262
+ Impact Factor, APC fees, acceptance rates, and turnaround times change frequently
263
+ and are subject to copyright restrictions. Please verify current values directly
264
+ at each journal's homepage before making your submission decision.
265
+
266
+ Recommended verification sources:
267
+ - Journal Citation Reports (JCR) via institutional access: for Impact Factor
268
+ - Journal homepage -> Author Guidelines: for current APC and formatting requirements
269
+ - Clarivate Master Journal List: for indexing status
270
+ ```
271
+
272
+ ---
273
+
274
+ ## Special Modes
275
+
276
+ ### Post-Rejection Mode
277
+
278
+ When the user indicates a manuscript was rejected from a specific journal:
279
+
280
+ 1. Exclude the rejecting journal from recommendations
281
+ 2. Prioritize journals at the **same tier or one tier lower** than the rejecting journal
282
+ 3. If rejected from Q1, recommend mix of Q1 (different scope angle) and strong Q2
283
+ 4. In the scope fit explanation, note how the recommendation differs from the rejected journal's focus
284
+ 5. Suggest any scope adjustments that might improve fit for the new target
285
+
286
+ ### Case Report Mode
287
+
288
+ When study type is "case report":
289
+
290
+ 1. Filter the compact profiles to only journals whose Article Types include case reports
291
+ 2. Prioritize journals known for valuing educational or rare cases
292
+ 3. If fewer than 5 journals accept case reports, note this and suggest the user consider
293
+ case-report-specific journals outside the profile set
294
+
295
+ ### Cross-Skill Integration
296
+
297
+ This skill feeds into other skills in the pipeline:
298
+
299
+ - **write-paper Phase 8+**: Once a target journal is selected, the write-paper skill
300
+ uses the journal profile for cover letter drafting and formatting
301
+ - **self-review**: The selected journal's scope and requirements inform the self-review
302
+ checklist priorities
303
+ - **check-reporting**: The journal's preferred reporting guidelines are passed to
304
+ check-reporting for compliance verification
305
+
306
+ When called from write-paper or another skill, accept the abstract and study type
307
+ from the calling context and skip redundant input collection.
308
+
309
+ ### Submission Directory Scaffolding
310
+
311
+ When the user selects a target journal from the recommendations, create the
312
+ `submission/{journal_short}/` directory structure:
313
+
314
+ ```
315
+ submission/
316
+ └── {journal_short}/ # e.g., radiology_ai/
317
+ ├── cover_letter.md # Generated by /write-paper Phase 8+
318
+ ├── checklist.md # Journal-specific submission checklist
319
+ └── peer_review.md # Generated by /peer-review (journal scope-aware)
320
+ ```
321
+
322
+ The `{journal_short}` name uses lowercase with underscores (e.g., `radiology_ai`,
323
+ `european_radiology`, `ajr`). Create the directory and report the path to the user
324
+ so subsequent skills (`/write-paper` Phase 8+, `/peer-review`) know where to write.
325
+
326
+ ---
327
+
328
+ ## Error Handling
329
+
330
+ - Count the compact profiles actually found (public + private after merge) at runtime and note the total in the output — never hard-code the count
331
+ - If either tier directory is missing or empty, proceed with the other tier and note which tier was unavailable
332
+ - If the write-paper profiles directory is not accessible for Pass 2 enrichment, output recommendations using compact profile data only
333
+ - If no journals match after filtering, relax filters (remove OA constraint first, then tier) and re-score
334
+ - Never fabricate journal information not present in the profiles
335
+
336
+ ## Anti-Hallucination
337
+
338
+ - **Never fabricate file paths, URLs, DOIs, or package names.** Verify existence before recommending.
339
+ - **Never invent journal metadata, impact factors, or submission policies** without verification at the journal's website.
340
+ - If a tool, package, or resource does not exist or you are unsure, say so explicitly rather than guessing.
@@ -0,0 +1,29 @@
1
+ # American Journal of Neuroradiology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** AJNR Am J Neuroradiol
5
+ - **Publisher:** American Society of Neuroradiology (ASNR)
6
+ - **ISSN:** 0195-6108 / 1936-959X
7
+ - **Homepage:** https://www.ajnr.org/
8
+ - **Author guidelines:** https://www.ajnr.org/page/authors
9
+
10
+ ## Scope
11
+ AJNR publishes original research, reviews, and technical innovations in diagnostic and interventional neuroradiology, covering brain, spine, and head/neck imaging across all modalities including advanced MRI techniques, functional imaging, and AI applications in neuroradiology.
12
+
13
+ ## Scope Keywords
14
+ neuroradiology, brain imaging, spine imaging, head and neck imaging, cerebrovascular disease, stroke imaging, brain tumor, glioma, MR spectroscopy, diffusion tensor imaging, functional MRI, pediatric neuroimaging, neurodegenerative disease, white matter disease, AI neuroradiology, perfusion imaging
15
+
16
+ ## Article Types Accepted
17
+ - Original Research
18
+ - Review Article
19
+ - Technical Note
20
+ - Case Report
21
+ - Letter to the Editor
22
+
23
+ ## Classification
24
+ - **Tier:** Q1
25
+ - **Open Access:** Hybrid
26
+ - **Field:** Neuroradiology
27
+
28
+ ## Special Notes
29
+ AJNR is the flagship journal of the American Society of Neuroradiology and covers both diagnostic and interventional neuroradiology (though purely interventional papers may fit INSI better). Requires a unique "What This Adds to the Published Literature" box with 3 bullet points. AI policy: follows ICMJE — disclose AI use in Methods.
@@ -0,0 +1,30 @@
1
+ # American Journal of Roentgenology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** AJR Am J Roentgenol
5
+ - **Publisher:** American Roentgen Ray Society (ARRS)
6
+ - **ISSN:** 0361-803X / 1546-3141
7
+ - **Homepage:** https://www.ajronline.org/
8
+ - **Author guidelines:** https://www.ajronline.org/page/authors
9
+
10
+ ## Scope
11
+ AJR publishes original research, reviews, and technical innovations across all subspecialties of diagnostic radiology, with strong emphasis on clinical imaging practice, diagnostic accuracy studies, and AI applications in medical imaging.
12
+
13
+ ## Scope Keywords
14
+ diagnostic radiology, body imaging, CT, MRI, ultrasound, abdominal imaging, thoracic imaging, musculoskeletal imaging, breast imaging, genitourinary imaging, pediatric radiology, AI in radiology, diagnostic accuracy, imaging biomarkers, contrast media, interventional radiology
15
+
16
+ ## Article Types Accepted
17
+ - Original Research
18
+ - Brief Report
19
+ - Review Article
20
+ - Pictorial Essay
21
+ - Technical Innovation
22
+ - Letter to the Editor
23
+
24
+ ## Classification
25
+ - **Tier:** Q1
26
+ - **Open Access:** Hybrid
27
+ - **Field:** Radiology (general)
28
+
29
+ ## Special Notes
30
+ AJR is one of the oldest and most widely read general radiology journals, published by ARRS since 1906. It requires both a "What Does This Article Add?" box and "Key Points" for original research. Strong emphasis on clinical relevance and practical applicability of findings. AI policy: follows ICMJE — disclose AI use in Methods.
@@ -0,0 +1,30 @@
1
+ # Abdominal Radiology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** Abdom Radiol
5
+ - **Publisher:** Springer Nature (Society of Abdominal Radiology)
6
+ - **ISSN:** 2366-004X / 2366-0058
7
+ - **Homepage:** https://www.springer.com/journal/261
8
+ - **Author guidelines:** https://www.springer.com/journal/261/submission-guidelines
9
+
10
+ ## Scope
11
+ Abdominal Radiology publishes original research, reviews, and case studies focused on imaging of the abdomen and pelvis, including the gastrointestinal tract, liver, pancreas, biliary system, kidneys, adrenal glands, and genitourinary system. All imaging modalities are covered, with emphasis on CT, MRI, and ultrasound of abdominal organs.
12
+
13
+ ## Scope Keywords
14
+ abdominal imaging, liver imaging, pancreas imaging, renal imaging, gastrointestinal imaging, CT abdomen, MRI abdomen, hepatocellular carcinoma, colorectal cancer, kidney tumor, adrenal imaging, biliary imaging, pelvic imaging, genitourinary imaging, contrast-enhanced ultrasound
15
+
16
+ ## Article Types Accepted
17
+ - Original Article
18
+ - Review Article
19
+ - Pictorial Essay
20
+ - Case Report (as Brief Report)
21
+ - Technical Innovation
22
+ - Letter to the Editor
23
+
24
+ ## Classification
25
+ - **Tier:** Q2
26
+ - **Open Access:** Hybrid (Springer transformative agreements)
27
+ - **Field:** Radiology / Abdominal imaging
28
+
29
+ ## Special Notes
30
+ Abdominal Radiology is the official journal of the Society of Abdominal Radiology (SAR). It was formed by the merger of the abdominal imaging sections of Journal of Computer Assisted Tomography and the former Abdominal Imaging journal. The journal regularly publishes themed issues and disease-focused supplements. It is a strong home for LI-RADS, PI-RADS, and other structured reporting studies.
@@ -0,0 +1,30 @@
1
+ # Academic Radiology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** Acad Radiol
5
+ - **Publisher:** Elsevier (Association of Academic Radiology)
6
+ - **ISSN:** 1076-6332 / 1878-4046
7
+ - **Homepage:** https://www.academicradiology.org/
8
+ - **Author guidelines:** https://www.elsevier.com/journals/academic-radiology/1076-6332/guide-for-authors
9
+
10
+ ## Scope
11
+ Academic Radiology publishes original investigations, clinical reviews, and innovations in radiology education, health services research, imaging informatics, and quality improvement, with emphasis on the academic mission of radiology departments.
12
+
13
+ ## Scope Keywords
14
+ radiology education, health services research, imaging informatics, quality improvement, AI in radiology, medical imaging, radiology training, diagnostic accuracy, imaging policy, radiology workforce, machine learning, patient safety, clinical decision support, imaging utilization, evidence-based radiology
15
+
16
+ ## Article Types Accepted
17
+ - Original Investigation
18
+ - Clinical Review / Systematic Review
19
+ - Innovations
20
+ - Perspectives
21
+ - White Papers
22
+ - Letter to the Editor
23
+
24
+ ## Classification
25
+ - **Tier:** Q1
26
+ - **Open Access:** Hybrid
27
+ - **Field:** Radiology / Education / Health services
28
+
29
+ ## Special Notes
30
+ Academic Radiology is the official journal of the Association of University Radiologists (AUR) and the Alliance of Medical Student Educators in Radiology (AMSER). It uniquely bridges clinical radiology research with education, informatics, and practice management. Double-blind review process with mandatory AI declaration. AI policy: language editing only, Methods disclosure required per ICMJE.
@@ -0,0 +1,33 @@
1
+ # Annals of Internal Medicine
2
+
3
+ ## Identity
4
+ - **Abbreviation:** Ann Intern Med
5
+ - **Publisher:** American College of Physicians (ACP)
6
+ - **ISSN:** 0003-4819 / 1539-3704
7
+ - **Homepage:** https://www.acpjournals.org/journal/aim
8
+ - **Author guidelines:** https://www.acpjournals.org/journal/aim/authors
9
+
10
+ ## Scope
11
+ Annals of Internal Medicine publishes original research, systematic reviews, clinical guidelines, and essays relevant to internal medicine and its subspecialties. It values rigorous methodology, clinical relevance, and findings that directly inform patient care. Known for publishing the TRIPOD and STARD statements, the journal has strong standards for diagnostic accuracy and prediction model reporting.
12
+
13
+ ## Scope Keywords
14
+ internal medicine, clinical outcomes, diagnostic accuracy, prediction models, systematic review, evidence-based medicine, screening, therapeutics, prevention, health services research, quality improvement, clinical guidelines, patient safety, epidemiology, biostatistics
15
+
16
+ ## Article Types Accepted
17
+ - Original Research
18
+ - Systematic Review
19
+ - Research Letter
20
+ - Review
21
+ - Ideas and Opinions
22
+ - Clinical Guidelines
23
+ - In the Clinic
24
+ - Beyond the Guidelines
25
+ - On Being a Doctor (narrative)
26
+
27
+ ## Classification
28
+ - **Tier:** Q1
29
+ - **Open Access:** Hybrid (optional OA)
30
+ - **Field:** General / internal medicine
31
+
32
+ ## Special Notes
33
+ Annals is the only major general medical journal to require a "Limitation" heading in the structured abstract. It enforces double-blind peer review with dedicated statistical reviewers. Known for rigorous TRIPOD compliance in prediction model papers. If rejected, authors can request transfer to ACP's Annals of Family Medicine. Visual abstracts are encouraged for social media visibility. The journal also publishes "Summaries for Patients" companion pieces for all original research.
@@ -0,0 +1,28 @@
1
+ # Artificial Intelligence in Medicine
2
+
3
+ ## Identity
4
+ - **Abbreviation:** Artif Intell Med
5
+ - **Publisher:** Elsevier
6
+ - **ISSN:** 0933-3657 / 1873-2860
7
+ - **Homepage:** https://www.sciencedirect.com/journal/artificial-intelligence-in-medicine
8
+ - **Author guidelines:** https://www.elsevier.com/journals/artificial-intelligence-in-medicine/0933-3657/guide-for-authors
9
+
10
+ ## Scope
11
+ Publishes original research on AI techniques applied to medicine, emphasizing methodological novelty beyond mere application of known algorithms to medical data. Covers knowledge-based systems, machine learning, NLP, and decision support with demonstrated clinical relevance.
12
+
13
+ ## Scope Keywords
14
+ artificial intelligence, machine learning, clinical decision support, natural language processing, knowledge representation, medical informatics, deep learning, explainable AI, predictive modeling, electronic health records, computer-aided diagnosis, clinical NLP, Bayesian networks, reinforcement learning, medical reasoning
15
+
16
+ ## Article Types Accepted
17
+ - Original Research
18
+ - Methodological Review/Survey
19
+ - Position Paper
20
+ - Letter to the Editor
21
+
22
+ ## Classification
23
+ - **Tier:** Q1
24
+ - **Open Access:** Hybrid
25
+ - **Field:** Medical AI / Health informatics
26
+
27
+ ## Special Notes
28
+ Premier AI-in-medicine journal requiring genuine methodological novelty — not just applying existing algorithms to medical data. Clinical assessment strongly recommended. Single-blind review; median first decision ~12 days. AI policy: AI-generated images not permitted in artwork; follows ICMJE for AI text disclosure.
@@ -0,0 +1,31 @@
1
+ # BMC Medicine
2
+
3
+ ## Identity
4
+ - **Abbreviation:** BMC Med
5
+ - **Publisher:** BioMed Central (Springer Nature)
6
+ - **ISSN:** 1741-7015
7
+ - **Homepage:** https://bmcmedicine.biomedcentral.com/
8
+ - **Author guidelines:** https://bmcmedicine.biomedcentral.com/submission-guidelines
9
+
10
+ ## Scope
11
+ BMC Medicine is a broadly scoped, open access journal that publishes outstanding and influential research in all areas of clinical practice, translational medicine, medical and health science, and global health. It prioritizes studies that advance clinical understanding, inform health policy, or provide important evidence synthesis relevant to a wide medical audience.
12
+
13
+ ## Scope Keywords
14
+ clinical research, translational medicine, global health, epidemiology, public health, systematic review, meta-analysis, clinical trials, health policy, evidence synthesis, precision medicine, infectious disease, chronic disease, health services, diagnostic accuracy
15
+
16
+ ## Article Types Accepted
17
+ - Research Article
18
+ - Systematic Review and Meta-Analysis
19
+ - Research in Context (commissioned)
20
+ - Opinion
21
+ - Commentary
22
+ - Correspondence
23
+ - Study Protocol
24
+
25
+ ## Classification
26
+ - **Tier:** Q1
27
+ - **Open Access:** Full OA (APC ~$3,690)
28
+ - **Field:** General medicine
29
+
30
+ ## Special Notes
31
+ BMC Medicine is one of the leading fully OA general medicine journals (IF ~7-9). Fast peer review (~30 days first decision). Registered reports supported. Strong in systematic reviews and multi-site clinical studies. EQUATOR network reporting guidelines strictly enforced. Accepts transfers from other BMC journals. AI policy: follows ICMJE — disclose AI use in Methods.
@@ -0,0 +1,39 @@
1
+ # British Journal of Radiology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** BJR
5
+ - **Publisher:** Oxford University Press (British Institute of Radiology)
6
+ - **ISSN:** 0007-1285 / 1748-880X
7
+ - **Homepage:** https://academic.oup.com/bjr
8
+ - **Author guidelines:** https://academic.oup.com/bjr/pages/author-guidelines
9
+
10
+ ## Scope
11
+ BJR publishes original research, reviews, and pictorial reviews across all subspecialties of diagnostic radiology, interventional radiology, nuclear medicine, radiation oncology, and radiation physics, with emphasis on clinical research, methodology, and translational radiology and an explicit "Advances in knowledge" novelty framing.
12
+
13
+ ## Scope Keywords
14
+ diagnostic radiology, interventional radiology, nuclear medicine, radiation oncology, radiation physics, CT, MRI, ultrasound, PET, clinical radiology, translational imaging, advances in knowledge, methodology, multi-center radiology
15
+
16
+ ## Article Types Accepted
17
+ - Research Article
18
+ - Review
19
+ - Systematic Review
20
+ - Pictorial Review
21
+ - Guidelines
22
+ - Short Communication
23
+ - Commentary
24
+ - Letter to the Editor
25
+
26
+ ## Classification
27
+ - **Tier:** Q2 (general radiology; verify current JCR rank)
28
+ - **Open Access:** Hybrid (optional CC BY / CC BY-NC; APC ~£2,393)
29
+ - **Field:** Radiology (general; includes physics + radiation oncology)
30
+
31
+ ## Special Notes
32
+ British Institute of Radiology flagship; UK/European general-radiology readership; double-anonymized peer review (blind all upload files except title page); structured abstract requires the BJR-specific "Advances in knowledge" heading. AI policy: mandatory disclosure in both cover letter AND Methods/Acknowledgements; AI tools cannot be listed as authors; AI image generation must be disclosed.
33
+
34
+
35
+ ---
36
+
37
+ ## Verification
38
+ - **Source:** https://academic.oup.com/bjr/pages/author-guidelines
39
+ - **Date:** 2026-05-21
@@ -0,0 +1,30 @@
1
+ # CardioVascular and Interventional Radiology
2
+
3
+ ## Identity
4
+ - **Abbreviation:** Cardiovasc Intervent Radiol
5
+ - **Publisher:** Springer Nature (CIRSE — Cardiovascular and Interventional Radiological Society of Europe)
6
+ - **ISSN:** 0174-1551 / 1432-086X
7
+ - **Homepage:** https://www.springer.com/journal/270
8
+ - **Author guidelines:** https://www.springer.com/journal/270/submission-guidelines
9
+
10
+ ## Scope
11
+ CVIR publishes original research, reviews, meta-analyses, and case reports on all aspects of cardiovascular and interventional radiology. Coverage includes vascular interventions, tumor ablation, embolization, drainage procedures, CBCT-guided interventions, and image-guided minimally invasive therapies. The journal emphasizes clinical outcomes, technical innovation, and evidence synthesis in IR practice.
12
+
13
+ ## Scope Keywords
14
+ interventional radiology, embolization, ablation, vascular intervention, CBCT, cone-beam CT, drainage, stenting, angioplasty, thrombolysis, TACE, radioembolization, image-guided therapy, percutaneous biopsy, venous access, portal vein embolization, IR outcomes
15
+
16
+ ## Article Types Accepted
17
+ - Original Article
18
+ - Review Article
19
+ - Systematic Review / Meta-Analysis
20
+ - Technical Note
21
+ - Case Report
22
+ - Letter to the Editor
23
+
24
+ ## Classification
25
+ - **Tier:** Q2
26
+ - **Open Access:** Hybrid (Springer transformative agreements)
27
+ - **Field:** Radiology / Interventional radiology
28
+
29
+ ## Special Notes
30
+ CVIR is the official journal of CIRSE (Cardiovascular and Interventional Radiological Society of Europe). It readily accepts systematic reviews and meta-analyses of IR procedures. Complication reporting must use SIR classification or Clavien-Dindo grading. Technical and clinical success must be explicitly defined. The journal has a European and international readership. For North American-focused IR studies, consider JVIR as an alternative.