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.
- package/LICENSE +50 -0
- package/README.md +602 -0
- package/README_FIRST.md +27 -0
- package/bin/medsci-skills.js +159 -0
- package/installers/install-macos.command +19 -0
- package/installers/install-windows.cmd +26 -0
- package/installers/install-windows.ps1 +17 -0
- package/installers/install.py +218 -0
- package/metadata/skills_catalog.json +452 -0
- package/package.json +48 -0
- package/skills/academic-aio/SKILL.md +408 -0
- package/skills/academic-aio/references/case_studies/kjr_mllm_2025.md +82 -0
- package/skills/academic-aio/references/checklists/AIO_GENERAL.md +354 -0
- package/skills/academic-aio/references/journal_summarybox_templates.yaml +126 -0
- package/skills/academic-aio/references/oac_funding_checklist.yaml +129 -0
- package/skills/academic-aio/references/reporting_guideline_mapping.md +39 -0
- package/skills/academic-aio/references/schema_markup_templates/CodeRepository.jsonld +32 -0
- package/skills/academic-aio/references/schema_markup_templates/Dataset.jsonld +36 -0
- package/skills/academic-aio/references/schema_markup_templates/Person.jsonld +30 -0
- package/skills/academic-aio/references/schema_markup_templates/README.md +43 -0
- package/skills/academic-aio/references/schema_markup_templates/ScholarlyArticle.jsonld +55 -0
- package/skills/academic-aio/scripts/batch_metadata_audit.py +169 -0
- package/skills/academic-aio/scripts/validate_schema.py +118 -0
- package/skills/academic-aio/skill.yml +36 -0
- package/skills/academic-aio/templates/aio_audit_checklist.md.j2 +108 -0
- package/skills/add-journal/SKILL.md +482 -0
- package/skills/add-journal/skill.yml +33 -0
- package/skills/analyze-stats/SKILL.md +598 -0
- package/skills/analyze-stats/references/analysis_guides/missing_data.md +109 -0
- package/skills/analyze-stats/references/analysis_guides/nhis_icd10_mapping.md +247 -0
- package/skills/analyze-stats/references/analysis_guides/propensity_score.md +132 -0
- package/skills/analyze-stats/references/analysis_guides/regression.md +115 -0
- package/skills/analyze-stats/references/analysis_guides/repeated_measures.md +160 -0
- package/skills/analyze-stats/references/analysis_guides/survey_weighted.md +366 -0
- package/skills/analyze-stats/references/analysis_guides/test_selection.md +86 -0
- package/skills/analyze-stats/references/style/figure_style.mplstyle +69 -0
- package/skills/analyze-stats/references/style/theme_publication.R +147 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/ajr.yaml +51 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/european_radiology.yaml +55 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/jama.yaml +66 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/lancet.yaml +57 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/nejm.yaml +51 -0
- package/skills/analyze-stats/references/table-standards/journal-profiles/radiology.yaml +66 -0
- package/skills/analyze-stats/references/table-standards/table-standards.md +287 -0
- package/skills/analyze-stats/references/table-standards/table-types/diagnostic_accuracy.md +36 -0
- package/skills/analyze-stats/references/table-standards/table-types/meta_analysis.md +58 -0
- package/skills/analyze-stats/references/table-standards/table-types/model_comparison.md +36 -0
- package/skills/analyze-stats/references/table-standards/table-types/regression_results.md +50 -0
- package/skills/analyze-stats/references/table-standards/table-types/table1_demographics.md +51 -0
- package/skills/analyze-stats/references/table-standards/tool-comparison.md +79 -0
- package/skills/analyze-stats/references/templates/agreement_analysis.py +436 -0
- package/skills/analyze-stats/references/templates/dca_plot.R +237 -0
- package/skills/analyze-stats/references/templates/diagnostic_accuracy.py +401 -0
- package/skills/analyze-stats/references/templates/dta_meta_analysis.R +384 -0
- package/skills/analyze-stats/references/templates/forest_plot.py +412 -0
- package/skills/analyze-stats/references/templates/likert_summary.py +356 -0
- package/skills/analyze-stats/references/templates/meta_analysis.R +365 -0
- package/skills/analyze-stats/references/templates/propensity_score.py +478 -0
- package/skills/analyze-stats/references/templates/regression.py +425 -0
- package/skills/analyze-stats/references/templates/repeated_measures.py +434 -0
- package/skills/analyze-stats/references/templates/sample_size.R +382 -0
- package/skills/analyze-stats/references/templates/survey_weighted_analysis.py +411 -0
- package/skills/analyze-stats/references/templates/survival_analysis.py +325 -0
- package/skills/analyze-stats/references/templates/table1_demographics.py +287 -0
- package/skills/analyze-stats/scripts/check_generated_code.py +335 -0
- package/skills/analyze-stats/skill.yml +38 -0
- package/skills/analyze-stats/tests/fixtures/gen_bad.R +16 -0
- package/skills/analyze-stats/tests/fixtures/gen_bad.py +24 -0
- package/skills/analyze-stats/tests/fixtures/gen_clean.py +21 -0
- package/skills/analyze-stats/tests/test_generated_code.sh +59 -0
- package/skills/analyze-stats/tests/test_survival_template.sh +53 -0
- package/skills/author-strategy/SKILL.md +117 -0
- package/skills/author-strategy/analyze_patterns.py +303 -0
- package/skills/author-strategy/fetch_pubmed.py +374 -0
- package/skills/author-strategy/skill.yml +34 -0
- package/skills/batch-cohort/SKILL.md +223 -0
- package/skills/batch-cohort/references/base_template_knhanes.R +210 -0
- package/skills/batch-cohort/references/batch_template_generator.R +222 -0
- package/skills/batch-cohort/references/variable_coding_registry.md +136 -0
- package/skills/batch-cohort/skill.yml +35 -0
- package/skills/calc-sample-size/SKILL.md +491 -0
- package/skills/calc-sample-size/references/formulas.md +655 -0
- package/skills/calc-sample-size/references/observational_cohort.md +49 -0
- package/skills/calc-sample-size/skill.yml +51 -0
- package/skills/check-reporting/SKILL.md +534 -0
- package/skills/check-reporting/references/LICENSES.md +41 -0
- package/skills/check-reporting/references/checklists/AMSTAR2.md +54 -0
- package/skills/check-reporting/references/checklists/ARRIVE_2.md +234 -0
- package/skills/check-reporting/references/checklists/CARE.md +102 -0
- package/skills/check-reporting/references/checklists/CLAIM_2024.md +128 -0
- package/skills/check-reporting/references/checklists/CLEAR.md +113 -0
- package/skills/check-reporting/references/checklists/CONSORT.md +86 -0
- package/skills/check-reporting/references/checklists/COSMIN_RoB.md +136 -0
- package/skills/check-reporting/references/checklists/GRRAS.md +61 -0
- package/skills/check-reporting/references/checklists/MI_CLEAR_LLM.md +167 -0
- package/skills/check-reporting/references/checklists/MOOSE.md +85 -0
- package/skills/check-reporting/references/checklists/NOS.md +88 -0
- package/skills/check-reporting/references/checklists/PRISMA_2020.md +135 -0
- package/skills/check-reporting/references/checklists/PRISMA_DTA.md +36 -0
- package/skills/check-reporting/references/checklists/PRISMA_P.md +56 -0
- package/skills/check-reporting/references/checklists/PROBAST.md +75 -0
- package/skills/check-reporting/references/checklists/PROBAST_AI.md +130 -0
- package/skills/check-reporting/references/checklists/QUADAS2.md +77 -0
- package/skills/check-reporting/references/checklists/QUADAS_C.md +131 -0
- package/skills/check-reporting/references/checklists/ROBINS_E.md +179 -0
- package/skills/check-reporting/references/checklists/ROBINS_I.md +87 -0
- package/skills/check-reporting/references/checklists/ROBIS.md +114 -0
- package/skills/check-reporting/references/checklists/ROB_ME.md +126 -0
- package/skills/check-reporting/references/checklists/RoB2.md +79 -0
- package/skills/check-reporting/references/checklists/RoB_NMA.md +96 -0
- package/skills/check-reporting/references/checklists/SPIRIT.md +112 -0
- package/skills/check-reporting/references/checklists/SQUIRE_2.md +68 -0
- package/skills/check-reporting/references/checklists/STARD.md +129 -0
- package/skills/check-reporting/references/checklists/STARD_AI.md +211 -0
- package/skills/check-reporting/references/checklists/STROBE.md +80 -0
- package/skills/check-reporting/references/checklists/SWiM.md +33 -0
- package/skills/check-reporting/references/checklists/TRIPOD.md +157 -0
- package/skills/check-reporting/references/checklists/TRIPOD_AI.md +140 -0
- package/skills/check-reporting/references/step4c_registration_timing.md +93 -0
- package/skills/check-reporting/references/step4d_prisma_figure_audit.md +137 -0
- package/skills/check-reporting/scripts/check_checklist_exists.py +183 -0
- package/skills/check-reporting/scripts/check_checklist_version.py +168 -0
- package/skills/check-reporting/scripts/check_framework_naming.py +206 -0
- package/skills/check-reporting/scripts/check_prisma_figure.py +209 -0
- package/skills/check-reporting/scripts/prisma_cascade_check.py +274 -0
- package/skills/check-reporting/skill.yml +41 -0
- package/skills/check-reporting/tests/fixtures/framework_bad.md +8 -0
- package/skills/check-reporting/tests/fixtures/framework_clean.md +7 -0
- package/skills/check-reporting/tests/test_checklist_fail_fast.sh +77 -0
- package/skills/check-reporting/tests/test_checklist_version.sh +72 -0
- package/skills/check-reporting/tests/test_framework_naming.sh +45 -0
- package/skills/check-reporting/tests/test_prisma_cascade.sh +104 -0
- package/skills/clean-data/SKILL.md +180 -0
- package/skills/clean-data/references/cleaning_patterns.md +299 -0
- package/skills/clean-data/references/profiling_template.py +304 -0
- package/skills/clean-data/scripts/check_structural_zero.py +174 -0
- package/skills/clean-data/skill.yml +35 -0
- package/skills/clean-data/tests/fixtures/smoking.csv +8 -0
- package/skills/clean-data/tests/test_structural_zero.sh +49 -0
- package/skills/cross-national/SKILL.md +264 -0
- package/skills/cross-national/skill.yml +37 -0
- package/skills/define-variables/SKILL.md +146 -0
- package/skills/define-variables/references/common_definitions.md +190 -0
- package/skills/define-variables/skill.yml +34 -0
- package/skills/define-variables/templates/variable_operationalization.md +64 -0
- package/skills/deidentify/SKILL.md +203 -0
- package/skills/deidentify/deidentify.py +1224 -0
- package/skills/deidentify/locales/_template.json +45 -0
- package/skills/deidentify/locales/au.json +43 -0
- package/skills/deidentify/locales/ca.json +44 -0
- package/skills/deidentify/locales/cn.json +47 -0
- package/skills/deidentify/locales/de.json +48 -0
- package/skills/deidentify/locales/fr.json +48 -0
- package/skills/deidentify/locales/in.json +48 -0
- package/skills/deidentify/locales/jp.json +48 -0
- package/skills/deidentify/locales/kr.json +48 -0
- package/skills/deidentify/locales/uk.json +45 -0
- package/skills/deidentify/locales/us.json +43 -0
- package/skills/deidentify/references/date_shift_guide.md +82 -0
- package/skills/deidentify/references/hipaa_18_identifiers.md +48 -0
- package/skills/deidentify/references/korean_phi_patterns.md +135 -0
- package/skills/deidentify/skill.yml +43 -0
- package/skills/deidentify/tests/README.md +26 -0
- package/skills/deidentify/tests/test_clean.csv +16 -0
- package/skills/deidentify/tests/test_edge_cases.csv +11 -0
- package/skills/deidentify/tests/test_phi_korean.csv +11 -0
- package/skills/design-ai-benchmarking/SKILL.md +214 -0
- package/skills/design-ai-benchmarking/references/benchmark_export_schema.json +69 -0
- package/skills/design-ai-benchmarking/references/elicitation_rubric_template.md +37 -0
- package/skills/design-ai-benchmarking/skill.yml +38 -0
- package/skills/design-study/SKILL.md +298 -0
- package/skills/design-study/skill.yml +33 -0
- package/skills/fill-icmje-coi/SKILL.md +216 -0
- package/skills/fill-icmje-coi/scripts/fill_icmje_coi.py +140 -0
- package/skills/fill-icmje-coi/skill.yml +35 -0
- package/skills/fill-icmje-coi/templates/icmje_coi_seed_synthetic.docx +0 -0
- package/skills/fill-protocol/SKILL.md +248 -0
- package/skills/fill-protocol/examples/example_irb_template.yaml +53 -0
- package/skills/fill-protocol/references/best_practices.md +121 -0
- package/skills/fill-protocol/scripts/doc_to_docx.py +111 -0
- package/skills/fill-protocol/scripts/fill_form.py +611 -0
- package/skills/fill-protocol/scripts/inspect_template.py +61 -0
- package/skills/fill-protocol/setup.sh +162 -0
- package/skills/fill-protocol/skill.yml +37 -0
- package/skills/find-cohort-gap/SKILL.md +309 -0
- package/skills/find-cohort-gap/references/cohort_profile_template.md +93 -0
- package/skills/find-cohort-gap/references/onepager_template.md +84 -0
- package/skills/find-cohort-gap/references/pattern_scoring_rubric.md +169 -0
- package/skills/find-cohort-gap/references/saturation_query_templates.md +143 -0
- package/skills/find-cohort-gap/skill.yml +35 -0
- package/skills/find-journal/POLICY.md +87 -0
- package/skills/find-journal/SKILL.md +340 -0
- package/skills/find-journal/references/journal_profiles/AJNR.md +29 -0
- package/skills/find-journal/references/journal_profiles/AJR.md +30 -0
- package/skills/find-journal/references/journal_profiles/Abdominal_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Academic_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Annals_of_Internal_Medicine.md +33 -0
- package/skills/find-journal/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +28 -0
- package/skills/find-journal/references/journal_profiles/BMC_Medicine.md +31 -0
- package/skills/find-journal/references/journal_profiles/British_Journal_of_Radiology.md +39 -0
- package/skills/find-journal/references/journal_profiles/CVIR.md +30 -0
- package/skills/find-journal/references/journal_profiles/Chest.md +39 -0
- package/skills/find-journal/references/journal_profiles/Clinical_Radiology.md +30 -0
- package/skills/find-journal/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +32 -0
- package/skills/find-journal/references/journal_profiles/Diabetes_Metabolism_Journal.md +36 -0
- package/skills/find-journal/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +32 -0
- package/skills/find-journal/references/journal_profiles/Endocrinology_and_Metabolism.md +37 -0
- package/skills/find-journal/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +39 -0
- package/skills/find-journal/references/journal_profiles/European_Radiology.md +29 -0
- package/skills/find-journal/references/journal_profiles/Hepatology_Communications.md +40 -0
- package/skills/find-journal/references/journal_profiles/Hepatology_International.md +37 -0
- package/skills/find-journal/references/journal_profiles/IEEE_JBHI.md +28 -0
- package/skills/find-journal/references/journal_profiles/IEEE_TMI.md +28 -0
- package/skills/find-journal/references/journal_profiles/INSI.md +29 -0
- package/skills/find-journal/references/journal_profiles/Investigative_Radiology.md +25 -0
- package/skills/find-journal/references/journal_profiles/JACC_Advances.md +41 -0
- package/skills/find-journal/references/journal_profiles/JACC_Asia.md +30 -0
- package/skills/find-journal/references/journal_profiles/JACR.md +28 -0
- package/skills/find-journal/references/journal_profiles/JAMA.md +40 -0
- package/skills/find-journal/references/journal_profiles/JAMA_Network_Open.md +30 -0
- package/skills/find-journal/references/journal_profiles/JCSM.md +39 -0
- package/skills/find-journal/references/journal_profiles/JKMS.md +32 -0
- package/skills/find-journal/references/journal_profiles/JMIR.md +29 -0
- package/skills/find-journal/references/journal_profiles/JMIR_Medical_Education.md +29 -0
- package/skills/find-journal/references/journal_profiles/JNIS.md +35 -0
- package/skills/find-journal/references/journal_profiles/JVIR.md +31 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Biomedical_Informatics.md +29 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +40 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Magnetic_Resonance_Imaging.md +30 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Nuclear_Medicine.md +31 -0
- package/skills/find-journal/references/journal_profiles/Journal_of_Stroke.md +32 -0
- package/skills/find-journal/references/journal_profiles/KJR.md +38 -0
- package/skills/find-journal/references/journal_profiles/Korean_Circulation_Journal.md +38 -0
- package/skills/find-journal/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +36 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Diabetes_and_Endocrinology.md +40 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +49 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Infectious_Diseases.md +38 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Neurology.md +39 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Oncology.md +40 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Psychiatry.md +38 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Public_Health.md +30 -0
- package/skills/find-journal/references/journal_profiles/Lancet_Respiratory_Medicine.md +39 -0
- package/skills/find-journal/references/journal_profiles/Liver_International.md +33 -0
- package/skills/find-journal/references/journal_profiles/Medical_Image_Analysis.md +28 -0
- package/skills/find-journal/references/journal_profiles/NEJM.md +33 -0
- package/skills/find-journal/references/journal_profiles/Nature_Machine_Intelligence.md +31 -0
- package/skills/find-journal/references/journal_profiles/Nature_Medicine.md +39 -0
- package/skills/find-journal/references/journal_profiles/Neuroradiology.md +31 -0
- package/skills/find-journal/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +39 -0
- package/skills/find-journal/references/journal_profiles/PLOS_Medicine.md +32 -0
- package/skills/find-journal/references/journal_profiles/RYAI.md +28 -0
- package/skills/find-journal/references/journal_profiles/Radiology.md +29 -0
- package/skills/find-journal/references/journal_profiles/Skeletal_Radiology.md +31 -0
- package/skills/find-journal/references/journal_profiles/Stroke.md +37 -0
- package/skills/find-journal/references/journal_profiles/The_BMJ.md +31 -0
- package/skills/find-journal/references/journal_profiles/The_Lancet.md +31 -0
- package/skills/find-journal/references/journal_profiles/The_Lancet_Digital_Health.md +29 -0
- package/skills/find-journal/references/journal_profiles/World_Journal_of_Hepatology.md +53 -0
- package/skills/find-journal/references/journal_profiles/npj_Digital_Medicine.md +29 -0
- package/skills/find-journal/skill.yml +34 -0
- package/skills/fulltext-retrieval/SKILL.md +174 -0
- package/skills/fulltext-retrieval/fetch_oa.py +433 -0
- package/skills/fulltext-retrieval/pdf_to_md.py +160 -0
- package/skills/fulltext-retrieval/skill.yml +41 -0
- package/skills/generate-codebook/SKILL.md +155 -0
- package/skills/generate-codebook/references/codebook_schema.md +76 -0
- package/skills/generate-codebook/scripts/generate_codebook.py +278 -0
- package/skills/generate-codebook/skill.yml +35 -0
- package/skills/generate-codebook/tests/test_generate_codebook.sh +76 -0
- package/skills/grant-builder/SKILL.md +251 -0
- package/skills/grant-builder/skill.yml +34 -0
- package/skills/humanize/SKILL.md +251 -0
- package/skills/humanize/references/ai_patterns.md +571 -0
- package/skills/humanize/skill.yml +33 -0
- package/skills/intake-project/SKILL.md +264 -0
- package/skills/intake-project/skill.yml +34 -0
- package/skills/lit-sync/SKILL.md +448 -0
- package/skills/lit-sync/references/locale/ko/note_templates.md +110 -0
- package/skills/lit-sync/skill.yml +52 -0
- package/skills/lit-sync/tests/test_poll_logic.sh +92 -0
- package/skills/ma-scout/SKILL.md +640 -0
- package/skills/ma-scout/references/project_readme_template.md +95 -0
- package/skills/ma-scout/references/project_readme_template_ko.md +82 -0
- package/skills/ma-scout/skill.yml +33 -0
- package/skills/make-figures/SKILL.md +957 -0
- package/skills/make-figures/references/critic_rubrics/data_plot.md +166 -0
- package/skills/make-figures/references/critic_rubrics/flow_diagram.md +169 -0
- package/skills/make-figures/references/design_principles.md +181 -0
- package/skills/make-figures/references/exemplar_diagrams/README.md +65 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_input.yaml +37 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/consort/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/other/other_02_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_01_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_03_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_04_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_05_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_06_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_07_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_08_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_09_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.meta.yaml +4 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/pipeline/pipeline_10_why.md +13 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_input.yaml +47 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/prisma/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/README.md +15 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_input.yaml +40 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/stard/template_output_600.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_input.yaml +43 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_input_pptx.yaml +43 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pdf +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.png +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output.pptx +0 -0
- package/skills/make-figures/references/exemplar_diagrams/strobe/template_output_600.png +0 -0
- package/skills/make-figures/references/figure_specs.md +291 -0
- package/skills/make-figures/references/flow_diagram_lessons.md +164 -0
- package/skills/make-figures/references/jacc_central_illustration_principles.md +91 -0
- package/skills/make-figures/references/medical_illustration_sources.md +98 -0
- package/skills/make-figures/references/pipeline_concepts_medical_ai.md +240 -0
- package/skills/make-figures/references/reporting_guideline_figure_map.md +104 -0
- package/skills/make-figures/references/visual_abstract_templates/european_radiology.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/jacc_central_illustration.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/medsci_default.pptx +0 -0
- package/skills/make-figures/references/visual_abstract_templates/template_guide.md +114 -0
- package/skills/make-figures/scripts/build_jacc_template.py +77 -0
- package/skills/make-figures/scripts/build_prisma2020_template.py +371 -0
- package/skills/make-figures/scripts/build_strobe_template.py +351 -0
- package/skills/make-figures/scripts/critic_figure.py +264 -0
- package/skills/make-figures/scripts/derive_figure_legend_counts.py +138 -0
- package/skills/make-figures/scripts/extract_exemplar_from_pdf.py +186 -0
- package/skills/make-figures/scripts/fetch_official_templates.sh +88 -0
- package/skills/make-figures/scripts/fill_prisma_template.py +142 -0
- package/skills/make-figures/scripts/generate_flow_diagram.R +133 -0
- package/skills/make-figures/scripts/generate_image.py +99 -0
- package/skills/make-figures/scripts/generate_visual_abstract.py +438 -0
- package/skills/make-figures/scripts/validate_pptx_mac_compat.py +233 -0
- package/skills/make-figures/skill.yml +52 -0
- package/skills/make-figures/templates/official/NOTES.md +62 -0
- package/skills/make-figures/templates/official/consort2010/CONSORT_2025_editable_checklist.docx +0 -0
- package/skills/make-figures/templates/official/consort2010/CONSORT_2025_flow_diagram.docx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v1.pptx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_new_v2.pptx +0 -0
- package/skills/make-figures/templates/official/prisma2020/PRISMA_2020_flow_updated_v2.pptx +0 -0
- package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_editable_checklist.docx +0 -0
- package/skills/make-figures/templates/official/spirit2013/SPIRIT_2025_participant_timeline.docx +0 -0
- package/skills/make-figures/templates/official/stard2015/STARD_2015_checklist.docx +0 -0
- package/skills/make-figures/templates/official/stard2015/STARD_2015_flow_diagram.pdf +0 -0
- package/skills/make-figures/tests/fixtures/figure1_flow.yaml +8 -0
- package/skills/make-figures/tests/fixtures/manuscript_ok.md +9 -0
- package/skills/make-figures/tests/fixtures/manuscript_stale.md +4 -0
- package/skills/make-figures/tests/test_legend_reconcile.sh +36 -0
- package/skills/manage-project/SKILL.md +358 -0
- package/skills/manage-project/references/pre_submission_checklist.md +53 -0
- package/skills/manage-project/references/project_state_template.json +37 -0
- package/skills/manage-project/references/scaffold_templates.md +118 -0
- package/skills/manage-project/references/status_output_format.md +44 -0
- package/skills/manage-project/references/timeline_example.md +20 -0
- package/skills/manage-project/skill.yml +36 -0
- package/skills/manage-project/templates/SSOT.yaml.template +41 -0
- package/skills/manage-refs/LICENSE.zotero-mcp +21 -0
- package/skills/manage-refs/NOTICE.md +29 -0
- package/skills/manage-refs/SKILL.md +289 -0
- package/skills/manage-refs/citation_styles/README.md +40 -0
- package/skills/manage-refs/citation_styles/american-journal-of-roentgenology.csl +211 -0
- package/skills/manage-refs/citation_styles/cardiovascular-and-interventional-radiology.csl +19 -0
- package/skills/manage-refs/citation_styles/european-radiology.csl +19 -0
- package/skills/manage-refs/citation_styles/journal-of-cachexia-sarcopenia-and-muscle.csl +150 -0
- package/skills/manage-refs/citation_styles/journal-of-korean-medical-science-strict.csl +533 -0
- package/skills/manage-refs/citation_styles/journal-of-korean-medical-science.csl +16 -0
- package/skills/manage-refs/citation_styles/korean-journal-of-radiology.csl +155 -0
- package/skills/manage-refs/citation_styles/nature.csl +189 -0
- package/skills/manage-refs/citation_styles/nlm-citation-sequence.csl +535 -0
- package/skills/manage-refs/citation_styles/radiology.csl +228 -0
- package/skills/manage-refs/citation_styles/springer-basic-brackets.csl +187 -0
- package/skills/manage-refs/citation_styles/springer-vancouver-brackets.csl +276 -0
- package/skills/manage-refs/citation_styles/vancouver-superscript.csl +536 -0
- package/skills/manage-refs/citation_styles/vancouver.csl +535 -0
- package/skills/manage-refs/references/REFERENCE_STYLE_SPECS.md +59 -0
- package/skills/manage-refs/references/check_xref_symptoms.md +35 -0
- package/skills/manage-refs/scripts/_vendor_citation_writer.py +600 -0
- package/skills/manage-refs/scripts/check_citation_keys.py +112 -0
- package/skills/manage-refs/scripts/check_csl_render.py +102 -0
- package/skills/manage-refs/scripts/check_xref.py +633 -0
- package/skills/manage-refs/scripts/fill_journal_abbrev.py +104 -0
- package/skills/manage-refs/scripts/inject_zotero_cwyw.py +133 -0
- package/skills/manage-refs/scripts/md_marker_convert.py +193 -0
- package/skills/manage-refs/scripts/pre_submission_gate.sh +238 -0
- package/skills/manage-refs/scripts/render_pandoc.sh +88 -0
- package/skills/manage-refs/skill.yml +70 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/README.md +32 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/manuscript.md +10 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/refs.bib +34 -0
- package/skills/manage-refs/tests/fixtures/pre_submission_gate/run.sh +117 -0
- package/skills/manage-refs/tests/test_vN_docx_check.sh +145 -0
- package/skills/meta-analysis/SKILL.md +739 -0
- package/skills/meta-analysis/references/LICENSES.md +21 -0
- package/skills/meta-analysis/references/PROSPERO_template.md +221 -0
- package/skills/meta-analysis/references/ai_pre_screening_template.py +245 -0
- package/skills/meta-analysis/references/checklists/JBI_Case_Series.md +45 -0
- package/skills/meta-analysis/references/checklists/NOS.md +88 -0
- package/skills/meta-analysis/references/checklists/PRISMA_DTA.md +36 -0
- package/skills/meta-analysis/references/checklists/PROBAST.md +75 -0
- package/skills/meta-analysis/references/checklists/QUADAS2.md +77 -0
- package/skills/meta-analysis/references/checklists/ROBINS_I.md +87 -0
- package/skills/meta-analysis/references/checklists/RoB2.md +79 -0
- package/skills/meta-analysis/references/data_integrity_checklist.md +57 -0
- package/skills/meta-analysis/references/icmje_coi_guide.md +181 -0
- package/skills/meta-analysis/references/phase10_recovery.md +136 -0
- package/skills/meta-analysis/references/phase4_km_composite.md +58 -0
- package/skills/meta-analysis/references/phase6_statistical_synthesis.md +148 -0
- package/skills/meta-analysis/references/phase9_circulation.md +84 -0
- package/skills/meta-analysis/references/post_submission_release_ops.md +41 -0
- package/skills/meta-analysis/references/r_templates.md +132 -0
- package/skills/meta-analysis/references/review_orchestration.md +40 -0
- package/skills/meta-analysis/references/submission_package_drift.md +71 -0
- package/skills/meta-analysis/scripts/check_pool_consistency.py +201 -0
- package/skills/meta-analysis/scripts/cohort_overlap_check.py +242 -0
- package/skills/meta-analysis/scripts/dta_extraction_qc.py +137 -0
- package/skills/meta-analysis/scripts/screening_reconcile.py +160 -0
- package/skills/meta-analysis/skill.yml +47 -0
- package/skills/meta-analysis/templates/FINAL_POOL_LOCK.yaml.template +70 -0
- package/skills/meta-analysis/templates/extraction_form_v2.md +129 -0
- package/skills/meta-analysis/templates/supplementary_8file_checklist.md +94 -0
- package/skills/meta-analysis/tests/test_pool_consistency.sh +123 -0
- package/skills/orchestrate/SKILL.md +501 -0
- package/skills/orchestrate/references/dialogue_nodes.md +196 -0
- package/skills/orchestrate/references/report_template.md +109 -0
- package/skills/orchestrate/references/report_template_ko.md +88 -0
- package/skills/orchestrate/skill.yml +44 -0
- package/skills/peer-review/SKILL.md +381 -0
- package/skills/peer-review/references/aczel_2021_reviewer2_patterns.md +88 -0
- package/skills/peer-review/references/domain-probes/ai_overclaiming.md +47 -0
- package/skills/peer-review/references/domain-probes/narrative_review.md +44 -0
- package/skills/peer-review/references/domain-probes/observational_confounding.md +48 -0
- package/skills/peer-review/references/domain-probes/radiomics.md +38 -0
- package/skills/peer-review/references/domain-probes/sr_ma.md +87 -0
- package/skills/peer-review/references/domain-probes/survival_prognostic.md +68 -0
- package/skills/peer-review/references/exemplar_reviews/README.md +43 -0
- package/skills/peer-review/references/exemplar_reviews/ai_overclaiming.md +47 -0
- package/skills/peer-review/references/exemplar_reviews/calibration_missing.md +44 -0
- package/skills/peer-review/references/exemplar_reviews/data_leakage.md +48 -0
- package/skills/peer-review/references/exemplar_reviews/reference_standard_validity.md +45 -0
- package/skills/peer-review/references/narrative_review_audit.md +67 -0
- package/skills/peer-review/references/reviewer_calibration/README.md +34 -0
- package/skills/peer-review/references/reviewer_calibration/compliance_floor.md +52 -0
- package/skills/peer-review/references/reviewer_profiles/AJR.md +82 -0
- package/skills/peer-review/references/reviewer_profiles/EURE.md +64 -0
- package/skills/peer-review/references/reviewer_profiles/INSI.md +57 -0
- package/skills/peer-review/references/reviewer_profiles/KJR.md +100 -0
- package/skills/peer-review/references/reviewer_profiles/README.md +32 -0
- package/skills/peer-review/references/reviewer_profiles/RYAI.md +86 -0
- package/skills/peer-review/skill.yml +39 -0
- package/skills/present-paper/SKILL.md +675 -0
- package/skills/present-paper/references/critic_rubrics/slide.md +155 -0
- package/skills/present-paper/references/generate_pptx_templates.py +604 -0
- package/skills/present-paper/references/medical_presentation_templates.md +277 -0
- package/skills/present-paper/references/slide_design_principles.md +202 -0
- package/skills/present-paper/references/slide_visual_styles/nature_lancet.md +168 -0
- package/skills/present-paper/references/workflow-checklist.md +109 -0
- package/skills/present-paper/scripts/extract_pdf_figures.py +243 -0
- package/skills/present-paper/scripts/inject_pronunciation_notes.py +178 -0
- package/skills/present-paper/scripts/inject_speaker_notes.py +133 -0
- package/skills/present-paper/scripts/strip_notes_for_sharing.py +140 -0
- package/skills/present-paper/scripts/trim_caption.py +271 -0
- package/skills/present-paper/skill.yml +41 -0
- package/skills/present-paper/templates/build_pptx_nature_lancet.py +688 -0
- package/skills/publish-skill/SKILL.md +370 -0
- package/skills/publish-skill/references/license-compatibility-matrix.md +132 -0
- package/skills/publish-skill/references/pii-patterns.md +130 -0
- package/skills/publish-skill/scripts/audit_skill.sh +278 -0
- package/skills/publish-skill/skill.yml +35 -0
- package/skills/render-pdf-doc/SKILL.md +146 -0
- package/skills/render-pdf-doc/references/known_pitfalls.md +53 -0
- package/skills/render-pdf-doc/references/pandoc_korean_cheatsheet.md +77 -0
- package/skills/render-pdf-doc/scripts/check_deps.sh +42 -0
- package/skills/render-pdf-doc/scripts/infer_colwidths.py +164 -0
- package/skills/render-pdf-doc/scripts/render_pdf.sh +98 -0
- package/skills/render-pdf-doc/skill.yml +57 -0
- package/skills/render-pdf-doc/templates/anchor-doc.md +27 -0
- package/skills/render-pdf-doc/templates/anchor-doc_ko.md +25 -0
- package/skills/render-pdf-doc/templates/briefing-handout.md +33 -0
- package/skills/render-pdf-doc/templates/briefing-handout_ko.md +31 -0
- package/skills/render-pdf-doc/templates/proposal-cover.md +33 -0
- package/skills/render-pdf-doc/templates/proposal-cover_ko.md +31 -0
- package/skills/render-pdf-doc/templates/reference-table.md +22 -0
- package/skills/render-pdf-doc/templates/reference-table_ko.md +20 -0
- package/skills/replicate-study/SKILL.md +150 -0
- package/skills/replicate-study/references/harmonization_3country.csv +47 -0
- package/skills/replicate-study/references/harmonization_knhanes_nhanes.csv +68 -0
- package/skills/replicate-study/references/methodology_extraction_template.md +134 -0
- package/skills/replicate-study/skill.yml +37 -0
- package/skills/review-paper/SKILL.md +104 -0
- package/skills/review-paper/references/macro_skeleton.md +6 -0
- package/skills/review-paper/skill.yml +25 -0
- package/skills/revise/SKILL.md +515 -0
- package/skills/revise/references/r2r_voice.md +346 -0
- package/skills/revise/skill.yml +43 -0
- package/skills/search-lit/SKILL.md +443 -0
- package/skills/search-lit/references/parse_pubmed.py +326 -0
- package/skills/search-lit/references/pubmed_eutils.sh +111 -0
- package/skills/search-lit/skill.yml +46 -0
- package/skills/self-review/SKILL.md +1045 -0
- package/skills/self-review/references/domain-probes/ai_overclaiming.md +47 -0
- package/skills/self-review/references/domain-probes/narrative_review.md +44 -0
- package/skills/self-review/references/domain-probes/observational_confounding.md +48 -0
- package/skills/self-review/references/domain-probes/radiomics.md +38 -0
- package/skills/self-review/references/domain-probes/sr_ma.md +87 -0
- package/skills/self-review/references/domain-probes/survival_prognostic.md +68 -0
- package/skills/self-review/references/exemplar_findings/README.md +43 -0
- package/skills/self-review/references/exemplar_findings/cohort_arithmetic_mismatch.md +35 -0
- package/skills/self-review/references/exemplar_findings/estimand_drift_posthoc_primary.md +39 -0
- package/skills/self-review/references/exemplar_findings/scope_overreach_cross_sectional.md +35 -0
- package/skills/self-review/references/exemplar_findings/unadjusted_confounder.md +36 -0
- package/skills/self-review/references/panel_review_template.md +177 -0
- package/skills/self-review/scripts/check_artifact_coverage.py +301 -0
- package/skills/self-review/scripts/check_claim_artifact.py +248 -0
- package/skills/self-review/scripts/check_classical_style.py +185 -0
- package/skills/self-review/scripts/check_cohort_arithmetic.py +481 -0
- package/skills/self-review/scripts/check_confounding_completeness.py +287 -0
- package/skills/self-review/scripts/check_panel_diversity.py +336 -0
- package/skills/self-review/scripts/check_reference_adequacy.py +392 -0
- package/skills/self-review/scripts/check_reviewer_team_consistency.py +412 -0
- package/skills/self-review/scripts/check_scope_coherence.py +177 -0
- package/skills/self-review/skill.yml +47 -0
- package/skills/self-review/tests/fixtures/claim_manuscript.md +17 -0
- package/skills/self-review/tests/fixtures/claim_prereg.md +6 -0
- package/skills/self-review/tests/fixtures/cohort_bad.md +21 -0
- package/skills/self-review/tests/fixtures/cohort_clean.md +21 -0
- package/skills/self-review/tests/fixtures/cohort_partition.csv +5 -0
- package/skills/self-review/tests/fixtures/coverage_analysis/31_delong_nested_added_value.csv +3 -0
- package/skills/self-review/tests/fixtures/coverage_analysis/table1_demographics.csv +3 -0
- package/skills/self-review/tests/fixtures/coverage_clean.md +13 -0
- package/skills/self-review/tests/fixtures/coverage_manuscript.md +11 -0
- package/skills/self-review/tests/fixtures/panel_collapse.json +27 -0
- package/skills/self-review/tests/fixtures/panel_good.json +32 -0
- package/skills/self-review/tests/fixtures/panel_monoculture.json +32 -0
- package/skills/self-review/tests/fixtures/refadeq_letter.md +13 -0
- package/skills/self-review/tests/fixtures/refadeq_original_fixed.md +42 -0
- package/skills/self-review/tests/fixtures/refadeq_original_uncited.md +40 -0
- package/skills/self-review/tests/fixtures/scope_bad.md +9 -0
- package/skills/self-review/tests/fixtures/scope_clean.md +8 -0
- package/skills/self-review/tests/fixtures/scope_surrogate.md +8 -0
- package/skills/self-review/tests/fixtures/style_bad.md +13 -0
- package/skills/self-review/tests/fixtures/style_clean.md +11 -0
- package/skills/self-review/tests/fixtures/table1_by_exposure.csv +11 -0
- package/skills/self-review/tests/test_artifact_coverage.sh +44 -0
- package/skills/self-review/tests/test_claim_artifact.sh +50 -0
- package/skills/self-review/tests/test_classical_style.sh +44 -0
- package/skills/self-review/tests/test_cohort_arithmetic.sh +49 -0
- package/skills/self-review/tests/test_confounding_completeness.sh +66 -0
- package/skills/self-review/tests/test_panel_diversity.sh +55 -0
- package/skills/self-review/tests/test_panel_mode.sh +69 -0
- package/skills/self-review/tests/test_reference_adequacy.sh +68 -0
- package/skills/self-review/tests/test_reviewer_team_consistency.sh +138 -0
- package/skills/self-review/tests/test_scope_coherence.sh +46 -0
- package/skills/setup-medsci/SKILL.md +110 -0
- package/skills/setup-medsci/references/setup-checklist.md +51 -0
- package/skills/setup-medsci/skill.yml +30 -0
- package/skills/sync-submission/SKILL.md +382 -0
- package/skills/sync-submission/scripts/author_registry_example.yaml +36 -0
- package/skills/sync-submission/scripts/blind_sweep.py +203 -0
- package/skills/sync-submission/scripts/check_asset_anonymization.py +300 -0
- package/skills/sync-submission/scripts/check_cross_artifact_stale.py +211 -0
- package/skills/sync-submission/scripts/cover_letter_drift_check.py +451 -0
- package/skills/sync-submission/scripts/cross_document_n_check.py +486 -0
- package/skills/sync-submission/scripts/detect_copy_divergence.py +136 -0
- package/skills/sync-submission/scripts/preflight_gate.py +458 -0
- package/skills/sync-submission/scripts/scope_drift_check.py +362 -0
- package/skills/sync-submission/scripts/sync_submission.py +169 -0
- package/skills/sync-submission/skill.yml +43 -0
- package/skills/sync-submission/tests/fixtures/copy_ok.md +5 -0
- package/skills/sync-submission/tests/fixtures/copy_stale.md +5 -0
- package/skills/sync-submission/tests/fixtures/ssot.md +5 -0
- package/skills/sync-submission/tests/test_asset_anonymization.sh +99 -0
- package/skills/sync-submission/tests/test_copy_divergence.sh +44 -0
- package/skills/sync-submission/tests/test_cross_artifact_stale.sh +80 -0
- package/skills/sync-submission/tests/test_cross_document_n.sh +132 -0
- package/skills/sync-submission/tests/test_preflight_gate.sh +112 -0
- package/skills/sync-submission/tests/test_scope_drift.sh +122 -0
- package/skills/sync-submission/tests/test_vN_docx_assertion.sh +51 -0
- package/skills/verify-refs/SKILL.md +177 -0
- package/skills/verify-refs/references/manual_checkpoint_guide.md +100 -0
- package/skills/verify-refs/scripts/verify_cli.sh +62 -0
- package/skills/verify-refs/scripts/verify_refs.py +782 -0
- package/skills/verify-refs/skill.yml +44 -0
- package/skills/verify-refs/tests/fixtures/pagination_placeholder.bib +17 -0
- package/skills/verify-refs/tests/test_pagination_placeholder.sh +42 -0
- package/skills/version-dataset/SKILL.md +143 -0
- package/skills/version-dataset/references/manifest_schema.md +72 -0
- package/skills/version-dataset/scripts/version_dataset.py +242 -0
- package/skills/version-dataset/skill.yml +35 -0
- package/skills/version-dataset/tests/test_version_dataset.sh +52 -0
- package/skills/write-paper/SKILL.md +1148 -0
- package/skills/write-paper/references/exemplar_methods/README.md +38 -0
- package/skills/write-paper/references/exemplar_methods/ai_validation_tripod_claim.md +47 -0
- package/skills/write-paper/references/exemplar_methods/diagnostic_accuracy_stard.md +50 -0
- package/skills/write-paper/references/exemplar_methods/observational_cohort_strobe.md +43 -0
- package/skills/write-paper/references/journal_profiles/AJNR.md +185 -0
- package/skills/write-paper/references/journal_profiles/AJR.md +149 -0
- package/skills/write-paper/references/journal_profiles/Abdominal_Radiology.md +139 -0
- package/skills/write-paper/references/journal_profiles/Academic_Radiology.md +90 -0
- package/skills/write-paper/references/journal_profiles/Annals_of_Internal_Medicine.md +150 -0
- package/skills/write-paper/references/journal_profiles/Artificial_Intelligence_in_Medicine.md +82 -0
- package/skills/write-paper/references/journal_profiles/British_Journal_of_Radiology.md +161 -0
- package/skills/write-paper/references/journal_profiles/CVIR.md +157 -0
- package/skills/write-paper/references/journal_profiles/Chest.md +270 -0
- package/skills/write-paper/references/journal_profiles/Clinical_Radiology.md +160 -0
- package/skills/write-paper/references/journal_profiles/Clinical_and_Molecular_Hepatology.md +147 -0
- package/skills/write-paper/references/journal_profiles/Diabetes_Metabolism_Journal.md +163 -0
- package/skills/write-paper/references/journal_profiles/Diagnostic_and_Interventional_Radiology.md +216 -0
- package/skills/write-paper/references/journal_profiles/Endocrinology_and_Metabolism.md +167 -0
- package/skills/write-paper/references/journal_profiles/European_Journal_of_Preventive_Cardiology.md +192 -0
- package/skills/write-paper/references/journal_profiles/European_Radiology.md +159 -0
- package/skills/write-paper/references/journal_profiles/Hepatology_Communications.md +110 -0
- package/skills/write-paper/references/journal_profiles/Hepatology_International.md +106 -0
- package/skills/write-paper/references/journal_profiles/IEEE_TMI.md +180 -0
- package/skills/write-paper/references/journal_profiles/INSI.md +163 -0
- package/skills/write-paper/references/journal_profiles/Investigative_Radiology.md +86 -0
- package/skills/write-paper/references/journal_profiles/JACC_Advances.md +197 -0
- package/skills/write-paper/references/journal_profiles/JACC_Asia.md +168 -0
- package/skills/write-paper/references/journal_profiles/JACR.md +87 -0
- package/skills/write-paper/references/journal_profiles/JAMA.md +188 -0
- package/skills/write-paper/references/journal_profiles/JAMA_Network_Open.md +170 -0
- package/skills/write-paper/references/journal_profiles/JCSM.md +266 -0
- package/skills/write-paper/references/journal_profiles/JKMS.md +201 -0
- package/skills/write-paper/references/journal_profiles/JMIR.md +88 -0
- package/skills/write-paper/references/journal_profiles/JMIR_Medical_Education.md +86 -0
- package/skills/write-paper/references/journal_profiles/JNIS.md +227 -0
- package/skills/write-paper/references/journal_profiles/JVIR.md +158 -0
- package/skills/write-paper/references/journal_profiles/Journal_of_Clinical_Endocrinology_and_Metabolism.md +191 -0
- package/skills/write-paper/references/journal_profiles/Journal_of_Stroke.md +176 -0
- package/skills/write-paper/references/journal_profiles/KJR.md +185 -0
- package/skills/write-paper/references/journal_profiles/Korean_Circulation_Journal.md +184 -0
- package/skills/write-paper/references/journal_profiles/Korean_Journal_of_Internal_Medicine.md +178 -0
- package/skills/write-paper/references/journal_profiles/Lancet_Gastroenterology_and_Hepatology.md +127 -0
- package/skills/write-paper/references/journal_profiles/Liver_International.md +165 -0
- package/skills/write-paper/references/journal_profiles/Medical_Image_Analysis.md +147 -0
- package/skills/write-paper/references/journal_profiles/NEJM.md +147 -0
- package/skills/write-paper/references/journal_profiles/Nature_Medicine.md +181 -0
- package/skills/write-paper/references/journal_profiles/Neuroradiology.md +151 -0
- package/skills/write-paper/references/journal_profiles/Nutrition_Metabolism_and_Cardiovascular_Diseases.md +184 -0
- package/skills/write-paper/references/journal_profiles/PLOS_Medicine.md +166 -0
- package/skills/write-paper/references/journal_profiles/RYAI.md +124 -0
- package/skills/write-paper/references/journal_profiles/Radiology.md +173 -0
- package/skills/write-paper/references/journal_profiles/Skeletal_Radiology.md +135 -0
- package/skills/write-paper/references/journal_profiles/Stroke.md +210 -0
- package/skills/write-paper/references/journal_profiles/The_BMJ.md +121 -0
- package/skills/write-paper/references/journal_profiles/The_Lancet.md +112 -0
- package/skills/write-paper/references/journal_profiles/The_Lancet_Digital_Health.md +104 -0
- package/skills/write-paper/references/journal_profiles/World_Journal_of_Hepatology.md +106 -0
- package/skills/write-paper/references/journal_profiles/npj_Digital_Medicine.md +93 -0
- package/skills/write-paper/references/paper_types/ai_validation.md +270 -0
- package/skills/write-paper/references/paper_types/animal_study.md +194 -0
- package/skills/write-paper/references/paper_types/case_report.md +237 -0
- package/skills/write-paper/references/paper_types/cross_national.md +328 -0
- package/skills/write-paper/references/paper_types/letter.md +127 -0
- package/skills/write-paper/references/paper_types/meta_analysis.md +181 -0
- package/skills/write-paper/references/paper_types/nhis_cohort.md +297 -0
- package/skills/write-paper/references/paper_types/original_article.md +221 -0
- package/skills/write-paper/references/paper_types/technical_note.md +131 -0
- package/skills/write-paper/references/section_guides/discussion.md +155 -0
- package/skills/write-paper/references/section_guides/introduction.md +108 -0
- package/skills/write-paper/references/section_guides/methods.md +144 -0
- package/skills/write-paper/references/section_guides/results.md +113 -0
- package/skills/write-paper/references/section_guides/step7_1_classical_qc.md +67 -0
- package/skills/write-paper/references/section_guides/step7_4a_audit_recovery.md +74 -0
- package/skills/write-paper/references/section_guides/title_abstract.md +123 -0
- package/skills/write-paper/references/section_templates/methods_statistical.md +147 -0
- package/skills/write-paper/scripts/check_placeholders.py +182 -0
- package/skills/write-paper/skill.yml +48 -0
- package/skills/write-paper/tests/test_placeholders.sh +107 -0
- package/skills/write-protocol/SKILL.md +243 -0
- package/skills/write-protocol/references/ethics_checklist.md +150 -0
- package/skills/write-protocol/references/protocol_template.md +304 -0
- package/skills/write-protocol/skill.yml +34 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Pipeline & Architecture Diagrams — Medical AI / Engineering
|
|
2
|
+
|
|
3
|
+
> **Triggered from**: SKILL.md Step 1 (Specify) when the figure is a
|
|
4
|
+
> pipeline / architecture / workflow for a medical AI or imaging
|
|
5
|
+
> engineering paper. Read alongside `design_principles.md` (key-message)
|
|
6
|
+
> and `flow_diagram_lessons.md` (production lessons).
|
|
7
|
+
|
|
8
|
+
This file covers the four most common diagram types in medical-imaging AI
|
|
9
|
+
and engineering manuscripts that the standard reporting-guideline flows
|
|
10
|
+
(PRISMA / CONSORT / STARD / STROBE) do not address: DICOM workflow,
|
|
11
|
+
annotation pipeline, federated-learning topology, and model architecture.
|
|
12
|
+
For each, this file gives the canonical layout, common pitfalls, and a
|
|
13
|
+
preferred tool.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. DICOM workflow diagram
|
|
18
|
+
|
|
19
|
+
**Use when**: the manuscript describes how DICOM images flow from scanner
|
|
20
|
+
→ PACS → research environment → preprocessing → model.
|
|
21
|
+
|
|
22
|
+
**Canonical layout** (left-to-right):
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
[Modality / scanner] → [PACS] → [Research VNA / mirror]
|
|
26
|
+
↓ ↓
|
|
27
|
+
acquisition de-identification
|
|
28
|
+
parameters + DICOM tag scrub
|
|
29
|
+
↓
|
|
30
|
+
[Preprocessed cohort store]
|
|
31
|
+
↓
|
|
32
|
+
[Train / tune / test split]
|
|
33
|
+
↓
|
|
34
|
+
[Model input]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Required annotations**:
|
|
38
|
+
|
|
39
|
+
- Modality (CT, MR, US, X-ray, OCT) and key acquisition parameters
|
|
40
|
+
(kVp / mAs for CT, sequence and TE/TR for MR).
|
|
41
|
+
- De-identification step explicitly named — DICOM tag list (e.g., remove
|
|
42
|
+
PatientName, PatientID, AccessionNumber, InstitutionName) or reference
|
|
43
|
+
to a published profile (DICOM PS3.15 Annex E "Basic Profile").
|
|
44
|
+
- Whether pixel-data redaction (burned-in PHI) was performed.
|
|
45
|
+
- Cohort filtering criteria with counts at each step (this is also a
|
|
46
|
+
STARD / TRIPOD requirement).
|
|
47
|
+
|
|
48
|
+
**Common pitfalls**:
|
|
49
|
+
|
|
50
|
+
- Drawing "PACS → model" with no de-identification box (privacy reviewers
|
|
51
|
+
reject).
|
|
52
|
+
- Counts only at the final analytic cohort, not at each filter step
|
|
53
|
+
(reproducibility reviewers reject).
|
|
54
|
+
- Using "DICOM" as a single block when the manuscript actually transforms
|
|
55
|
+
to NIfTI / NRRD partway through — show the conversion explicitly.
|
|
56
|
+
|
|
57
|
+
**Preferred tool**: D2 with `--layout elk` for left-to-right; or Graphviz
|
|
58
|
+
`rankdir=LR`. Avoid matplotlib `FancyBboxPatch` (manual coordinates break
|
|
59
|
+
when text changes).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 2. Annotation / labeling pipeline
|
|
64
|
+
|
|
65
|
+
**Use when**: the manuscript reports a labeled dataset built by human
|
|
66
|
+
annotators (segmentation, classification, bounding boxes).
|
|
67
|
+
|
|
68
|
+
**Canonical layout**:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
[Raw image cohort]
|
|
72
|
+
↓
|
|
73
|
+
[Annotation tool / platform] ← [Annotator pool: N readers, expertise]
|
|
74
|
+
↓
|
|
75
|
+
[Round 1 labels] → [QC / consensus] → [Adjudication: senior reader]
|
|
76
|
+
↓
|
|
77
|
+
[Final reference standard]
|
|
78
|
+
↓
|
|
79
|
+
[Inter-rater agreement: κ / Dice]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Required annotations**:
|
|
83
|
+
|
|
84
|
+
- Number and expertise level of annotators (e.g., "3 board-certified
|
|
85
|
+
radiologists, 5–18 years of post-board experience").
|
|
86
|
+
- Annotation tool (e.g., 3D Slicer, ITK-SNAP, MD.ai, RIL-Contour, custom).
|
|
87
|
+
- Consensus rule (majority vote / unanimous / senior arbitration).
|
|
88
|
+
- Inter-rater agreement metric and value reported separately.
|
|
89
|
+
- Whether annotators were blinded to model output / clinical history.
|
|
90
|
+
|
|
91
|
+
**Common pitfalls**:
|
|
92
|
+
|
|
93
|
+
- Drawing "labeled by experts" with no count / qualification (reviewers
|
|
94
|
+
ask for quantification).
|
|
95
|
+
- Omitting the QC arrow (looks like single-pass labeling, low quality).
|
|
96
|
+
- Conflating "reference standard" with "ground truth" — reference
|
|
97
|
+
standard is the imperfect human label; ground truth is what we wish
|
|
98
|
+
we had.
|
|
99
|
+
|
|
100
|
+
**Preferred tool**: D2; nodes shaped as rectangles for steps, dashed
|
|
101
|
+
border for human-in-the-loop steps to distinguish from automated.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 3. Federated-learning topology
|
|
106
|
+
|
|
107
|
+
**Use when**: the manuscript trains a model across multiple sites without
|
|
108
|
+
centralizing raw data.
|
|
109
|
+
|
|
110
|
+
**Canonical layout** (radial, central server in middle):
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
[Site A: cohort A_n, scanner type]
|
|
114
|
+
↑↓
|
|
115
|
+
(model weights only,
|
|
116
|
+
not images)
|
|
117
|
+
↑↓
|
|
118
|
+
[Central aggregator / parameter server]
|
|
119
|
+
↑↓
|
|
120
|
+
[Site B: cohort B_n] ←→ [Site C: cohort C_n] ←→ [Site D: cohort D_n]
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Required annotations**:
|
|
124
|
+
|
|
125
|
+
- Per-site cohort size, scanner / vendor, demographic summary.
|
|
126
|
+
- What is exchanged (gradients / weights / encrypted updates) — and
|
|
127
|
+
what is **not** (raw images, intermediate features).
|
|
128
|
+
- Aggregation algorithm (FedAvg / FedProx / FedBN / etc.).
|
|
129
|
+
- Number of communication rounds and local epochs per round.
|
|
130
|
+
- Privacy / security mechanism (differential privacy noise, secure
|
|
131
|
+
aggregation) if claimed.
|
|
132
|
+
|
|
133
|
+
**Common pitfalls**:
|
|
134
|
+
|
|
135
|
+
- Bidirectional arrows without labeling what flows each way.
|
|
136
|
+
- No site-level demographic table — federated claims fall flat without
|
|
137
|
+
evidence of distribution shift across sites.
|
|
138
|
+
- Labeling raw images crossing site boundaries — if that happens it is
|
|
139
|
+
not federated learning, it is centralized.
|
|
140
|
+
|
|
141
|
+
**Preferred tool**: D2 with explicit `near: center` for the aggregator
|
|
142
|
+
node, then sites at compass points. Or matplotlib polar layout for
|
|
143
|
+
manuscripts that want radial symmetry.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 4. Model architecture diagram
|
|
148
|
+
|
|
149
|
+
**Use when**: the manuscript proposes or modifies a neural-network
|
|
150
|
+
architecture and the message depends on the structural change.
|
|
151
|
+
|
|
152
|
+
**Canonical layout** (left-to-right block diagram):
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
[Input: 3D volume H×W×D, 1 channel]
|
|
156
|
+
↓
|
|
157
|
+
[Backbone: ResNet-50 / ViT-B / nnU-Net] (cite + checkpoint)
|
|
158
|
+
↓
|
|
159
|
+
[Neck / feature pyramid / skip connections]
|
|
160
|
+
↓
|
|
161
|
+
[Head: classification / segmentation / detection]
|
|
162
|
+
↓
|
|
163
|
+
[Output: class probability / mask / bounding boxes]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Required annotations**:
|
|
167
|
+
|
|
168
|
+
- Input shape (H × W × D × C) and modality.
|
|
169
|
+
- Backbone family + variant + initialization (random / ImageNet /
|
|
170
|
+
domain-pretrained — cite the pretraining work).
|
|
171
|
+
- Output shape and post-processing (softmax / argmax / non-max
|
|
172
|
+
suppression).
|
|
173
|
+
- Loss function (cross-entropy / Dice / focal / compound).
|
|
174
|
+
- Trainable parameter count.
|
|
175
|
+
|
|
176
|
+
**Style conventions** (medical-AI / engineering):
|
|
177
|
+
|
|
178
|
+
- Convolutional / linear blocks: rectangles with channel count below.
|
|
179
|
+
- Feature maps: trapezoids that shrink/grow to convey resolution change
|
|
180
|
+
(optional but well-recognized).
|
|
181
|
+
- Skip connections: dashed arrows.
|
|
182
|
+
- Attention or transformer blocks: rectangles with internal split into
|
|
183
|
+
Q / K / V annotation only when the message depends on attention.
|
|
184
|
+
|
|
185
|
+
**Common pitfalls**:
|
|
186
|
+
|
|
187
|
+
- "We used ResNet-50" with no diagram — fine for a methods paper, not
|
|
188
|
+
for an architecture-contribution paper.
|
|
189
|
+
- 3-D rendered "Convolution" pictograms with no dimension info — looks
|
|
190
|
+
decorative, says nothing.
|
|
191
|
+
- Drawing every layer when only the modified blocks matter — the eye
|
|
192
|
+
cannot tell what changed. Show the modification, abstract the rest as
|
|
193
|
+
"ResNet-50 backbone (frozen)".
|
|
194
|
+
|
|
195
|
+
**Preferred tools**:
|
|
196
|
+
|
|
197
|
+
- **Diagrams.net (drawio)** — fastest for one-off architecture figures.
|
|
198
|
+
- **NN-SVG** (https://alexlenail.me/NN-SVG/) — generates clean SVG for
|
|
199
|
+
fully-connected, LeNet, AlexNet variants.
|
|
200
|
+
- **PlotNeuralNet** (LaTeX/TikZ) — used in the academic CV/ML community
|
|
201
|
+
for publication-quality 3-D block diagrams.
|
|
202
|
+
- D2 with `shape: hexagon` / `shape: cylinder` if the architecture is
|
|
203
|
+
unusual enough that custom blocks are needed.
|
|
204
|
+
|
|
205
|
+
For medical-AI papers targeting *Radiology AI*, *npj Digital Medicine*,
|
|
206
|
+
or *Nature Medicine*, prefer NN-SVG or PlotNeuralNet output over
|
|
207
|
+
hand-drawn blocks — reviewers in this venue are sensitive to alignment
|
|
208
|
+
quality.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## When to use which (quick selector)
|
|
213
|
+
|
|
214
|
+
| The figure is showing… | Use this section |
|
|
215
|
+
|---|---|
|
|
216
|
+
| How images move from scanner to model input | DICOM workflow |
|
|
217
|
+
| How a labeled dataset was built | Annotation pipeline |
|
|
218
|
+
| Multi-site training without raw-data sharing | Federated topology |
|
|
219
|
+
| The structure of the proposed neural network | Model architecture |
|
|
220
|
+
| Cohort filtering with counts at each stage | `flow_diagram_lessons.md` (PRISMA / STARD style) |
|
|
221
|
+
| Training / tuning / test data splits | dataset-flow (see `reporting_guideline_figure_map.md` §AI-specific) |
|
|
222
|
+
|
|
223
|
+
If the figure tries to do two of the above at once, split into two panels
|
|
224
|
+
or two figures — combining DICOM workflow + architecture in one panel
|
|
225
|
+
violates the cognitive-load budget (`design_principles.md` §4).
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Cross-references
|
|
230
|
+
|
|
231
|
+
- `design_principles.md` — communication-first checks
|
|
232
|
+
- `flow_diagram_lessons.md` — production lessons (template fidelity, PDF
|
|
233
|
+
export, version freeze)
|
|
234
|
+
- `reporting_guideline_figure_map.md` — which figures CLAIM / TRIPOD+AI
|
|
235
|
+
/ STARD-AI mandate
|
|
236
|
+
- `critic_rubrics/data_plot.md` — calibration / fairness / colorblind
|
|
237
|
+
checks
|
|
238
|
+
- `exemplar_diagrams/pipeline/pipeline_01.svg` … `pipeline_10.svg` —
|
|
239
|
+
worked exemplars (multimodal MLLM, contrastive learning, VQA, report
|
|
240
|
+
generation)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Reporting Guideline → Figure Requirements Map
|
|
2
|
+
|
|
3
|
+
> **Bridge**: this file connects `/make-figures` to `/check-reporting`
|
|
4
|
+
> (32 reporting guidelines). Each row tells you which figures the guideline
|
|
5
|
+
> **mandates** and how this skill currently supports them. Use during
|
|
6
|
+
> Step 1 (Specify) once the study type is known.
|
|
7
|
+
|
|
8
|
+
When `/check-reporting` flags missing figures for a target guideline, look
|
|
9
|
+
up the row here and either render the supported template or fall back to
|
|
10
|
+
the documented manual approach.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Mandatory-figure map
|
|
15
|
+
|
|
16
|
+
Legend for **Status** column:
|
|
17
|
+
- ✅ Official template + R/Python generator shipped with this skill
|
|
18
|
+
- ⚠️ Generic flow generator (`generate_flow_diagram.R`) covers the layout
|
|
19
|
+
but no official-template fidelity check
|
|
20
|
+
- ❌ No template; user produces with D2 / Graphviz / Inkscape from the
|
|
21
|
+
guideline document, then runs critic_rubric manually
|
|
22
|
+
|
|
23
|
+
| Guideline (year) | Study type | Mandatory figure(s) | Status | Source / where the official asset lives |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| **PRISMA 2020** | Systematic review | Flow diagram (4-phase: identification → screening → eligibility → included) | ✅ | `templates/official/prisma2020/`; R `PRISMA2020` package |
|
|
26
|
+
| **PRISMA-DTA** | DTA systematic review | Modified PRISMA flow + DTA-specific exclusion reasons | ⚠️ | Salameh et al., *BMJ* 2020 (PMID 32312813); use generic flow + extra columns |
|
|
27
|
+
| **PRISMA-NMA** | Network MA | PRISMA flow + network plot | ❌ | Hutton et al., *Ann Intern Med* 2015; network plot via R `netmeta::netgraph()` |
|
|
28
|
+
| **PRISMA-P** | Protocol of SR | (none mandated; PRISMA-S search strategy figure recommended) | ❌ | Rethlefsen et al., *Syst Rev* 2021 |
|
|
29
|
+
| **CONSORT 2025** | RCT | Participant-flow diagram (enrollment → allocation → follow-up → analysis) | ✅ | `templates/official/consort2010/` (now CONSORT 2025); R generator |
|
|
30
|
+
| **CONSORT-AI 2020** | AI intervention RCT | CONSORT flow extended with AI training/validation/deployment dataset boxes | ❌ | Liu et al., *Nat Med* 2020 (PMID 32908283), Fig. 1; D2 / Graphviz custom |
|
|
31
|
+
| **STARD 2015** | Diagnostic accuracy | Flow diagram (eligible → index test → reference standard → 2×2) + ROC | ✅ | `templates/official/stard2015/`; R generator |
|
|
32
|
+
| **STARD-AI 2025** | AI diagnostic accuracy | STARD flow + dataset-flow (training / tuning / test) + subgroup-overlaid ROC/PR | ❌ | Sounderajah et al., *Nat Med* 2025 (PMID 40954311); produce manually, see `flow_diagram_lessons.md` |
|
|
33
|
+
| **STROBE** | Observational cohort/case-control | (Flow diagram **recommended** but not strictly mandated) | ⚠️ | von Elm et al., *Ann Intern Med* 2007; use generic flow generator |
|
|
34
|
+
| **TRIPOD 2015** | Prediction model | Calibration plot (mandatory) + discrimination (ROC, c-stat with CI) | ✅ (data plots) | Collins et al., *Ann Intern Med* 2015 |
|
|
35
|
+
| **TRIPOD+AI 2024** | AI prediction model | TRIPOD figures + **fairness/subgroup panels** + **dataset-flow** + **decision-curve analysis** | ❌ (subgroup, DCA) | Collins et al., *BMJ* 2024 (PMID 38636956); produce manually |
|
|
36
|
+
| **CLAIM 2024** | Medical imaging AI | Architecture diagram (model card style) + dataset-flow + calibration + per-subgroup performance + saliency/attention | ❌ | Tejani et al., *Radiology: AI* 2024 (PMID 38809149); 44 items total |
|
|
37
|
+
| **DECIDE-AI 2022** | AI clinical eval (Stage 1–2) | Human-AI interaction diagram + safety-signal plot + override-rate over time | ❌ (uncertain — verify in full text) | Vasey et al., *Nat Med* 2022 (PMID 35585198) |
|
|
38
|
+
| **CHEERS 2022** | Economic evaluation | Cost-effectiveness plane + cost-effectiveness acceptability curve | ❌ | Husereau et al., *BMJ* 2022 |
|
|
39
|
+
| **SPIRIT 2025** | Trial protocol | Schedule-of-enrollment timeline (Figure 1 in published trials) | ✅ | `templates/official/spirit2013/` (updated to 2025); see also Robinson timeline figures |
|
|
40
|
+
| **CARE 2016** | Case report | Timeline of patient course (recommended) | ⚠️ | Riley et al., *J Clin Epidemiol* 2017; use generic flow generator |
|
|
41
|
+
| **SQUIRE 2.0** | Quality improvement | Run chart / SPC chart | ❌ | Ogrinc et al., *BMJ Qual Saf* 2016 |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## When the status is ⚠️ (generic flow only)
|
|
46
|
+
|
|
47
|
+
The R `generate_flow_diagram.R` script handles the layout, but the layout
|
|
48
|
+
will not match the canonical guideline document exactly. For circulation
|
|
49
|
+
to senior co-authors, that is usually acceptable; for reviewer-facing
|
|
50
|
+
journals where fidelity is checked (esp. in *BMJ*, *Lancet*, *Ann Intern
|
|
51
|
+
Med*, *JAMA*), prefer the official template route documented in
|
|
52
|
+
`flow_diagram_lessons.md` Lesson 1.
|
|
53
|
+
|
|
54
|
+
## When the status is ❌
|
|
55
|
+
|
|
56
|
+
For AI-extension guidelines (CONSORT-AI, STARD-AI, TRIPOD+AI, CLAIM 2024,
|
|
57
|
+
DECIDE-AI), there is no shipped official template **as of 2026-05**.
|
|
58
|
+
Production path:
|
|
59
|
+
|
|
60
|
+
1. Read the original article to extract the canonical figure layout.
|
|
61
|
+
2. Sketch in D2 (`flow.d2`) or Graphviz DOT, layout via ELK.
|
|
62
|
+
3. Render to PDF with the platform-appropriate exporter
|
|
63
|
+
(`flow_diagram_lessons.md` Lesson 2).
|
|
64
|
+
4. Apply the cognitive-load + key-message-visibility checks from
|
|
65
|
+
`critic_rubrics/flow_diagram.md` Section G.
|
|
66
|
+
5. Cross-check against the corresponding `/check-reporting` checklist
|
|
67
|
+
(item-by-item).
|
|
68
|
+
|
|
69
|
+
When 2 or more projects need the same custom guideline figure, propose
|
|
70
|
+
adding a new template under `templates/official/{guideline}/` so the
|
|
71
|
+
deterministic generator can support it.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## AI-specific figures most often missing (priority for new templates)
|
|
76
|
+
|
|
77
|
+
These are the figures that medical AI manuscripts most often omit, ranked
|
|
78
|
+
by how frequently a reviewer-facing checklist (CLAIM 2024 / TRIPOD+AI)
|
|
79
|
+
flags them:
|
|
80
|
+
|
|
81
|
+
1. **Dataset-flow diagram** — patient/image counts at each split
|
|
82
|
+
(training / tuning / internal test / external test). Required by
|
|
83
|
+
STARD-AI, CLAIM 2024, TRIPOD+AI.
|
|
84
|
+
2. **Calibration plot** — supported by `critic_rubrics/data_plot.md` §C.
|
|
85
|
+
3. **Fairness / subgroup panel** — performance by sex / race / device /
|
|
86
|
+
site. Required by TRIPOD+AI, CLAIM 2024.
|
|
87
|
+
4. **Decision-curve analysis** — net benefit vs threshold. Required by
|
|
88
|
+
TRIPOD+AI; recommended by CLAIM 2024.
|
|
89
|
+
5. **Architecture diagram** — input modality → preprocessing → backbone →
|
|
90
|
+
head → output. See `pipeline_concepts_medical_ai.md`.
|
|
91
|
+
6. **Saliency / attention overlay** — qualitative panels showing model
|
|
92
|
+
attention. Required by CLAIM 2024 §4.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Cross-references
|
|
97
|
+
|
|
98
|
+
- `/check-reporting` skill — supports all 32 guidelines, item-level audit
|
|
99
|
+
- `flow_diagram_lessons.md` — production lessons that apply across all flows
|
|
100
|
+
- `pipeline_concepts_medical_ai.md` — DICOM / annotation / federated /
|
|
101
|
+
architecture diagram conventions
|
|
102
|
+
- `design_principles.md` — communication-first design (Nat Hum Behav 2026)
|
|
103
|
+
- `critic_rubrics/flow_diagram.md` — extended checklist (Sections A–G)
|
|
104
|
+
- `critic_rubrics/data_plot.md` — calibration / fairness / colorblind checks
|
|
Binary file
|
package/skills/make-figures/references/visual_abstract_templates/jacc_central_illustration.pptx
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Visual Abstract Template Guide
|
|
2
|
+
|
|
3
|
+
How `generate_visual_abstract.py` maps content to PPTX template shapes.
|
|
4
|
+
|
|
5
|
+
## Matching Rules
|
|
6
|
+
|
|
7
|
+
The script iterates through all shapes on slide index 0 and matches by **text content**
|
|
8
|
+
(case-insensitive substring match). Each shape is filled exactly once.
|
|
9
|
+
|
|
10
|
+
| Content Field | Match Pattern (in shape.text) | CLI Flag |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| Article title | `ArticleTitle` | `--title` |
|
|
13
|
+
| Hypothesis / research question | `Hypothesis` or `Question` | `--hypothesis` |
|
|
14
|
+
| Methodology | `Methodology` or `flowchart` or `bullet` | `--methods` |
|
|
15
|
+
| Visual element (image) | `Visual element` or `Image` or `Illustration` | `--visual` |
|
|
16
|
+
| Main finding | `Main finding` or `relevance` | `--finding` |
|
|
17
|
+
| Citation | `Eur Radiol` or `DOI` or `Author` | `--citation` |
|
|
18
|
+
| Patient cohort badge | `Patient` or `cohort` | `--badges` (1st) |
|
|
19
|
+
| Modality badge | `Modality` or `organ` | `--badges` (2nd) |
|
|
20
|
+
| Center type badge | `Single` or `Multi-center` or `center` | `--badges` (3rd) |
|
|
21
|
+
|
|
22
|
+
## European Radiology Template
|
|
23
|
+
|
|
24
|
+
**Source:** EURA-GA-Jan2025.pptx (January 2025)
|
|
25
|
+
**File:** `european_radiology.pptx`
|
|
26
|
+
**Use slide:** Index 0 (slide 1 = blank template; slide 2 = filled example)
|
|
27
|
+
|
|
28
|
+
### Shape Map (Slide 1)
|
|
29
|
+
|
|
30
|
+
| Shape # | Name | Content Field | Position |
|
|
31
|
+
|---------|------|---------------|----------|
|
|
32
|
+
| 0 | Title 1 | Article title | Top, full width |
|
|
33
|
+
| 5 | Abgerundetes Rechteck 7 | Hypothesis/Question | Below title, full width |
|
|
34
|
+
| 3 | Abgerundetes Rechteck 7 | Methodology | Left panel, below hypothesis |
|
|
35
|
+
| 4 | Abgerundetes Rechteck 7 | Visual element (image) | Right panel, large area |
|
|
36
|
+
| 7 | Abgerundetes Rechteck 7 | Patient cohort badge | Left, below methodology |
|
|
37
|
+
| 8 | Abgerundetes Rechteck 7 | Modality / organ badge | Center-left, below methodology |
|
|
38
|
+
| 9 | Abgerundetes Rechteck 7 | Single / Multi-center badge | Center, below methodology |
|
|
39
|
+
| 6 | Abgerundetes Rechteck 7 | Main finding | Bottom area, full width |
|
|
40
|
+
| 2 | Abgerundetes Rechteck 2 | Citation line | Bottom bar |
|
|
41
|
+
| 1 | Content Placeholder 4 | (Logo area — leave empty or add journal logo) |
|
|
42
|
+
|
|
43
|
+
### Notes
|
|
44
|
+
|
|
45
|
+
- All shape names in the EUR template are generic German ("Abgerundetes Rechteck" = rounded
|
|
46
|
+
rectangle). The script identifies shapes by their **text content**, not by name.
|
|
47
|
+
- The Visual element shape (Shape 4) should have its text cleared and an image inserted.
|
|
48
|
+
The script places the image within the shape's bounding box, maintaining aspect ratio.
|
|
49
|
+
- Badge shapes (7, 8, 9) have small icon images in the EUR example slides — the script
|
|
50
|
+
replaces text only. Icons can be added manually in PowerPoint after generation.
|
|
51
|
+
|
|
52
|
+
## MedSci Default Template
|
|
53
|
+
|
|
54
|
+
**File:** `medsci_default.pptx`
|
|
55
|
+
**Use slide:** Index 0
|
|
56
|
+
|
|
57
|
+
A journal-neutral template following the same structure as European Radiology but without
|
|
58
|
+
journal-specific branding. Uses neutral colors (dark gray accent, white background).
|
|
59
|
+
|
|
60
|
+
### Shape Map
|
|
61
|
+
|
|
62
|
+
Same field mapping as EUR, with these differences:
|
|
63
|
+
- No journal logo placeholder
|
|
64
|
+
- Neutral accent color (#404040 dark gray)
|
|
65
|
+
- Slightly wider visual element area
|
|
66
|
+
|
|
67
|
+
## Adding a New Journal Template
|
|
68
|
+
|
|
69
|
+
1. Obtain the journal's official visual abstract template (PPTX or PPT format).
|
|
70
|
+
2. Copy to `visual_abstract_templates/{journal_name}.pptx`.
|
|
71
|
+
3. Ensure the template slide has placeholder text matching the patterns in the
|
|
72
|
+
Matching Rules table above. If not, either:
|
|
73
|
+
- Manually edit the template to add matching placeholder text, OR
|
|
74
|
+
- Add custom matching rules to `generate_visual_abstract.py`
|
|
75
|
+
4. Add a section to this guide documenting the shape map.
|
|
76
|
+
5. Update the journal profile in `write-paper/references/journal_profiles/` with
|
|
77
|
+
the visual abstract requirement status and template name.
|
|
78
|
+
|
|
79
|
+
## JACC Central Illustration Template
|
|
80
|
+
|
|
81
|
+
`jacc_central_illustration.pptx` — for JACC family journals (`--type central-illustration`).
|
|
82
|
+
|
|
83
|
+
Built reproducibly via `scripts/build_jacc_template.py` to match the official JACC submission PPTX layout (verified against doi:10.1016/j.jacc.2019.10.035 Figures 1–4).
|
|
84
|
+
|
|
85
|
+
### Layout (10 × 7.5 in slide)
|
|
86
|
+
|
|
87
|
+
| Slot | Type | Position (left, top) | Size (W × H) | Placeholder text | Filled by `--type central-illustration` |
|
|
88
|
+
|---|---|---|---|---|---|
|
|
89
|
+
| 1 | TEXT_BOX | (0.4, 5.3) | 9.4 × 0.5 in | `ARTICLECITATION` | `--citation` |
|
|
90
|
+
| 2 | RECTANGLE → image | (3.0, 0.8) | 4.0 × 4.2 in | `VISUALELEMENT` | `--visual` (PNG/TIFF, ≥600 DPI) |
|
|
91
|
+
| 3 | TEXT_BOX | (0.4, 7.0) | 4.1 × 0.5 in | `FOOTERNOTE` | optional, usually empty |
|
|
92
|
+
| 4 | RECTANGLE | (7.3, 6.7) | 2.7 × 0.8 in | `JACCLOGO` | leave for editorial |
|
|
93
|
+
|
|
94
|
+
### Why a separate template
|
|
95
|
+
|
|
96
|
+
The JACC editorial team applies the red outer border and the blue "CENTRAL ILLUSTRATION:" header bar after acceptance. Author submissions must contain only:
|
|
97
|
+
- The content figure (slot 2)
|
|
98
|
+
- The citation line (slot 1)
|
|
99
|
+
|
|
100
|
+
Pre-rendering JACC house elements (red border, blue header) is incorrect — JACC will replace them anyway, and pre-rendered versions clash with the family branding.
|
|
101
|
+
|
|
102
|
+
### Validation rules
|
|
103
|
+
|
|
104
|
+
The CI mode in `generate_visual_abstract.py` validates structural simplicity per Fuster-Mann 2019:
|
|
105
|
+
- ≤ 3 visual zones in the content figure (`--ci-zones`)
|
|
106
|
+
- ≤ 30 total label words (`--ci-label-words`)
|
|
107
|
+
- ≤ 4 numerical highlights (`--ci-numerical-points`)
|
|
108
|
+
- No methodology terms in `--ci-raw-text` (CI ≠ Visual Abstract)
|
|
109
|
+
|
|
110
|
+
Override with `--ci-allow {zones|words|numerical|methods}` only when justified.
|
|
111
|
+
|
|
112
|
+
### Future cardiology templates
|
|
113
|
+
|
|
114
|
+
For Circulation, EHJ, JAHA, or other journals with similar CI requirements, copy this template and rename. The Fuster-Mann 5 rules and CI mode validation apply unchanged; only the slide dimensions and citation footer pattern may need adjustment.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""Build the JACC Central Illustration PPTX template.
|
|
2
|
+
|
|
3
|
+
Layout matches official JACC submission templates (verified from
|
|
4
|
+
doi:10.1016/j.jacc.2019.10.035 Figures 1–4 PPTX files).
|
|
5
|
+
|
|
6
|
+
Run once. Output:
|
|
7
|
+
references/visual_abstract_templates/jacc_central_illustration.pptx
|
|
8
|
+
"""
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from pptx import Presentation
|
|
11
|
+
from pptx.util import Inches, Pt, Emu
|
|
12
|
+
from pptx.dml.color import RGBColor
|
|
13
|
+
from pptx.enum.shapes import MSO_SHAPE
|
|
14
|
+
|
|
15
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
16
|
+
OUT = ROOT / "references" / "visual_abstract_templates" / "jacc_central_illustration.pptx"
|
|
17
|
+
|
|
18
|
+
# JACC submission slide is 10 x 7.5 in (4:3 standard PPT)
|
|
19
|
+
prs = Presentation()
|
|
20
|
+
prs.slide_width = Inches(10)
|
|
21
|
+
prs.slide_height = Inches(7.5)
|
|
22
|
+
|
|
23
|
+
# Blank layout
|
|
24
|
+
blank = prs.slide_layouts[6]
|
|
25
|
+
slide = prs.slides.add_slide(blank)
|
|
26
|
+
|
|
27
|
+
# ---- Slot 1: citation text box ----
|
|
28
|
+
cite = slide.shapes.add_textbox(Inches(0.4), Inches(5.3), Inches(9.4), Inches(0.5))
|
|
29
|
+
tf = cite.text_frame
|
|
30
|
+
tf.text = "ARTICLECITATION — replace with: FirstAuthor et al. JACC: Asia YYYY; vol(issue):pages."
|
|
31
|
+
p = tf.paragraphs[0]
|
|
32
|
+
p.font.size = Pt(11)
|
|
33
|
+
p.font.bold = True
|
|
34
|
+
p.font.color.rgb = RGBColor(0x1F, 0x4E, 0x79)
|
|
35
|
+
|
|
36
|
+
# ---- Slot 2: content picture placeholder (rectangle as marker) ----
|
|
37
|
+
ph = slide.shapes.add_shape(
|
|
38
|
+
MSO_SHAPE.RECTANGLE, Inches(3.0), Inches(0.8), Inches(4.0), Inches(4.2)
|
|
39
|
+
)
|
|
40
|
+
ph.fill.solid()
|
|
41
|
+
ph.fill.fore_color.rgb = RGBColor(0xF2, 0xF2, 0xF2)
|
|
42
|
+
ph.line.color.rgb = RGBColor(0xBF, 0xBF, 0xBF)
|
|
43
|
+
ph.line.width = Pt(1.5)
|
|
44
|
+
ph.text_frame.text = "VISUALELEMENT — replace this rectangle with the author content figure (PNG/TIFF, 600 DPI, ~4×4.2 in)."
|
|
45
|
+
for para in ph.text_frame.paragraphs:
|
|
46
|
+
para.font.size = Pt(10)
|
|
47
|
+
para.font.color.rgb = RGBColor(0x59, 0x59, 0x59)
|
|
48
|
+
para.alignment = 1 # center
|
|
49
|
+
|
|
50
|
+
# ---- Slot 3: footer text box (reserved; usually empty in JACC templates) ----
|
|
51
|
+
foot = slide.shapes.add_textbox(Inches(0.4), Inches(7.0), Inches(4.1), Inches(0.5))
|
|
52
|
+
foot.text_frame.text = "FOOTERNOTE — optional secondary caption (often empty)."
|
|
53
|
+
for para in foot.text_frame.paragraphs:
|
|
54
|
+
para.font.size = Pt(9)
|
|
55
|
+
para.font.color.rgb = RGBColor(0x80, 0x80, 0x80)
|
|
56
|
+
para.font.italic = True
|
|
57
|
+
|
|
58
|
+
# ---- Slot 4: logo placeholder (rectangle as marker) ----
|
|
59
|
+
logo = slide.shapes.add_shape(
|
|
60
|
+
MSO_SHAPE.RECTANGLE, Inches(7.3), Inches(6.7), Inches(2.7), Inches(0.8)
|
|
61
|
+
)
|
|
62
|
+
logo.fill.solid()
|
|
63
|
+
logo.fill.fore_color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
|
|
64
|
+
logo.line.color.rgb = RGBColor(0xBF, 0xBF, 0xBF)
|
|
65
|
+
logo.line.width = Pt(0.75)
|
|
66
|
+
logo.text_frame.text = "JACCLOGO — JACC family logo (provided by editorial)."
|
|
67
|
+
for para in logo.text_frame.paragraphs:
|
|
68
|
+
para.font.size = Pt(8)
|
|
69
|
+
para.font.color.rgb = RGBColor(0x80, 0x80, 0x80)
|
|
70
|
+
para.alignment = 1
|
|
71
|
+
|
|
72
|
+
# Save
|
|
73
|
+
OUT.parent.mkdir(parents=True, exist_ok=True)
|
|
74
|
+
prs.save(OUT)
|
|
75
|
+
print(f"Saved: {OUT}")
|
|
76
|
+
print(f"Slide size: {Emu(prs.slide_width).inches:.2f} x {Emu(prs.slide_height).inches:.2f} in")
|
|
77
|
+
print("Placeholders: ARTICLECITATION, VISUALELEMENT, FOOTERNOTE, JACCLOGO")
|