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,277 @@
1
+ # Medical Presentation Templates
2
+
3
+ Section structure, slide counts, and design tone for the four medical presentation
4
+ contexts handled by this skill. Each template is a starting outline — not a rigid
5
+ template. Adapt to specific paper, audience, and time slot.
6
+
7
+ > **Sources**: RadioGraphics 2025 ("Winning at the Radiology Podium," DOI 10.1148/rg.250003);
8
+ > RSNA Refresher Course Committee guidelines; UAB Physician Scientist Development Office
9
+ > journal club framework; ASHP journal club template; medsci-skills internal patterns from
10
+ > 2026-04 grand rounds and journal club decks.
11
+ >
12
+ > **Triggered from**: SKILL.md Phase 0 (Outline) — pick the template matching the
13
+ > presentation context, then customize. Cross-reference `slide_design_principles.md` (§2
14
+ > reading-time budget table) and `critic_rubrics/slide.md` Section G.
15
+
16
+ ---
17
+
18
+ ## 1. Journal club (paper-driven, peer trainees)
19
+
20
+ **Audience**: residents / fellows + 1–2 faculty. Same-specialty cohort.
21
+ **Time**: 20–30 min total (10–15 min present + remainder discussion).
22
+ **Tone**: Methodologically rigorous, critical, peer-collegial.
23
+ **Slide count**: ~20–25 (1 slide / 30–60 s).
24
+
25
+ ### Section structure
26
+
27
+ | # | Section | Slides | Purpose |
28
+ |---|---|---|---|
29
+ | 1 | Title + COI | 1 | Paper citation, presenter, date, disclosure |
30
+ | 2 | Why this paper | 1 | Clinical question that led to selection |
31
+ | 3 | Background | 1–2 | Existing evidence, what's known vs unknown |
32
+ | 4 | Research question (PICO) | 1 | Population / Intervention / Comparison / Outcome |
33
+ | 5 | Study design | 1–2 | Schema diagram of arms, randomization, follow-up |
34
+ | 6 | Methods | 1–2 | Cohort, eligibility, primary outcome, statistical plan |
35
+ | 7 | Results | 3–5 | Primary outcome figure, key tables, subgroup if relevant |
36
+ | 8 | Strengths / Weaknesses | 1 | 2-column slide (per `critic_rubrics/slide.md` G.30) |
37
+ | 9 | Limitations | 1 | Author-acknowledged + presenter-identified |
38
+ | 10 | Statistical vs clinical significance | 1 | Effect size + NNT / absolute risk reduction |
39
+ | 11 | Clinical implications | 1 | How this changes (or doesn't change) practice |
40
+ | 12 | Take-home messages | 1 | 3 bullet points, no more |
41
+ | 13 | References / Q&A | 1 | Inline citations + key supporting refs |
42
+
43
+ ### Design seed
44
+ - **Color**: Institutional accent (1) + neutral grays (2). No 3-D, no decorative animation.
45
+ - **Typography**: Sans-serif (Helvetica / Calibri / Pretendard for KR). 28 pt title /
46
+ 18–20 pt body.
47
+ - **Figures**: Use figures from the paper directly (cite slide-corner). Do not re-render
48
+ unless adding emphasis annotations.
49
+ - **Speaker note density**: 5–10 s of spoken content per slide.
50
+
51
+ ### Pre-presentation checklist
52
+ - [ ] Faculty review of paper selection (per UAB framework — verify educational
53
+ significance, relevance for practice, validity).
54
+ - [ ] Read paper independently before reading the abstract (avoid author-framing bias).
55
+ - [ ] Allocate ~50% of total time to discussion, not lecture.
56
+ - [ ] Verify `submission_safe: true` is not needed (journal club ≠ submission).
57
+
58
+ ---
59
+
60
+ ## 2. Grand rounds (mixed specialty / mixed seniority)
61
+
62
+ **Audience**: Multi-specialty, mixed trainee + attending. May include non-radiologists for
63
+ imaging-themed rounds.
64
+ **Time**: 45–60 min total (35–45 min present + remainder Q&A).
65
+ **Tone**: Educational, broadly accessible, single-take-home framing.
66
+ **Slide count**: ~30–45 (1 slide / 60–90 s, with worked examples).
67
+
68
+ ### Section structure
69
+
70
+ | # | Section | Slides | Purpose |
71
+ |---|---|---|---|
72
+ | 1 | Title + COI + Acknowledgments | 1–2 | Title, presenter affiliation, disclosure, mentor credit |
73
+ | 2 | Learning objectives | 1 | 3–4 specific objectives (verb + noun pattern) |
74
+ | 3 | Hook / clinical case | 1–2 | A real (de-identified) case that motivates the topic |
75
+ | 4 | Why this matters now | 1 | Burden / incidence / unmet clinical need |
76
+ | 5 | Background (concept review) | 2–3 | Pathophysiology / imaging principles, accessible level |
77
+ | 6 | Current standard of care | 1–2 | Where the field is today, what the gap is |
78
+ | 7 | Recent evidence | 5–8 | 2–3 key papers; one slide per take-home |
79
+ | 8 | Worked imaging examples | 4–8 | Side-by-side cases illustrating each teaching point |
80
+ | 9 | Practice algorithm / decision tree | 1–2 | Synthesis: how to apply in daily practice |
81
+ | 10 | Limitations of current evidence | 1 | Honest framing of what we still don't know |
82
+ | 11 | Future directions | 1 | Trials in progress, AI/computational angles if relevant |
83
+ | 12 | Take-home messages | 1 | Map back to learning objectives |
84
+ | 13 | Return to opening case | 1 | Show how the talk's content alters the case management |
85
+ | 14 | Q&A / References | 1 | Inline cites throughout; reference handout if requested |
86
+
87
+ ### Design seed
88
+ - **Color**: Institutional palette + 1 accent for highlights. Avoid >3 colors per slide.
89
+ - **Typography**: Title 32 pt / body 20–22 pt (room may seat ≥ 100).
90
+ - **Figures**: Mix of paper figures, original imaging, and SMART Servier anatomical icons.
91
+ AI-image disclosure if anything is AI-generated.
92
+ - **Worked examples**: Build-up animations acceptable (sequential reveal of imaging
93
+ findings) — but only when the build encodes a teaching step.
94
+
95
+ ### Pre-presentation checklist
96
+ - [ ] Learning objectives written with measurable verbs (avoid "understand"; prefer
97
+ "identify," "differentiate," "recommend").
98
+ - [ ] Imaging consent / de-identification verified for all cases.
99
+ - [ ] Disclosure slide includes industry relationships, advisory roles, prior publications
100
+ cited.
101
+ - [ ] Mentor pre-review completed (typical 1–2 weeks before).
102
+
103
+ ---
104
+
105
+ ## 3. Conference talk (RSNA / ECR / KCR / society meeting)
106
+
107
+ **Audience**: Specialist peers; high domain expertise.
108
+ **Time**: 7–12 min present + 2–3 min Q&A (oral session standard).
109
+ **Tone**: Tight, data-dense, focused on contribution.
110
+ **Slide count**: ~10–14 for 10-min talk; ~14–18 for 12-min (1 slide / 45–60 s).
111
+
112
+ ### Section structure
113
+
114
+ | # | Section | Slides | Purpose |
115
+ |---|---|---|---|
116
+ | 1 | Title + Disclosure | 1 | Title, authors, affiliation, COI in 1 slide |
117
+ | 2 | Background + Gap | 1–2 | Tight: 1 sentence on context, 1 on gap |
118
+ | 3 | Hypothesis / Aim | 1 | Stated as a sentence-headline |
119
+ | 4 | Methods | 1–2 | Cohort flow diagram + key methodological choice |
120
+ | 5 | Primary results | 2–3 | One figure per result; sentence-headline title |
121
+ | 6 | Subgroup / sensitivity | 1 | Only if it's the most defensible secondary finding |
122
+ | 7 | Limitations | 1 | Brief — acknowledge top 2–3 |
123
+ | 8 | Conclusions | 1 | 1 sentence; mirrors abstract conclusion |
124
+ | 9 | Acknowledgments | 1 | Funding, collaborators, departmental support |
125
+
126
+ ### Design seed
127
+ - **Color**: One accent for primary result; everything else neutral.
128
+ - **Typography**: ≥ 24 pt body throughout (auditorium projection).
129
+ - **Figures**: Re-render journal figures for slide context (drop methodological detail,
130
+ enlarge axis labels, direct-label series). RSNA / ECR projection rooms project at 1080p
131
+ — vector PDFs preferred.
132
+ - **Speaker pace**: 130–150 words/min for academic delivery; rehearse to ensure last
133
+ slide arrives at 9:30 of a 10-min slot.
134
+
135
+ ### Pre-presentation checklist
136
+ - [ ] Abstract was accepted for oral (not poster) — confirm slot type and time.
137
+ - [ ] Audience response system not used (oral sessions don't typically include ARS).
138
+ - [ ] Submitted disclosure to society (society disclosures often separate from manuscript
139
+ COI).
140
+ - [ ] Backup slide stack for top-3 anticipated questions ready.
141
+
142
+ ---
143
+
144
+ ## 4. Lecture / didactic (residents, course material)
145
+
146
+ **Audience**: Trainees in structured curriculum (radiology residents, fellows, medical
147
+ students).
148
+ **Time**: 50–60 min (full lecture slot).
149
+ **Tone**: Pedagogical, build-up, recap-friendly.
150
+ **Slide count**: ~30–40 (1 slide / 90–120 s, with worked examples and recap slides).
151
+
152
+ ### Section structure
153
+
154
+ | # | Section | Slides | Purpose |
155
+ |---|---|---|---|
156
+ | 1 | Title + Lecture position in curriculum | 1 | "Lecture 4 of 12: Body MRI series" |
157
+ | 2 | Learning objectives | 1 | Mapped to curriculum competencies |
158
+ | 3 | Recap of prior lecture | 1–2 | Where we were last time |
159
+ | 4 | Today's roadmap | 1 | 3–5 sections previewed |
160
+ | 5 | Section 1: Concept | 3–5 | Build-up + worked example + check-for-understanding |
161
+ | 6 | Section 2: Concept | 3–5 | Same pattern |
162
+ | 7 | ... | | |
163
+ | 8 | Synthesis / decision algorithm | 2–3 | How sections connect into clinical workflow |
164
+ | 9 | Self-assessment questions | 2–3 | 3–5 multiple-choice with answer reveal |
165
+ | 10 | Take-home messages | 1 | Map back to learning objectives |
166
+ | 11 | Pre-reading for next lecture | 1 | Specific paper / textbook chapter |
167
+ | 12 | References + further reading | 1 | Curated list, not exhaustive |
168
+
169
+ ### Design seed
170
+ - **Color**: Course palette consistent across all lectures in series.
171
+ - **Typography**: Title 28 pt / body 20 pt. Build-up animations acceptable for stepwise
172
+ concept introduction.
173
+ - **Figures**: Mix of textbook diagrams, original imaging, SMART Servier icons. Reusable
174
+ asset library across lecture series (per `pptx-mac-compatibility` rule — single asset
175
+ source).
176
+ - **Recap pattern**: At each section end, a 1-slide recap before moving on. Helps
177
+ trainees with weaker prior knowledge.
178
+ - **Self-assessment**: Use audience-response polling if classroom supports it; otherwise
179
+ show MCQ → pause → reveal answer + explanation slide.
180
+
181
+ ### Pre-presentation checklist
182
+ - [ ] Lecture position in curriculum confirmed (not duplicating prior lecture content).
183
+ - [ ] Self-assessment questions mapped to learning objectives.
184
+ - [ ] Pre-reading assignment matches the lecture's prerequisites.
185
+ - [ ] Course-level branding consistent (logo, color, font).
186
+
187
+ ---
188
+
189
+ ## 5. Academic lecture — multi-paper survey (graduate course)
190
+
191
+ **Audience**: Graduate students from mixed disciplines (basic science, clinical,
192
+ imaging, AI). Cross-disciplinary background; a single specialty's jargon will not
193
+ land for everyone.
194
+ **Time**: 30–45 min present + 5–10 min Q&A.
195
+ **Tone**: Narrative arc across multiple papers; one *lighthouse* paper per section
196
+ anchors the discussion, surrounding papers add nuance.
197
+ **Slide count**: ~35–50 (1 slide / 45–75 s, with section dividers + transitions).
198
+
199
+ ### Section structure — 4-act narrative
200
+
201
+ | # | Section | Slides | Purpose |
202
+ |---|---|---|---|
203
+ | 1 | Title slide | 1 | Course position, instructor, date, presenter, affiliation |
204
+ | 2 | Outline (TOC) | 1 | 4 sections with time budgets visible |
205
+ | 3 | Glossary (optional) | 1 | Tier 1: disease/concept · Tier 2: method/stats abbreviations |
206
+ | 4 | Section 1 divider | 1 | "History" / "Background" — full-bleed deep navy |
207
+ | 5 | Section 1 content | 4–6 | Founding papers, original observations, classical concepts |
208
+ | 6 | Transition slide | 1 | Large coral quotes + one-sentence question motivating next act |
209
+ | 7 | Section 2 divider | 1 | "Concept" / "Classification" |
210
+ | 8 | Section 2 content | 5–8 | Modern framework, definitions, what we now know |
211
+ | 9 | Transition slide | 1 | Bridge to mechanism |
212
+ | 10 | Section 3 divider | 1 | "Mechanism" — typically the longest, anchored by 1–2 lighthouse papers |
213
+ | 11 | Section 3 content | 10–14 | Lighthouse paper figures, mechanistic details, 2024–2026 updates |
214
+ | 12 | Transition slide | 1 | Bridge to clinical translation |
215
+ | 13 | Section 4 divider | 1 | "Clinical translation" |
216
+ | 14 | Section 4 content | 6–10 | Diagnostic application, therapy, ongoing trials |
217
+ | 15 | Wrap-up / Take-home | 1–2 | 3 bullets max, mirrored to outline |
218
+ | 16 | Acknowledgments / Q&A | 1 | Funding, mentor thanks, contact |
219
+
220
+ ### Design seed
221
+
222
+ - **Visual style**: Nature/Lancet — see `slide_visual_styles/nature_lancet.md`
223
+ - **Body language**: English only (per `~/.claude/rules/academic-lecture-style.md` §1)
224
+ - **Speaker notes**: narrative, in the user's preferred language (English by default; a Korean narrative register is supported for Korean presenters), 150–300 chars / slide
225
+ - **Section dividers**: full-bleed `#121D36` background + coral accent strip + `{N} MIN`
226
+ badge bottom-right
227
+ - **Transition slides**: large coral curly quotes (72pt) flanking a 36pt white question
228
+ - **Lighthouse paper anchor**: each section names one anchor paper in the divider
229
+ subtitle; section content slides reference it in eyebrow text
230
+
231
+ ### Pre-presentation checklist
232
+
233
+ - [ ] All `--` em-dashes verified rendering correctly on Mac PowerPoint
234
+ - [ ] TIFF images converted to PNG (per `pptx-mac-compatibility.md` §1)
235
+ - [ ] `<a:sp3d>` 3D bevel = 0 (per `pptx-mac-compatibility.md`)
236
+ - [ ] `app.xml` Slides/Notes counts patched (per `pptx-mac-compatibility.md` §5)
237
+ - [ ] Speaker notes parsed for `**bold**` / `*italic*` markdown (per §4)
238
+ - [ ] 40-min timing rehearsal completed (longest section flagged)
239
+ - [ ] Glossary slide present if audience is multidisciplinary
240
+ - [ ] Each section has ≥1 lighthouse paper figure (not text-only)
241
+ - [ ] PDF export visually verified (figure positions, font fallback)
242
+ - [ ] Mac PowerPoint actual-rendering check (PDF alone misses some defects)
243
+
244
+ ### Reference implementation
245
+
246
+ - Build script: `templates/build_pptx_nature_lancet.py` (this skill) — `add_title_slide`,
247
+ `add_toc_slide`, `add_glossary_slide`, `add_section_divider`, `add_transition_slide`,
248
+ `add_content_slide`, `add_closing_slide` + `fix_app_xml` helper
249
+ - Style spec: `slide_visual_styles/nature_lancet.md`
250
+ - Example deck: 47-slide academic lecture (4-section narrative across 17 lighthouse papers
251
+ + supporting references), Mac PowerPoint verified
252
+
253
+ ---
254
+
255
+ ## Mapping to SKILL.md phases
256
+
257
+ | Template element | SKILL.md phase | Notes |
258
+ |---|---|---|
259
+ | Audience definition | Phase 0 | Required input — controls template choice |
260
+ | Time slot | Phase 0 | Determines slide count target |
261
+ | Section structure | Phase 0 → outline | Use template as starting outline; customize |
262
+ | Speaker script density | Phase 2 | 130–150 wpm for academic talks |
263
+ | Slide design tokens | Phase 3 | See `slide_design_principles.md` §4 |
264
+ | Q&A backup slides | Phase 4 | Per template's anticipated-question profile |
265
+ | Pre-presentation checklist | Phase 4 | Run before final delivery |
266
+
267
+ ## Cross-references
268
+ - `slide_design_principles.md` — design foundations (Reynolds, Duarte, Knaflic, Tufte)
269
+ - `slide_visual_styles/nature_lancet.md` — Nature/Lancet color/typography/layout spec
270
+ - `templates/build_pptx_nature_lancet.py` — generic builder for Template #5
271
+ - `critic_rubrics/slide.md` — per-slide quality scoring
272
+ - `workflow-checklist.md` — end-to-end Phase 0 → 4 production checklist
273
+ - `~/.claude/rules/academic-lecture-style.md` — English body + Korean notes + Nature/Lancet (global default)
274
+ - `~/.claude/rules/pptx-mac-compatibility.md` — TIFF / sp3d / app.xml / srcRect / Inches EMU / markdown notes
275
+ - `~/.claude/rules/multidisciplinary-presentation.md` — glossary slide + intuition box pattern
276
+ - `~/.claude/rules/journal-ai-image-policies.md` — AI-image policy (visual abstract /
277
+ Central Illustration cases)
@@ -0,0 +1,202 @@
1
+ # Effective Slide Design for Medical Presentations
2
+
3
+ > **Primary sources** (cite when invoking specific principles):
4
+ > - Reynolds G., *Presentation Zen: Simple Ideas on Presentation Design and Delivery*, 3rd ed.
5
+ > New Riders, 2019. — Simplicity / Clarity / Restraint / Harmony.
6
+ > - Duarte N., *Slide:ology: The Art and Science of Creating Great Presentations*. O'Reilly, 2008.
7
+ > — Glance Test™ (3-second rule); slides as "glance media."
8
+ > - Knaflic CN., *Storytelling with Data: A Data Visualization Guide for Business Professionals*.
9
+ > Wiley, 2015. — Preattentive attributes (size, color, position).
10
+ > - Tufte ER., *The Cognitive Style of PowerPoint: Pitching Out Corrupts Within*, 2nd ed.
11
+ > Graphics Press, 2006. — Chartjunk; data-ink ratio; bullet-point critique.
12
+ >
13
+ > **Medical-presentation specific**:
14
+ > - Bhargava R, et al. "Winning at the Radiology Podium: First-timer's Guide to Crafting and
15
+ > Delivering a Memorable Conference Presentation." *RadioGraphics* 2025; DOI 10.1148/rg.250003.
16
+ > - RSNA Refresher Course Committee guidelines (case-based, audience-response interactive format).
17
+ >
18
+ > **Triggered from**: SKILL.md Phase 0 (Outline) and Phase 3 (Slides). Read this file **before**
19
+ > sketching the slide outline — it shifts focus from "what content fits" to "what should the
20
+ > audience remember 10 seconds after each slide."
21
+
22
+ Most slide-design guidance focuses on aesthetic templates (color, font, layout). This file
23
+ adds a communication-first layer: how the audience parses a slide under time pressure, what
24
+ they retain, and how the slide supports the speaker rather than replacing them.
25
+
26
+ ---
27
+
28
+ ## The 5 design principles (read in order)
29
+
30
+ ### 1. Identify the key message *(most important)*
31
+
32
+ Before opening PowerPoint or python-pptx, write **one sentence** describing what the slide
33
+ must convey. If you cannot, the slide is premature. Examples:
34
+
35
+ - "Adjuvant RFA reduces local recurrence vs. surgery alone (HR 0.62)."
36
+ - "FLAIR sequence highlights the lesion that T2 missed."
37
+ - "The proposed CAD model maintains AUC across three external sites."
38
+
39
+ Pin that sentence at the top of the slide outline (Phase 0 of SKILL.md). Every bullet,
40
+ figure, color, and animation exists to support that one sentence; anything that does not
41
+ should be removed or moved to a separate slide.
42
+
43
+ A slide with **two key messages is two slides**.
44
+
45
+ ### 2. Audience-aware reading-time budget
46
+
47
+ Different presentation contexts allow different inspection time per slide. Set the
48
+ **reading-time budget** in Phase 0, then design backwards.
49
+
50
+ | Context | Reading time | Implication |
51
+ |---|---|---|
52
+ | Journal club (peer trainees) | 30–60 s/slide narrated | Methodology detail acceptable; figures from paper allowed |
53
+ | Grand rounds (mixed audience) | 20–40 s/slide narrated | Plain-language framing; one teaching point per slide |
54
+ | Conference talk (RSNA / ECR) | 15–30 s/slide narrated | Direct labels mandatory; data visuals over text |
55
+ | Lecture / didactic (residents) | 60–120 s/slide narrated | Worked examples; build-ups acceptable; recap slides |
56
+ | Visual abstract (no narration) | 5–10 s total | One panel; minimal text; readable thumbnail |
57
+
58
+ The same paper presented at journal club and at RSNA needs **two different decks** — the
59
+ RSNA version usually drops half of what the journal-club version contains.
60
+
61
+ ### 3. The Glance Test (Duarte) — 3-second rule
62
+
63
+ After each slide is drafted, perform the Glance Test™:
64
+
65
+ > *Can the audience grasp the slide's meaning within 3 seconds, then return their attention
66
+ > to the speaker?*
67
+
68
+ If a slide fails the test, the audience is **reading the slide** instead of **listening to
69
+ the speaker**. People cannot read and listen simultaneously; one channel wins, and on slides
70
+ the reading channel wins. Slides are *glance media*, not reading documents.
71
+
72
+ Failure modes that break the Glance Test:
73
+ - ≥ 6 lines of body text (audience starts reading paragraph-style).
74
+ - Two competing visuals (eye does not know where to land).
75
+ - A title that does not state the conclusion (forces reading the body to find the point).
76
+
77
+ **Fix patterns**:
78
+ - Convert the slide title from a topic ("Methods") to a sentence-summary ("Inclusion required
79
+ ≥ 1 cm tumor on MRI").
80
+ - Split into 2 slides if the message is genuinely two-part.
81
+ - Replace bullets with one annotated figure.
82
+
83
+ ### 4. Reduce cognitive load (Reynolds + Tufte)
84
+
85
+ Working memory holds ~7 items, and a slide must compete with the speaker's voice. Design
86
+ under that ceiling.
87
+
88
+ | Element | Slide ceiling | Reason |
89
+ |---|---|---|
90
+ | Body text lines | ≤ 6 | Beyond 6, audience reads instead of listening |
91
+ | Distinct colors | ≤ 3 + 1 accent | More colors fragment attention |
92
+ | Fonts | ≤ 2 (title + body) | Mixed fonts break institutional brand and look unfinished |
93
+ | Bullet levels | ≤ 2 | Deep nesting (3 indents) signals reading-document |
94
+ | Chart types per slide | 1 | Two charts compete for attention |
95
+ | Animations | only purposeful | Decorative motion = noise |
96
+
97
+ Tufte's data-ink ratio applies: every pixel should encode either content or essential
98
+ context. 3-D bars, drop shadows, gradient fills, and rotated axis labels add ink without
99
+ data — remove them. The Columbia Space Shuttle disaster slide is the canonical
100
+ counterexample: the O-ring failure data was buried in small type on a crowded slide.
101
+
102
+ ### 5. Native objects, not images
103
+
104
+ Charts, tables, and diagrams must be **editable native PowerPoint objects**, not exported
105
+ images. This is non-negotiable in academic medicine because:
106
+
107
+ - Co-authors edit numbers in revision rounds.
108
+ - Mac PowerPoint renders TIFF/SVG inconsistently (see `pptx-mac-compatibility` rule).
109
+ - Reviewers / session chairs may project the deck on lower-resolution displays where
110
+ rasterized charts pixelate.
111
+
112
+ Specifically:
113
+ - Excel-linked charts → double-click opens the data table.
114
+ - Tables → native PowerPoint tables, not screenshots.
115
+ - Flow diagrams → grouped shapes, not a `make-figures` PNG export embedded as image.
116
+ - Single fonts (Pretendard / Apple SD Gothic Neo for Korean decks; Helvetica/Calibri for
117
+ English-only) — declared once at the deck level, not per-slide.
118
+
119
+ Allowed exceptions: photographs, anatomical illustrations (SMART Servier, NIAID BioArt),
120
+ medical imaging frames (CT/MRI slices) — all rasterized by nature.
121
+
122
+ ---
123
+
124
+ ## Preattentive attributes (Knaflic) — directing audience attention
125
+
126
+ Preattentive attributes are visual properties the brain processes automatically (in <250 ms,
127
+ before conscious attention). Use them to guide the audience to the part of the slide that
128
+ matters.
129
+
130
+ | Attribute | Use for | Example |
131
+ |---|---|---|
132
+ | **Size** | Hierarchy: title > subtitle > body | Take-home line at 32 pt; body at 18 pt |
133
+ | **Color saturation** | Highlight 1 element vs. background | Key result row in orange; comparators in gray |
134
+ | **Position** | Left-to-right reading order; top = priority | Conclusion at top of slide, not bottom |
135
+ | **Bold weight** | Emphasize the key number in a sentence | "AUC = **0.91** (95% CI 0.87–0.94)" |
136
+ | **Enclosure** | Group related elements | Box around the "key finding" panel |
137
+ | **Spatial separation** | Group vs. distinguish | Whitespace between Methods and Results panels |
138
+
139
+ **Two purposes**: (1) draw immediate attention to a key element; (2) build a visual
140
+ hierarchy that walks the eye through the content.
141
+
142
+ **Anti-pattern**: applying preattentive emphasis to *everything* — when 5 things are bold,
143
+ red, and boxed, none of them stand out.
144
+
145
+ ---
146
+
147
+ ## Slide-anti-patterns (cumulative — drawn from this skill's critic rubric)
148
+
149
+ These compose with the more granular checks in `critic_rubrics/slide.md`:
150
+
151
+ - **Topic-titled slide** — title says "Results" instead of stating the result. Fix: convert
152
+ to a sentence-headline ("RFA reduced local recurrence by 38%").
153
+ - **Wall-of-text** — > 6 body lines, full sentences. Fix: replace with one annotated figure
154
+ + the take-home sentence at top.
155
+ - **Bullet-cascade** — 3-level nested bullets. Fix: split into 2 slides or use a 2-column
156
+ layout.
157
+ - **Chart junk** — 3-D bar, gradient fill, rotated axis label, secondary y-axis with no
158
+ shared scale. Fix: 2-D, single y-axis, direct labels.
159
+ - **Image-of-table** — pasted screenshot of a table from the paper. Fix: rebuild as native
160
+ PowerPoint table; keep the paper-table image for backup slides only.
161
+ - **Reference-flood** — citation list slide listing 15 references at 8 pt. Fix: cite
162
+ inline at point-of-use (`[Smith 2024]`); full bibliography in handout/supplementary.
163
+ - **Logo-tax** — institutional logos on every slide masking content. Fix: title slide and
164
+ closing slide only; corner-only on intermediate slides if mandated.
165
+ - **AI-image without disclosure** — AI-generated illustration on a slide destined for a
166
+ journal that prohibits AI imagery. Fix: see `journal-ai-image-policies` rule before
167
+ building visual abstract / Central Illustration.
168
+
169
+ ---
170
+
171
+ ## Cognitive load checklist (Phase 3 quick scan)
172
+
173
+ Before exporting to PPTX, walk every slide:
174
+
175
+ - [ ] One-sentence key message stated at slide top (sentence-headline).
176
+ - [ ] Body text ≤ 6 lines.
177
+ - [ ] Glance test ≤ 3 seconds.
178
+ - [ ] Colors ≤ 3 + 1 accent; carry meaning, not decoration.
179
+ - [ ] Fonts ≤ 2 throughout deck; ≥ 18 pt body for slides; ≥ 24 pt for posters.
180
+ - [ ] Charts/tables are native objects (not images).
181
+ - [ ] No 3-D / drop-shadow / gradient unless data-driven.
182
+ - [ ] Direct labels on chart series; legends only when ≥ 4 series.
183
+ - [ ] Same slide works in grayscale (run a `convert -colorspace Gray` test).
184
+ - [ ] AI-image policy verified for target audience/journal context.
185
+
186
+ If two or more boxes are unchecked, return to Phase 0 outline before continuing.
187
+
188
+ ---
189
+
190
+ ## Cross-references
191
+
192
+ - `critic_rubrics/slide.md` — quantitative critic checks per slide
193
+ - `medical_presentation_templates.md` — section structure for journal club, grand rounds,
194
+ conference, lecture
195
+ - `workflow-checklist.md` — end-to-end Phase 0 → 4 production checklist
196
+ - `make-figures/references/design_principles.md` — figure-level design (this skill is the
197
+ slide-level companion; both share Reynolds/Knaflic/Tufte foundations)
198
+ - `~/.claude/rules/pptx-mac-compatibility.md` — TIFF, sp3d, app.xml, srcRect defects
199
+ - `~/.claude/rules/journal-ai-image-policies.md` — AI-image policy (JACC prohibits, Radiology
200
+ allows with disclosure)
201
+ - `~/.claude/rules/manuscript-style-classical.md` — heading style for slides paired with
202
+ manuscript submission
@@ -0,0 +1,168 @@
1
+ # Slide Visual Style — Nature / Lancet
2
+
3
+ Design spec for academic lecture, journal club, and conference-talk slides modeled
4
+ on the Nature / Lancet journal aesthetic. White background, navy primary, restrained
5
+ coral accent, hairline dividers, two-font sans-serif system.
6
+
7
+ > **Triggered from**: SKILL.md Phase 3 (Slides & Notes). Pair with
8
+ > `references/medical_presentation_templates.md` Template #5 "Academic lecture
9
+ > (multi-paper)". Reference build script: `templates/build_pptx_nature_lancet.py`.
10
+
11
+ ---
12
+
13
+ ## 1. Color palette
14
+
15
+ | Token | Hex | Usage |
16
+ |---|---|---|
17
+ | `NAVY` | `#1B2A4E` | Primary text on white, section title, headline |
18
+ | `NAVY_LIGHT` | `#3F5A8C` | Secondary navy (sub-headings, accents on dark bg) |
19
+ | `TEXT` | `#21252B` | Body text |
20
+ | `TEXT_SUB` | `#4A525C` | Sub-text, captions, subtitles |
21
+ | `MUTED` | `#8A929E` | Footer, page brand, low-emphasis labels |
22
+ | `HAIRLINE` | `#CCD0D6` | Thin dividers, image borders |
23
+ | `HIGHLIGHT` | `#B83E3A` | Coral accent — reserved for 1–2 emphasis points per slide |
24
+ | `WHITE` | `#FFFFFF` | Backgrounds, dark-bg text |
25
+ | `BG_SOFT` | `#F8F9FB` | Subtle panel background (optional) |
26
+ | `DIVIDER_BG` | `#121D36` | Section-divider slide background (deep navy) |
27
+
28
+ **Rule of restraint**: a content slide uses **white + navy + 1 coral accent**. Three
29
+ colors maximum. Avoid full-bleed bright bars, gradients, drop shadows beyond the
30
+ single 6pt offset on figure tiles.
31
+
32
+ ## 2. Typography
33
+
34
+ | Role | Font (Latin) | Font (EastAsia / Korean) | Size | Weight |
35
+ |---|---|---|---|---|
36
+ | Slide title | Inter | Pretendard | 28–32 pt | Bold |
37
+ | Subtitle / sentence-headline | Inter | Pretendard | 15–18 pt | Italic |
38
+ | Body bullet (main) | Inter | Pretendard | 18–20 pt | Regular |
39
+ | Body bullet (sub) | Inter | Pretendard | 15–16 pt | Regular |
40
+ | Eyebrow text | Inter | Pretendard | 10–14 pt | Bold, letter-spaced 300–400 |
41
+ | Section title (divider) | Inter | Pretendard | 48–52 pt | Bold |
42
+ | Transition quote | Inter | Pretendard | 36 pt | Bold |
43
+ | Page-brand footer | Inter | Pretendard | 9 pt | Regular, letter-spaced 300 |
44
+ | Speaker notes | Inter | Pretendard | 13 pt | Regular |
45
+
46
+ **Font install** (macOS):
47
+ ```bash
48
+ brew install --cask font-pretendard font-inter
49
+ ```
50
+
51
+ EastAsia attribute **must** be set on every run that may contain Korean text — Mac
52
+ PowerPoint falls back to Times New Roman otherwise. See
53
+ `~/.claude/rules/pptx-mac-compatibility.md` §6.
54
+
55
+ ## 3. Layout grid (16:9, 13.333" × 7.5")
56
+
57
+ | Region | Position | Content |
58
+ |---|---|---|
59
+ | Eyebrow | x=0.7", y=0.32", w=8", h=0.4" | All-caps topic label (10–14pt, coral or muted) |
60
+ | Title | x=0.7", y=0.75", w=12.0", h=1.1" | Slide title + optional subtitle |
61
+ | Hairline | x=0.7", y=2.05", w=0.6", h≈0.02" | Coral hairline (separator) |
62
+ | Body (no figure) | x=0.7", y=2.4", w=12.0", h=4.6" | Bullets full width |
63
+ | Body (with figure) | x=0.7", y=2.4", w=6.8", h=4.6" | Bullets left half |
64
+ | Figure (right half) | x=7.9", y=2.4", w=5.0", h=4.0" | Centered within tile |
65
+ | Figure caption | x=7.9", y=fig+0.10", w=5.0", h=0.6" | "Figure · {caption}" centered |
66
+ | Footer (page brand) | x=0.7", y=7.05", w=4.0", h=0.35" | "2026 · NEUROGENETICS" pattern |
67
+ | Footnote | x=0.7", y=7.05", w=12.0", h=0.35" | Right-aligned source ref |
68
+
69
+ **Margins**: 0.7" left/right, 0.32" top eyebrow, 0.35" bottom footer. Title-body
70
+ separation enforced by the **0.6" coral hairline** (never a 0.05"-tall bar).
71
+
72
+ ## 4. Slide type templates
73
+
74
+ ### 4a. Title slide
75
+ - Left navy bar (40k EMU wide × 3.5" tall) at x=0.7"
76
+ - "REVIEW LECTURE" eyebrow (14pt, coral, letter-spaced 300)
77
+ - 48pt navy bold title
78
+ - 18pt italic subtitle (TEXT_SUB)
79
+ - Bottom block: 16pt bold navy line ("Course · Professor · Date"), 13pt sub line
80
+ ("Presenter Name · Affiliation"), separated by 2" navy hairline above
81
+
82
+ ### 4b. Section divider
83
+ - Full-bleed deep navy background (`DIVIDER_BG`)
84
+ - 1.8"-tall coral accent strip at x=1.2", y=3.0", 15k EMU wide
85
+ - "SECTION {N}" 18pt coral eyebrow letter-spaced 400
86
+ - 52pt white bold section title
87
+ - 20pt italic light-navy (`#C0CBDC`) subtitle
88
+ - Bottom-right "{N} MIN" badge (13pt muted)
89
+
90
+ ### 4c. Transition slide
91
+ - Full-bleed deep navy background
92
+ - Large coral curly quotes (72pt) flanking a 36pt white bold single-sentence question
93
+ - Center-anchored vertically
94
+
95
+ ### 4d. Content slide
96
+ - Eyebrow (small caps topic label) → title + subtitle → coral hairline → bullets
97
+ (left if figure, full-width if no figure) → figure tile (shadow offset 0.06",
98
+ hairline border) → optional figure caption → footnote (right) + page brand (left)
99
+ - Bullet markers:
100
+ - Main: `▪` (14pt coral bold) + 20pt body text
101
+ - Sub (lines prefixed with 2 spaces): `—` (15pt muted) + 16pt sub text
102
+ - Inline `**bold**` and `*italic*` markdown is parsed into per-run styling (see
103
+ `pptx-mac-compatibility.md` §4 for the parser pattern)
104
+
105
+ ### 4e. TOC / outline slide
106
+ - Eyebrow "OUTLINE"
107
+ - Title "Outline" + sentence subtitle
108
+ - Coral hairline
109
+ - N rows, each: 22pt coral section number (or `·` for wrap-up), 22pt navy bold section
110
+ title, 13pt sub-text English summary, 12pt muted time badge (right-aligned). Hairline
111
+ divider between rows.
112
+
113
+ ### 4f. Glossary slide (optional, for multidisciplinary audiences)
114
+ - Tier 1 (top, 4–7 items): disease/concept abbreviations with one-line context
115
+ - Tier 2 (bottom, 2-column, 8–12): method/statistics abbreviations with short defs
116
+ - See `~/.claude/rules/multidisciplinary-presentation.md` §1
117
+
118
+ ### 4g. Closing slide
119
+ - Title "Take-home messages" or "Conclusions"
120
+ - 3 bullet maximum
121
+ - Optional contact / acknowledgments block at bottom
122
+
123
+ ## 5. Figure handling
124
+
125
+ - Aspect-ratio preserving fit inside the figure tile (5.0" × 4.0" max)
126
+ - Shadow rectangle (hairline gray) offset +0.06" / +0.06" before image
127
+ - Image border: hairline gray (~6000 EMU)
128
+ - Caption format: `Figure · {caption}` (coral "Figure" eyebrow, italic muted caption)
129
+
130
+ **EMU pitfall**: compute width/height in **inches** before wrapping in
131
+ `Inches()`. Never `Inches(fig_w / aspect_ratio)` when `fig_w` is already a pixel
132
+ value — see `pptx-mac-compatibility.md` §7.
133
+
134
+ ## 6. Speaker notes density
135
+
136
+ - Narrative speaker notes in the user's preferred language (a Korean narrative register is supported for Korean presenters, per `~/.claude/rules/academic-lecture-style.md` §1)
137
+ - About 150–300 characters per slide (30–60 seconds spoken)
138
+ - Run-level markdown parser for `**bold**` / `*italic*` (see
139
+ `pptx-mac-compatibility.md` §4)
140
+ - 13pt Pretendard
141
+
142
+ ## 7. Mac compatibility checklist (run before delivery)
143
+
144
+ | Check | Command |
145
+ |---|---|
146
+ | TIFF images | `find ppt/media -iname '*.tif*'` → must be empty |
147
+ | 3D bevel | `grep -l '<a:sp3d>' ppt/slides/*.xml` → must be empty |
148
+ | app.xml count sync | `unzip -p out.pptx docProps/app.xml \| grep -oE '<Slides>[0-9]+</Slides>'` → ≠ 0 |
149
+ | Raw markdown in notes | `unzip -p out.pptx ppt/notesSlides/notesSlide3.xml \| grep -oE '\*\*[^<*]+\*\*' \| wc -l` → 0 |
150
+ | Korean glyph in notes | `unzip -p out.pptx ppt/notesSlides/notesSlide3.xml \| grep -oE '[가-힣]+' \| head -5` → renders |
151
+
152
+ Always validate on **Mac PowerPoint** + PDF export. PDF alone misses some defects
153
+ (see `pptx-mac-compatibility.md` §1–§3).
154
+
155
+ ## 8. Reference implementation
156
+
157
+ Canonical build script: `templates/build_pptx_nature_lancet.py` (in this skill).
158
+
159
+ Example output: 47-slide academic lecture deck (4-section narrative across multiple
160
+ lighthouse papers + supporting references), Mac PowerPoint verified.
161
+
162
+ ## Cross-references
163
+
164
+ - `~/.claude/rules/academic-lecture-style.md` — global style rule (English body + Korean notes + this design)
165
+ - `~/.claude/rules/pptx-mac-compatibility.md` — Mac compatibility (TIFF / sp3d / app.xml / Inches EMU / markdown notes)
166
+ - `~/.claude/rules/multidisciplinary-presentation.md` — glossary slide + intuition box pattern
167
+ - `references/medical_presentation_templates.md` Template #5 — Academic lecture (multi-paper)
168
+ - `references/slide_design_principles.md` — Reynolds / Duarte / Knaflic / Tufte foundations