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,136 @@
|
|
|
1
|
+
# Phase 10 Reference — Self-Audit Recovery (v{N} → v{N+1} Sprint)
|
|
2
|
+
|
|
3
|
+
Load this reference when any Phase 10 trigger fires during `/meta-analysis`. The SKILL.md
|
|
4
|
+
body carries only the trigger table and summary pointer; all procedural detail lives here.
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
When an audit — internal, or triggered by an incoming co-author comment — uncovers a
|
|
9
|
+
structural data or protocol-application error, withdraw the current version, rebuild, and
|
|
10
|
+
re-circulate with a transparent audit trail. Catching the error yourself before a journal
|
|
11
|
+
reviewer does is the principal trust-building move in this phase.
|
|
12
|
+
|
|
13
|
+
## Trigger Conditions (any one)
|
|
14
|
+
|
|
15
|
+
- Extraction CSV disagrees with the primary source for a cell that materially feeds a
|
|
16
|
+
pooled estimate, subgroup estimate, or a reported proportion.
|
|
17
|
+
- A study that was excluded (or included) by the pre-specified criteria is found to
|
|
18
|
+
violate those criteria on re-read.
|
|
19
|
+
- A hand-typed numerical literal in the analysis script traces to a wrong value (see the
|
|
20
|
+
Phase 6b precedent failure pattern).
|
|
21
|
+
- The PROSPERO (or equivalent) protocol and the delivered analysis disagree on a
|
|
22
|
+
pre-specified outcome, subgroup, or eligibility rule.
|
|
23
|
+
- A dual-reviewer consensus record shows a study was supposed to be excluded, but the
|
|
24
|
+
locked dataset still contains it (or vice versa).
|
|
25
|
+
|
|
26
|
+
## Non-Negotiable Rule
|
|
27
|
+
|
|
28
|
+
If the trigger fires after Phase 9 circulation but before journal submission, withdraw
|
|
29
|
+
the current version within 24 hours. Reviewer discovery is a strictly worse failure mode
|
|
30
|
+
than self-withdrawal.
|
|
31
|
+
|
|
32
|
+
## 10.1 Audit Log
|
|
33
|
+
|
|
34
|
+
Create `qc/audit_vN_to_vNplus1.md`. For each flagged item, record:
|
|
35
|
+
- Affected study (first author, year).
|
|
36
|
+
- Cell or claim (e.g., TP/FP/FN/TN, k, pooled estimate, CI, subgroup count).
|
|
37
|
+
- Source of the error (extraction, application of criteria, script literal, protocol
|
|
38
|
+
mismatch, reviewer-consensus mismatch).
|
|
39
|
+
- Proposed resolution (exclude study, re-extract cell, correct script literal, amend
|
|
40
|
+
protocol, reinstate study).
|
|
41
|
+
|
|
42
|
+
## 10.2 CSV Re-Verification
|
|
43
|
+
|
|
44
|
+
For every flagged cell, re-verify against the primary source (paper Table/Figure, page
|
|
45
|
+
number). Any revision-introduced value must carry the `[VERIFY-CSV]` tag until the
|
|
46
|
+
Phase 6b audit clears it.
|
|
47
|
+
|
|
48
|
+
## 10.3 Re-Run the Analysis Script
|
|
49
|
+
|
|
50
|
+
Re-execute the full synthesis pipeline with a fixed random seed. Save complete output to
|
|
51
|
+
`analysis/vNplus1_run.log`. Do not re-use partial v{N} output even for subsections that
|
|
52
|
+
"should be unchanged" — prove it with a fresh run.
|
|
53
|
+
|
|
54
|
+
## 10.4 Manuscript Auto-Sync
|
|
55
|
+
|
|
56
|
+
Every number the manuscript reports — k, pooled estimate, 95% CI, τ², I², subgroup
|
|
57
|
+
counts, sensitivity-analysis rows, GRADE levels — must be pulled from the fresh output.
|
|
58
|
+
Grep the manuscript for old v{N} numerical values to confirm no residue survives.
|
|
59
|
+
|
|
60
|
+
## 10.5 Supplementary Regeneration
|
|
61
|
+
|
|
62
|
+
Re-emit (do not patch):
|
|
63
|
+
- Extraction consensus log.
|
|
64
|
+
- RoB tables.
|
|
65
|
+
- GRADE / Summary of Findings table.
|
|
66
|
+
- PRISMA flow diagram (counts shift when studies are excluded/reinstated).
|
|
67
|
+
|
|
68
|
+
## 10.6 Figure Regeneration
|
|
69
|
+
|
|
70
|
+
Regenerate forest plots, funnel plots, subgroup plots, and the PRISMA flow via
|
|
71
|
+
`/make-figures`. Re-embed at the original manuscript positions. Confirm figure captions
|
|
72
|
+
match the new values (captions often contain pooled estimates).
|
|
73
|
+
|
|
74
|
+
## 10.7 Change Summary
|
|
75
|
+
|
|
76
|
+
Produce `v{N+1}_change_summary.md` with an explicit delta table:
|
|
77
|
+
|
|
78
|
+
| Item | v{N} | v{N+1} | Reason |
|
|
79
|
+
|------|------|--------|--------|
|
|
80
|
+
| k | | | |
|
|
81
|
+
| Primary pooled estimate (95% CI) | | | |
|
|
82
|
+
| Heterogeneity (I², τ²) | | | |
|
|
83
|
+
| Studies added | | | |
|
|
84
|
+
| Studies removed | | | |
|
|
85
|
+
| Subgroup re-stratification | | | |
|
|
86
|
+
|
|
87
|
+
This file is the external audit trail. It must be circulated with the v{N+1} manuscript.
|
|
88
|
+
|
|
89
|
+
## 10.8 PROSPERO (or Equivalent) Amendment
|
|
90
|
+
|
|
91
|
+
If eligibility, analysis population, or outcome definitions changed, file an amendment
|
|
92
|
+
to the registered protocol in parallel with the re-build:
|
|
93
|
+
- Keep revision notes within the registry's word limit (often 250 words).
|
|
94
|
+
- Frame the amendment as application correction, not criteria change:
|
|
95
|
+
> "The pre-specified inclusion criteria are unchanged. The amended application excludes
|
|
96
|
+
> {N} study(ies) whose characteristics were confirmed on independent re-review to fall
|
|
97
|
+
> outside the pre-specified criteria."
|
|
98
|
+
- Submit the amendment before — or simultaneously with — re-circulation, so co-authors
|
|
99
|
+
see an amendment already in flight rather than only a draft change.
|
|
100
|
+
|
|
101
|
+
## 10.9 Re-Circulation Framing
|
|
102
|
+
|
|
103
|
+
Use the Phase 9 thread. State the situation plainly in the first paragraph:
|
|
104
|
+
|
|
105
|
+
> "On re-review of v{N}, we identified {N} study(ies) whose data did not meet the
|
|
106
|
+
> pre-specified inclusion criteria. These were excluded and the analysis regenerated.
|
|
107
|
+
> The manuscript body, supplementary, and all figures have been re-rendered. A change
|
|
108
|
+
> summary is attached."
|
|
109
|
+
|
|
110
|
+
Tonal anchors worth preserving:
|
|
111
|
+
- "On re-review" — signals internal audit, not external pressure.
|
|
112
|
+
- "Pre-specified criteria" — the protocol itself is unchanged; application is corrected.
|
|
113
|
+
- "Change summary" — an external audit trail is available for scrutiny.
|
|
114
|
+
|
|
115
|
+
## 10.10 Anti-Patterns (do not)
|
|
116
|
+
|
|
117
|
+
- Hide the error and submit v{N} as-is. This converts a recoverable finding into a
|
|
118
|
+
retraction-class incident if the reviewer catches it.
|
|
119
|
+
- Reframe the fix as a "minor revision" with no audit trail. Senior reviewers read audit
|
|
120
|
+
trails; absence of one signals concealment.
|
|
121
|
+
- Disclose only in the cover letter while leaving Methods silent. Methods and the cover
|
|
122
|
+
letter must agree.
|
|
123
|
+
|
|
124
|
+
## 10.11 When the Trigger Fires Post-Submission
|
|
125
|
+
|
|
126
|
+
If the audit trigger is detected after the journal submission but before an editorial
|
|
127
|
+
decision, notify the editorial office immediately and submit a corrected manuscript
|
|
128
|
+
alongside the disclosure. Do not wait for the reviewer to surface it; editors prefer
|
|
129
|
+
author-initiated correction.
|
|
130
|
+
|
|
131
|
+
## 10.12 Post-Recovery Loop
|
|
132
|
+
|
|
133
|
+
After v{N+1} is circulated, Phase 9 restarts. If a further audit trigger emerges during
|
|
134
|
+
the new review window, a second recovery sprint (v{N+1} → v{N+2}) is acceptable — but
|
|
135
|
+
each recovery costs co-author goodwill, so the incoming audit in Phase 6b should be
|
|
136
|
+
tightened each cycle rather than relying on Phase 10 as a routine catch.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Phase 4 Reference — KM Reconstruction & Composite Exposure Disaggregation
|
|
2
|
+
|
|
3
|
+
Load this reference when `/meta-analysis` Phase 4 data extraction encounters either
|
|
4
|
+
of two special cases: (a) studies that report outcomes only as Kaplan-Meier curves
|
|
5
|
+
without raw event counts, or (b) studies whose intervention is a composite of
|
|
6
|
+
multiple techniques. The main Phase 4 body of SKILL.md lists the standard
|
|
7
|
+
extraction-form fields and the cross-verification checklist; this reference holds
|
|
8
|
+
the procedural detail for these two scenarios.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 4b. KM Curve Reconstruction (when raw events not reported)
|
|
13
|
+
|
|
14
|
+
When studies report outcomes only as Kaplan-Meier curves without raw event counts:
|
|
15
|
+
|
|
16
|
+
1. **Digitise the KM curve**: Use WebPlotDigitizer
|
|
17
|
+
(https://automeris.io/WebPlotDigitizer/)
|
|
18
|
+
- Calibrate X/Y axes carefully — verify output range matches the original axis labels.
|
|
19
|
+
- If coordinates come out in 0–1 range, multiply X by the actual time range
|
|
20
|
+
(e.g., ×30 for months).
|
|
21
|
+
- Clip negative Y values to 0 (digitisation artifact).
|
|
22
|
+
- Export as CSV: `time, cumulative_event_rate` (or survival).
|
|
23
|
+
|
|
24
|
+
2. **Extract number-at-risk**: Record from the table below the KM plot at each time point.
|
|
25
|
+
|
|
26
|
+
3. **Reconstruct IPD**: Use the R `IPDfromKM` package (Guyot et al. 2012 method):
|
|
27
|
+
```r
|
|
28
|
+
library(IPDfromKM)
|
|
29
|
+
dat <- read.csv("digitised_curve.csv")
|
|
30
|
+
preproc <- preprocess(dat, trisk, nrisk, totalpts, maxy = 1)
|
|
31
|
+
ipd <- getIPD(preproc, armID = 1) # armID starts at 1, NOT 0
|
|
32
|
+
```
|
|
33
|
+
- ⚠️ `preprocess()` does NOT accept a `mateflag` parameter (common error).
|
|
34
|
+
- ⚠️ `armID` starts at 1 (not 0).
|
|
35
|
+
|
|
36
|
+
4. **Verify**: Generate a reconstructed KM plot and visually compare to the
|
|
37
|
+
original figure.
|
|
38
|
+
|
|
39
|
+
5. **Report in Methods**: Cite Guyot et al. 2012 (doi:10.1186/1471-2288-12-9) and
|
|
40
|
+
state which studies required reconstruction.
|
|
41
|
+
|
|
42
|
+
**Alternative — Text-based extraction**: When no subgroup-specific KM curve exists
|
|
43
|
+
but the text reports "0% LTP at 12 months" or similar, extract directly from text.
|
|
44
|
+
Document the page number and exact quote.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Composite Exposure Disaggregation
|
|
49
|
+
|
|
50
|
+
When a study's intervention is a composite of multiple techniques:
|
|
51
|
+
|
|
52
|
+
1. **Subgroup-specific KM curve** → use KM reconstruction (section 4b above).
|
|
53
|
+
2. **Component-specific Table/multivariate** → extract per-component data from Tables.
|
|
54
|
+
3. **Text-based subgroup report** → extract from narrative (e.g., "APE arm: 0% LTP").
|
|
55
|
+
4. **None available** → include as composite; flag in sensitivity analysis for exclusion.
|
|
56
|
+
|
|
57
|
+
Always pre-specify a sensitivity analysis excluding composite-exposure studies.
|
|
58
|
+
Document the extraction strategy in the data extraction form Notes column.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Phase 6 Reference — Statistical Synthesis
|
|
2
|
+
|
|
3
|
+
Load this reference when `/meta-analysis` Phase 6 begins executing the pooled
|
|
4
|
+
analysis. It contains the R code templates for DTA and intervention meta-analysis,
|
|
5
|
+
the dual-approach (comparative + single-arm pooled proportion) decision table, and
|
|
6
|
+
the practical cautions (method.tau, HK CI, zero-cell correction, publication-bias
|
|
7
|
+
test power).
|
|
8
|
+
|
|
9
|
+
**Always use R** (packages: `meta`, `metafor`, `mada`). Companion templates:
|
|
10
|
+
`${CLAUDE_SKILL_DIR}/references/r_templates.md`.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## DTA Meta-Analysis
|
|
15
|
+
|
|
16
|
+
```r
|
|
17
|
+
library(mada) # bivariate model, forest/SROC plots
|
|
18
|
+
library(meta) # general meta-analysis utilities
|
|
19
|
+
library(metafor) # advanced models
|
|
20
|
+
|
|
21
|
+
# Bivariate model (recommended for DTA)
|
|
22
|
+
fit <- reitsma(data, formula = cbind(tsens, tfpr) ~ 1)
|
|
23
|
+
summary(fit)
|
|
24
|
+
|
|
25
|
+
# SROC curve with confidence and prediction regions
|
|
26
|
+
plot(fit, sroclwd = 2, main = "SROC Curve")
|
|
27
|
+
|
|
28
|
+
# Forest plot (paired: sensitivity + specificity)
|
|
29
|
+
forest(fit, type = "sens")
|
|
30
|
+
forest(fit, type = "spec")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Key outputs for DTA
|
|
34
|
+
- Pooled sensitivity (95% CI)
|
|
35
|
+
- Pooled specificity (95% CI)
|
|
36
|
+
- Pooled positive LR, negative LR
|
|
37
|
+
- Pooled DOR
|
|
38
|
+
- SROC curve with AUC, confidence region, prediction region
|
|
39
|
+
- Heterogeneity: I-squared for sensitivity and specificity separately
|
|
40
|
+
- Threshold effect: Spearman correlation between sensitivity and FPR
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Intervention Meta-Analysis
|
|
45
|
+
|
|
46
|
+
```r
|
|
47
|
+
library(meta)
|
|
48
|
+
library(metafor)
|
|
49
|
+
|
|
50
|
+
res <- metagen(TE, seTE, data = dat, studlab = study,
|
|
51
|
+
method.tau = "REML", sm = "OR")
|
|
52
|
+
forest(res)
|
|
53
|
+
funnel(res)
|
|
54
|
+
|
|
55
|
+
summary(res) # I-squared, tau-squared, Q test
|
|
56
|
+
metabias(res, method.bias = "Egger")
|
|
57
|
+
metainf(res, pooled = "random") # leave-one-out
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Dual Approach: Comparative + Single-Arm Pooled Proportion
|
|
63
|
+
|
|
64
|
+
When both comparative and single-arm studies are available, use dual analysis
|
|
65
|
+
(precedent: Lin 2025 PMID:41419890, Su 2026 PMID:41653198). The assignment of
|
|
66
|
+
PRIMARY vs SECONDARY depends on the research question and available evidence:
|
|
67
|
+
|
|
68
|
+
| Scenario | Primary | Secondary | Rationale |
|
|
69
|
+
|----------|---------|-----------|-----------|
|
|
70
|
+
| Enough comparative studies (k≥8) | Comparative OR/RR | Pooled proportion | Direct comparison answers efficacy |
|
|
71
|
+
| Limited comparative (k<6), many single-arm | Pooled proportion | Comparative OR/RR | Insufficient power for comparative; pooled proportion provides descriptive evidence |
|
|
72
|
+
| Mixed (moderate k, each) | Discuss with co-authors | — | PI/methodologist decision |
|
|
73
|
+
|
|
74
|
+
The choice should be pre-specified in the PROSPERO protocol and remain consistent
|
|
75
|
+
throughout the manuscript.
|
|
76
|
+
|
|
77
|
+
```r
|
|
78
|
+
# Comparative MA (binary outcomes)
|
|
79
|
+
res_comp <- metabin(ei, ni, ec, nc, data = dat,
|
|
80
|
+
studlab = study, sm = "OR",
|
|
81
|
+
method = "Inverse", method.tau = "DL",
|
|
82
|
+
common = FALSE, random = TRUE,
|
|
83
|
+
method.random.ci = "HK", incr = 0.5)
|
|
84
|
+
|
|
85
|
+
# Single-arm pooled proportion
|
|
86
|
+
res_prop <- metaprop(event, n, data = dat_single,
|
|
87
|
+
studlab = study, sm = "PLOGIT",
|
|
88
|
+
method.tau = "DL", method.ci = "CP")
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Key points
|
|
92
|
+
- Comparative answers "is adjunct effective?"; single-arm answers "what outcomes to expect?"
|
|
93
|
+
- Single-arm uses `metaprop()` with logit transformation + Clopper-Pearson CI
|
|
94
|
+
- GRADE certainty lower for single-arm — state explicitly
|
|
95
|
+
- Report both in Results: label PRIMARY/SECONDARY per pre-specified assignment
|
|
96
|
+
- **Selection bias warning**: Single-arm case series may introduce selection bias
|
|
97
|
+
(experienced centres, favourable patients). When pooling with comparative arms,
|
|
98
|
+
report both pooled estimates separately and discuss any numerically lower event
|
|
99
|
+
rate in single-arm studies as a potential selection effect.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Practical R Notes
|
|
104
|
+
|
|
105
|
+
- Use `method = "Inverse"`, not `"MH"`, to avoid a method.tau conflict.
|
|
106
|
+
- Use `method.tau = "DL"` (DerSimonian-Laird) — REML may not converge with sparse data.
|
|
107
|
+
- Use `method.random.ci = "HK"` (Hartung-Knapp) instead of the deprecated `hakn = TRUE`.
|
|
108
|
+
- Use `common = FALSE, random = TRUE` instead of deprecated `comb.fixed/comb.random`.
|
|
109
|
+
- For zero cells, apply `incr = 0.5` continuity correction.
|
|
110
|
+
- Egger's test is underpowered for k < 10 — note this in results.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Subgroup / Meta-Regression
|
|
115
|
+
|
|
116
|
+
- Subgroup analysis for pre-specified covariates
|
|
117
|
+
- Meta-regression for continuous moderators
|
|
118
|
+
- Report interaction test p-value, not just within-subgroup p-values
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Publication Bias
|
|
123
|
+
|
|
124
|
+
- DTA: Deeks' funnel plot asymmetry test (standard funnel plots are inappropriate for DTA).
|
|
125
|
+
- Intervention: Funnel plot + Egger's or Peters' test.
|
|
126
|
+
- Note: tests are underpowered for <10 studies.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Sensitivity Analysis
|
|
131
|
+
|
|
132
|
+
- Leave-one-out analysis (`metainf()`)
|
|
133
|
+
- Excluding high RoB studies
|
|
134
|
+
- Excluding overlapping populations (same institution + enrollment period)
|
|
135
|
+
- Including/excluding borderline studies (sensitivity to inclusion criteria)
|
|
136
|
+
- Alternative model specifications
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Error Handling
|
|
141
|
+
|
|
142
|
+
- If an R script fails, capture the error message, diagnose the likely cause
|
|
143
|
+
(missing package, data format mismatch, convergence failure), and present a fix.
|
|
144
|
+
Do not silently re-run.
|
|
145
|
+
- When reporting R output, separate statistical results (pooled estimates,
|
|
146
|
+
heterogeneity metrics, I-squared) from interpretation. Present numbers first in
|
|
147
|
+
a "Statistical Results" block, then interpretation guidance in a separate
|
|
148
|
+
"Interpretation Notes" block.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Phase 9 Reference — Co-author Circulation
|
|
2
|
+
|
|
3
|
+
Load this reference when Phase 9 is entered (after Phase 8 is complete and Phase 6b
|
|
4
|
+
source-fidelity audit has cleared). The SKILL.md body carries only the goal + summary
|
|
5
|
+
pointer; all procedural detail lives here.
|
|
6
|
+
|
|
7
|
+
## Goal
|
|
8
|
+
|
|
9
|
+
Standardized pre-submission circulation of the manuscript to co-authors and senior
|
|
10
|
+
methodologists / reviewers, with a bounded review window and a controlled attachment
|
|
11
|
+
scope.
|
|
12
|
+
|
|
13
|
+
## Trigger
|
|
14
|
+
|
|
15
|
+
Phase 8 is complete, and the draft has cleared Phase 6b source-fidelity audit.
|
|
16
|
+
|
|
17
|
+
## 9.1 Thread Continuity
|
|
18
|
+
|
|
19
|
+
- If a prior version (v1, v2, ...) of this manuscript was already circulated to the same
|
|
20
|
+
author team, reply to the same email thread. Preserve `In-Reply-To` and `References`
|
|
21
|
+
headers so the thread tracks v1 → v2 → v3 in one place.
|
|
22
|
+
- Open a new thread only for the first circulation, or when the author team / target
|
|
23
|
+
journal has fundamentally changed.
|
|
24
|
+
|
|
25
|
+
## 9.2 Attachment Scope
|
|
26
|
+
|
|
27
|
+
**Include:**
|
|
28
|
+
- Manuscript body with figures embedded inline (single DOCX/PDF).
|
|
29
|
+
- Change summary — for v≥2, a delta table vs. the prior circulated version.
|
|
30
|
+
|
|
31
|
+
**Exclude (circulate separately later):**
|
|
32
|
+
- Graphical abstract — after the body is locked.
|
|
33
|
+
- Cover letter — after the target journal is confirmed.
|
|
34
|
+
- COI forms — after journal format is known.
|
|
35
|
+
- Supplementary appendices — share via a drive link, not attached.
|
|
36
|
+
|
|
37
|
+
Rationale: bundling all submission artifacts before the body is locked forces co-authors
|
|
38
|
+
to review multiple moving targets at once and telegraphs premature commitment to a
|
|
39
|
+
specific journal (especially when the GA carries journal-specific branding).
|
|
40
|
+
|
|
41
|
+
## 9.3 Attachment Method
|
|
42
|
+
|
|
43
|
+
| Total attachment size | Method |
|
|
44
|
+
|---|---|
|
|
45
|
+
| < 5 MB | Direct email attachment |
|
|
46
|
+
| 5 – 25 MB | Direct attachment (within the common 25 MB mailbox limit), but verify at the draft-API level — some clients fail well below the stated message limit |
|
|
47
|
+
| > 25 MB or grey-list formats | Shared drive link only |
|
|
48
|
+
|
|
49
|
+
A manuscript DOCX with inline figures is typically 0.5 – 1 MB — direct attach is safe.
|
|
50
|
+
|
|
51
|
+
## 9.4 Recipient Structure
|
|
52
|
+
|
|
53
|
+
- **TO**: Corresponding author + one senior methodologist reviewer (e.g., a protocol
|
|
54
|
+
assessor or statistician external to the writing team).
|
|
55
|
+
- **CC**: All remaining co-authors. Include every alternate email address a co-author has
|
|
56
|
+
used on the thread to avoid dropping them.
|
|
57
|
+
|
|
58
|
+
Ask the corresponding author explicitly for:
|
|
59
|
+
- target journal preference,
|
|
60
|
+
- 2 – 3 reviewer candidates,
|
|
61
|
+
- any framing adjustments to carry into the cover letter.
|
|
62
|
+
|
|
63
|
+
## 9.5 Journal-Undetermined Framing
|
|
64
|
+
|
|
65
|
+
If the target journal is not yet confirmed, state this explicitly:
|
|
66
|
+
|
|
67
|
+
> "The manuscript is currently formatted to [placeholder journal]'s guidelines. Please
|
|
68
|
+
> suggest an appropriate target journal and we will re-format accordingly."
|
|
69
|
+
|
|
70
|
+
Do not include the graphical abstract in this round if it carries journal-specific
|
|
71
|
+
branding that would require rework on re-targeting.
|
|
72
|
+
|
|
73
|
+
## 9.6 Deadline
|
|
74
|
+
|
|
75
|
+
- Set `(send date + 7 days)` = 5 business days + 1 weekend.
|
|
76
|
+
- Record the deadline in a task tracker with expected responses per recipient.
|
|
77
|
+
- Informal follow-up is acceptable after 4 – 5 days of silence. A formal second message
|
|
78
|
+
before the 7-day window closes is not appropriate unless an external submission deadline
|
|
79
|
+
forces it.
|
|
80
|
+
|
|
81
|
+
## 9.7 Response Tracking
|
|
82
|
+
|
|
83
|
+
For each recipient, log: date of response, issues raised, and whether the issues trigger
|
|
84
|
+
Phase 10 (Self-Audit Recovery) or are minor in-place revisions.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Post-Submission Release Operations
|
|
2
|
+
|
|
3
|
+
**When**: between the end of Phase 9 (circulation) and journal submission. Separate from Phase 10 (recovery).
|
|
4
|
+
|
|
5
|
+
**Why it's hard**: during circulation (v7~v18 coexisting), the numbers keep shifting. Mint the DOI too early and a content mismatch forces a re-issue; too late and you are scrambling on submission day.
|
|
6
|
+
|
|
7
|
+
## Checklist
|
|
8
|
+
|
|
9
|
+
### Gate 1 — When to issue the release
|
|
10
|
+
|
|
11
|
+
- [ ] Internal circulation closed: every reviewer (internal PI, external peer) has signed off.
|
|
12
|
+
- [ ] `[VERIFY-CSV]` / `TODO` / `FIXME` / `(to be regenerated)` tags fully removed from manuscript / supplement / figures / code (`rg -n` → 0 hits).
|
|
13
|
+
- [ ] k (number of included studies) matches across the `4_Analysis/*.csv` row count, the manuscript prose, the PRISMA flow, and every figure caption.
|
|
14
|
+
- [ ] Author order / ICMJE COI finalized (just before reflecting it in the Zenodo author metadata).
|
|
15
|
+
|
|
16
|
+
### Gate 2 — GitHub repo
|
|
17
|
+
|
|
18
|
+
- [ ] Journal-target bundle regenerates successfully via `_build.sh`.
|
|
19
|
+
- [ ] Repo includes the raw analysis code, extraction_consensus_log.md, PROSPERO amendments tracker, and methodology.
|
|
20
|
+
- [ ] README has a DOI placeholder (replaced after the Zenodo DOI is issued).
|
|
21
|
+
- [ ] `.gitignore` confirmed to exclude raw PDFs / copyrighted material.
|
|
22
|
+
- [ ] LICENSE stated (CC-BY 4.0 or the journal-required license).
|
|
23
|
+
|
|
24
|
+
### Gate 3 — Zenodo DOI
|
|
25
|
+
|
|
26
|
+
- [ ] Zenodo record metadata: author order, affiliation, ORCID, keywords, related identifiers (PROSPERO registration number).
|
|
27
|
+
- [ ] Add the GitHub repo release tag URL to `related_identifiers` as `isSupplementTo`.
|
|
28
|
+
- [ ] The submission package (.tar.gz) is uploaded to Zenodo — the journal submission bundle, not the circulation package (vN).
|
|
29
|
+
- [ ] After the DOI is issued, reflect it in the "data availability" section of the manuscript / cover letter / submission portal.
|
|
30
|
+
|
|
31
|
+
### Gate 4 — Handling re-targeting after rejection
|
|
32
|
+
|
|
33
|
+
- [ ] Resubmission of identical content to another journal: **do NOT mint a new Zenodo version** (the DOI attaches to the content). Use `_build.sh --journal {new}` to create only a new SUBMISSION folder.
|
|
34
|
+
- [ ] Resubmission after revision: content changed → mint a new Zenodo version. The concept DOI is preserved.
|
|
35
|
+
- [ ] On author changes: redistribute the ICMJE COI + mint a new Zenodo version.
|
|
36
|
+
|
|
37
|
+
## Common failures
|
|
38
|
+
|
|
39
|
+
- **F1**: Zenodo DOI minted while `k` (included study count) is still oscillating between versions → content-DOI mismatch forces re-issue. **Blocked by**: Gate 1.
|
|
40
|
+
- **F2**: Journal-specific folders edited by hand without a `_build.sh` → the journal copies drift from master. **Blocked by**: see `submission_package_drift.md`.
|
|
41
|
+
- **F3**: `TODO` / `FIXME` tag left in an R analysis script surfaces only after the repo is pushed to GitHub. **Blocked by**: Gate 1 `rg` scope including code.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# R Code Templates for Meta-Analysis
|
|
2
|
+
|
|
3
|
+
## Required Packages
|
|
4
|
+
|
|
5
|
+
```r
|
|
6
|
+
# DTA meta-analysis
|
|
7
|
+
library(mada) # bivariate model, forest/SROC plots
|
|
8
|
+
library(meta) # general meta-analysis utilities
|
|
9
|
+
library(metafor) # advanced models
|
|
10
|
+
|
|
11
|
+
# Intervention meta-analysis
|
|
12
|
+
library(meta)
|
|
13
|
+
library(metafor)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## DTA Meta-Analysis
|
|
17
|
+
|
|
18
|
+
### Bivariate Model (Recommended)
|
|
19
|
+
|
|
20
|
+
```r
|
|
21
|
+
# Bivariate model (Reitsma et al.)
|
|
22
|
+
fit <- reitsma(data, formula = cbind(tsens, tfpr) ~ 1)
|
|
23
|
+
summary(fit)
|
|
24
|
+
|
|
25
|
+
# SROC curve with confidence and prediction regions
|
|
26
|
+
plot(fit, sroclwd = 2, main = "SROC Curve")
|
|
27
|
+
|
|
28
|
+
# Forest plot (paired: sensitivity + specificity)
|
|
29
|
+
forest(fit, type = "sens")
|
|
30
|
+
forest(fit, type = "spec")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Key Outputs for DTA
|
|
34
|
+
|
|
35
|
+
- Pooled sensitivity (95% CI)
|
|
36
|
+
- Pooled specificity (95% CI)
|
|
37
|
+
- Pooled positive LR, negative LR
|
|
38
|
+
- Pooled DOR
|
|
39
|
+
- SROC curve with AUC, confidence region, prediction region
|
|
40
|
+
- Heterogeneity: I-squared for sensitivity and specificity separately
|
|
41
|
+
- Threshold effect: Spearman correlation between sensitivity and FPR
|
|
42
|
+
|
|
43
|
+
### Publication Bias (DTA)
|
|
44
|
+
|
|
45
|
+
- Use Deeks' funnel plot asymmetry test (standard funnel plots are inappropriate for DTA)
|
|
46
|
+
|
|
47
|
+
## Intervention Meta-Analysis
|
|
48
|
+
|
|
49
|
+
### Random-Effects Model
|
|
50
|
+
|
|
51
|
+
```r
|
|
52
|
+
# Random-effects model
|
|
53
|
+
res <- metagen(TE, seTE, data = dat, studlab = study,
|
|
54
|
+
method.tau = "REML", sm = "OR")
|
|
55
|
+
forest(res)
|
|
56
|
+
funnel(res)
|
|
57
|
+
|
|
58
|
+
# Heterogeneity
|
|
59
|
+
summary(res) # I-squared, tau-squared, Q test
|
|
60
|
+
|
|
61
|
+
# Publication bias
|
|
62
|
+
metabias(res, method.bias = "Egger")
|
|
63
|
+
|
|
64
|
+
# Sensitivity analysis: leave-one-out
|
|
65
|
+
metainf(res, pooled = "random")
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Publication Bias (Intervention)
|
|
69
|
+
|
|
70
|
+
- Funnel plot + Egger's or Peters' test
|
|
71
|
+
- Note: Tests underpowered for <10 studies
|
|
72
|
+
|
|
73
|
+
## Subgroup / Meta-Regression
|
|
74
|
+
|
|
75
|
+
- Subgroup analysis for pre-specified covariates
|
|
76
|
+
- Meta-regression for continuous moderators
|
|
77
|
+
- Report interaction test p-value, not just within-subgroup p-values
|
|
78
|
+
|
|
79
|
+
## KM Curve Reconstruction (Guyot et al. 2012)
|
|
80
|
+
|
|
81
|
+
```r
|
|
82
|
+
library(IPDfromKM)
|
|
83
|
+
|
|
84
|
+
# Read digitised KM curve (time, cumulative event rate)
|
|
85
|
+
dat <- read.csv("digitised_curve.csv")
|
|
86
|
+
|
|
87
|
+
# Number-at-risk from figure
|
|
88
|
+
trisk <- c(0, 6, 12, 18, 24, 30) # time points
|
|
89
|
+
nrisk <- c(51, 41, 30, 15, 7, 4) # at-risk counts
|
|
90
|
+
totalpts <- 51
|
|
91
|
+
|
|
92
|
+
# Reconstruct IPD
|
|
93
|
+
preproc <- preprocess(dat, trisk, nrisk, totalpts, maxy = 1)
|
|
94
|
+
ipd <- getIPD(preproc, armID = 1) # armID = 1 (NOT 0)
|
|
95
|
+
|
|
96
|
+
# Count events for meta-analysis input
|
|
97
|
+
events <- sum(ipd$status == 1)
|
|
98
|
+
total <- nrow(ipd)
|
|
99
|
+
cat(sprintf("Events: %d / %d\n", events, total))
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Key pitfalls:
|
|
103
|
+
- `preprocess()` does NOT accept a `mateflag` parameter
|
|
104
|
+
- `armID` starts at 1, not 0
|
|
105
|
+
- Verify reconstructed KM visually against original figure
|
|
106
|
+
|
|
107
|
+
## Pooled Proportion (Single-arm or combined)
|
|
108
|
+
|
|
109
|
+
```r
|
|
110
|
+
res_prop <- metaprop(event, n, data = dat,
|
|
111
|
+
studlab = study,
|
|
112
|
+
sm = "PLOGIT", # logit transformation
|
|
113
|
+
method.tau = "ML", # maximum likelihood
|
|
114
|
+
method.ci = "CP", # Clopper-Pearson for individual studies
|
|
115
|
+
common = FALSE,
|
|
116
|
+
random = TRUE)
|
|
117
|
+
|
|
118
|
+
# Forest plot
|
|
119
|
+
forest(res_prop, xlim = c(0, 1),
|
|
120
|
+
leftcols = c("studlab", "event", "n"),
|
|
121
|
+
leftlabs = c("Study", "Events", "Total"))
|
|
122
|
+
|
|
123
|
+
# Egger's test (k >= 10)
|
|
124
|
+
metabias(res_prop, method.bias = "Egger")
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Sensitivity Analysis
|
|
128
|
+
|
|
129
|
+
- Leave-one-out analysis
|
|
130
|
+
- Excluding high RoB studies
|
|
131
|
+
- Excluding outliers (identified via influence diagnostics)
|
|
132
|
+
- Alternative model specifications
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Peer Review Orchestration (3-tier)
|
|
2
|
+
|
|
3
|
+
**Extends**: the existing `phase9_circulation.md` (circulation email template). This document covers the full internal → external → journal three-round orchestration.
|
|
4
|
+
|
|
5
|
+
## 3-tier structure
|
|
6
|
+
|
|
7
|
+
| Tier | Reviewer | Output | Blocking point |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| 1. Internal | Clinical PI (second dual rater) + methodology lead | dual-rating consensus, QUADAS-2 domain table | PI availability |
|
|
10
|
+
| 2. External | Adversarial GPT review + independent peer (optional) | critique memo, defensive-tone audit | — |
|
|
11
|
+
| 3. Journal | Editorial + peer reviewers | reject/revise/accept, Response matrix | — |
|
|
12
|
+
|
|
13
|
+
## Core rules
|
|
14
|
+
|
|
15
|
+
### RO-1. Dual-rating work ships as a trio: "figure + per-study table + supplementary", together
|
|
16
|
+
- **Problem pattern**: A QUADAS-2 traffic-light figure ships without an accompanying per-study domain table → PRISMA-DTA Item 19 remains PARTIAL. The supplementary table must be planned alongside the figure, not added one revision later.
|
|
17
|
+
- **Rule**: Plan dual-rating outputs such as QUADAS-2 / RoB2 / GRADE as a three-part set at the design stage. A figure alone does not complete PRISMA-DTA Item 19.
|
|
18
|
+
|
|
19
|
+
### RO-2. Secure the "second-reviewer lead time" before sending the circulation package
|
|
20
|
+
- **Problem pattern**: Manuscript circulated after only first-reviewer screening → the second-reviewer dual rating then blocks the entire revision cycle for weeks, leaving PRISMA Item 9 PARTIAL.
|
|
21
|
+
- **Rule**: Confirm the clinical PI's second-rating availability window before writing the circulation email. Put blocking items as a bullet at the very top of the email body. Add a "PI availability window" field to the circulation template.
|
|
22
|
+
|
|
23
|
+
### RO-3. External review specializes in "defensive tone / bias-inflation / upper-bound framing"
|
|
24
|
+
- **Problem pattern**: External adversarial review surfaces over-defensive Methods prose (multi-paragraph justifications for pre-specified protocol deviations) and flags that a homogeneity statistic (e.g., Sp I²=0%) is driven by universalized bias rather than true between-study agreement.
|
|
25
|
+
- **Rule**: Include in the external adversarial-review prompt: (a) a defensive-tone audit (check that protocol-deviation explanations in Methods are ≤3 sentences), (b) a bias-driven homogeneity interpretation check, and (c) an upper-bound/lower-bound framing check. Offload detailed rationale to the Supplement.
|
|
26
|
+
|
|
27
|
+
### RO-4. The Response matrix tracks reviewer reply + manuscript edit + supplement together
|
|
28
|
+
- **Problem pattern**: During revision, a numeric value (e.g., a subgroup p-value) changes between versions with no before/after diff recorded in the Response matrix → the reviewer's re-review cannot verify the update.
|
|
29
|
+
- **Rule**: For each comment row in the Response matrix, record (a) the reviewer's original text, (b) a response summary, (c) the manuscript edit locator (section/line), and (d) whether a number changed, tagged `[VERIFY-CSV]`. Remove all tags on submission day.
|
|
30
|
+
|
|
31
|
+
### RO-5. Consolidate protocol deviations into a single PROSPERO amendment
|
|
32
|
+
- **Problem pattern**: Analysis-framework deviation, subgroup deviation, and search-amendment notes split across three manuscript sections and three separate tracker files → the PROSPERO amendment loses provenance.
|
|
33
|
+
- **Rule**: One file at the project root, `protocol_deviations_tracker.md`. Bundle them under one ID when submitting the PROSPERO amendment. Use a single citation in the manuscript too.
|
|
34
|
+
|
|
35
|
+
## Templates
|
|
36
|
+
|
|
37
|
+
- Circulation email: see the existing `phase9_circulation.md`. Per RO-2 of this document, propose adding a "PI availability window" field.
|
|
38
|
+
- Internal peer review memo: `internal_peer_review_MA{n}_v{N}_{date}.md`
|
|
39
|
+
- External GPT review memo: `external_review_gpt_MA{n}_{date}.md`
|
|
40
|
+
- Response matrix: the existing `/revise` skill template. Per RO-4, add a `[VERIFY-CSV]` field.
|