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,640 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ma-scout
|
|
3
|
+
description: Meta-analysis topic discovery and feasibility assessment. Professor-first (profile → gap) or Topic-first (question → gap → co-author). Pre-protocol phase from idea to ranked topic list.
|
|
4
|
+
triggers: ma-scout, MA 주제 찾기, professor MA, 메타분석 주제, MA gap, topic-first MA, 트렌드 MA, meta-analysis topic, 교수님 분석, 연구 분석
|
|
5
|
+
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
model: opus
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# MA Scout Skill
|
|
10
|
+
|
|
11
|
+
You are helping a medical researcher discover meta-analysis topics.
|
|
12
|
+
Two modes are available depending on the starting point.
|
|
13
|
+
|
|
14
|
+
This skill handles the **pre-protocol phase** — from idea to ranked topic list.
|
|
15
|
+
For actual MA execution (PROSPERO, screening, analysis), hand off to `/meta-analysis`.
|
|
16
|
+
|
|
17
|
+
## Mode Selection
|
|
18
|
+
|
|
19
|
+
Determine the mode from user input:
|
|
20
|
+
|
|
21
|
+
| Signal | Mode |
|
|
22
|
+
|--------|------|
|
|
23
|
+
| Professor name or profile URL provided | **A: Professor-first** |
|
|
24
|
+
| Clinical question, keyword, trend, or "find me a topic" | **B: Topic-first** |
|
|
25
|
+
| Both supplied (e.g., "this topic with this professor") | **A** (topic as filter) |
|
|
26
|
+
|
|
27
|
+
If ambiguous, ask the user whether to search by professor (supervisor-first) or by
|
|
28
|
+
topic (question-first).
|
|
29
|
+
|
|
30
|
+
## Communication Rules
|
|
31
|
+
|
|
32
|
+
- Communicate with the user in their preferred language (typically Korean).
|
|
33
|
+
- Research questions, PICO/PIRD, and README content in English.
|
|
34
|
+
- Medical terminology always in English.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Inputs
|
|
39
|
+
|
|
40
|
+
### Mode A: Professor-first
|
|
41
|
+
- Professor name (native-language + English)
|
|
42
|
+
- Profile URL (ScholarWorks, SKKU Faculty, Google Scholar, ORCID)
|
|
43
|
+
- PubMed author link (preferably with cauthor_id for disambiguation)
|
|
44
|
+
- Known specialty (e.g., "thoracic imaging", "abdominal imaging")
|
|
45
|
+
- Affiliation history (e.g., "Hospital A → Hospital B → retired")
|
|
46
|
+
- Minimum required: **name + at least one profile URL or PubMed link**
|
|
47
|
+
|
|
48
|
+
### Mode B: Topic-first
|
|
49
|
+
- Clinical question or keyword (e.g., "AI for lung-nodule malignancy prediction", "dual-energy CT body composition")
|
|
50
|
+
- Radiology subspecialty scope (e.g., thoracic, abdominal, neuro)
|
|
51
|
+
- MA type preference (DTA, prognostic, intervention — optional)
|
|
52
|
+
- Desired role: solo first author / co-first / supervisor-matched
|
|
53
|
+
- Minimum required: **clinical question or keyword**
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Workflow
|
|
58
|
+
|
|
59
|
+
> **Mode A (Professor-first):** Phase 0 → 1 → 2 → 3 → 4 → 5
|
|
60
|
+
> **Mode B (Topic-first):** T-Phase 0 → T-1 → T-2 → T-3 → T-4 → T-5
|
|
61
|
+
> Phase 2 (MA Gap Analysis) and Phase 4 (README template) are shared between both modes.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
# ═══════════════════════════════════════════
|
|
66
|
+
# MODE A: PROFESSOR-FIRST WORKFLOW
|
|
67
|
+
# ═══════════════════════════════════════════
|
|
68
|
+
|
|
69
|
+
### Phase 0: Disambiguation & Context Confirmation
|
|
70
|
+
|
|
71
|
+
**Goal:** Resolve author identity before any search, and confirm user's relationship context.
|
|
72
|
+
|
|
73
|
+
**CRITICAL — Do this BEFORE any PubMed search:**
|
|
74
|
+
|
|
75
|
+
1. **Resolve full English name first:**
|
|
76
|
+
- If cauthor_id is provided → fetch that specific PMID page to get full name + affiliation
|
|
77
|
+
- NEVER start with initials-only search (e.g., "Ha HK") — common Korean initials cause massive contamination
|
|
78
|
+
- First search must be `"[Full Name]"[Author]` (e.g., `"Ha Hyun Kwon"[Author]`)
|
|
79
|
+
|
|
80
|
+
2. **Confirm affiliation chain with user:**
|
|
81
|
+
- Ask the user whether `{detected affiliation}` matches the professor's history,
|
|
82
|
+
and request the user's relationship to the professor so topic proposals can be
|
|
83
|
+
tuned accordingly.
|
|
84
|
+
- This prevents wrong-institution assumptions
|
|
85
|
+
- Skip only if user already provided explicit affiliation history
|
|
86
|
+
|
|
87
|
+
3. **Profile URL fallback chain** (Scopus requires auth, so plan alternatives):
|
|
88
|
+
- 1st: PubMed full name search (always works)
|
|
89
|
+
- 2nd: Google Scholar profile (WebSearch `"[Full Name]" radiology scholar`)
|
|
90
|
+
- 3rd: ResearchGate profile (WebSearch `"[Full Name]" researchgate radiology`)
|
|
91
|
+
- 4th: ScholarWorks / SKKU / university faculty page (if URL provided)
|
|
92
|
+
- Last: Scopus/ScienceDirect (often fails due to auth — do NOT rely on it)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Phase 1: Profile Exploration (E-utilities API)
|
|
97
|
+
|
|
98
|
+
**Goal:** Identify the professor's 5-6 distinct research pillars using PubMed E-utilities API.
|
|
99
|
+
|
|
100
|
+
**CRITICAL — Use E-utilities API, NOT WebFetch for PubMed:**
|
|
101
|
+
- Scripts: `~/.claude/skills/search-lit/references/pubmed_eutils.sh` + `parse_pubmed.py`
|
|
102
|
+
- Rate limit: 350ms between calls (100ms with NCBI_API_KEY)
|
|
103
|
+
- These are faster, more reliable, and return structured data (JSON/XML)
|
|
104
|
+
|
|
105
|
+
**Step 1 — Total publication count + PMID list:**
|
|
106
|
+
```bash
|
|
107
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
108
|
+
'"[Full Name]"[Author]' 200 \
|
|
109
|
+
| python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esearch
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Step 2 — Fetch metadata for MeSH-based clustering (parallel):**
|
|
113
|
+
```bash
|
|
114
|
+
# Get PMIDs from Step 1, then fetch summaries
|
|
115
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh fetch_json \
|
|
116
|
+
"PMID1,PMID2,..." \
|
|
117
|
+
| python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esummary
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Step 3 — Topic-specific counts (launch 4-5 searches in parallel via Bash):**
|
|
121
|
+
```bash
|
|
122
|
+
# Run these in parallel Bash calls
|
|
123
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
124
|
+
'"[Full Name]"[Author] AND "keyword1"' 5
|
|
125
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
126
|
+
'"[Full Name]"[Author] AND "keyword2"' 5
|
|
127
|
+
# ... repeat for each suspected pillar keyword
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Step 4 — MeSH term extraction for automatic pillar clustering:**
|
|
131
|
+
```bash
|
|
132
|
+
# Fetch full XML for top-cited papers to extract MeSH headings
|
|
133
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh fetch \
|
|
134
|
+
"PMID1,PMID2,...,PMID20" \
|
|
135
|
+
| python3 -c "
|
|
136
|
+
import sys, xml.etree.ElementTree as ET
|
|
137
|
+
from collections import Counter
|
|
138
|
+
root = ET.fromstring(sys.stdin.read())
|
|
139
|
+
mesh_counts = Counter()
|
|
140
|
+
for article in root.findall('.//PubmedArticle'):
|
|
141
|
+
for mh in article.findall('.//MeshHeading/DescriptorName'):
|
|
142
|
+
mesh_counts[mh.text] += 1
|
|
143
|
+
for term, count in mesh_counts.most_common(30):
|
|
144
|
+
print(f'{count:3d} {term}')
|
|
145
|
+
"
|
|
146
|
+
```
|
|
147
|
+
→ Top MeSH terms reveal natural research pillars (e.g., "Colonography, Computed Tomographic" = CTC pillar).
|
|
148
|
+
|
|
149
|
+
**Step 5 — Google Scholar profile (parallel with PubMed calls):**
|
|
150
|
+
- WebSearch: `"[Full Name]" radiology scholar google` for h-index, citation data
|
|
151
|
+
|
|
152
|
+
**Output: Pillar Summary Table**
|
|
153
|
+
|
|
154
|
+
| Pillar | Domain | Representative keywords | MeSH terms | Est. # papers |
|
|
155
|
+
|--------|--------|-------------------------|-----------|---------------|
|
|
156
|
+
| 1 | ... | ... | ... | ~N+ |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### Phase 2: MA Gap Analysis (Multi-Source)
|
|
161
|
+
|
|
162
|
+
**Goal:** For each pillar, determine if a viable MA topic exists using PubMed + Consensus + Scholar Gateway + bioRxiv.
|
|
163
|
+
|
|
164
|
+
For each pillar (run in parallel using meta-analyst agents):
|
|
165
|
+
|
|
166
|
+
#### 2a. PubMed E-utilities — Existing MAs + Primary studies
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Existing MAs (structured count)
|
|
170
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
171
|
+
'[pillar keywords] AND ("meta-analysis"[pt] OR "systematic review"[pt])' 50
|
|
172
|
+
|
|
173
|
+
# Primary studies with extractable outcomes
|
|
174
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
175
|
+
'[pillar keywords] AND ("sensitivity" OR "specificity" OR "accuracy" OR "prognosis" OR "outcome")' 50
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### 2b. Consensus MCP — Semantic MA gap detection
|
|
179
|
+
|
|
180
|
+
Use `mcp__claude_ai_Consensus__search` to find existing SRs/MAs that PubMed keyword search might miss:
|
|
181
|
+
```
|
|
182
|
+
query: "systematic review OR meta-analysis [pillar topic] [imaging modality]"
|
|
183
|
+
```
|
|
184
|
+
Consensus returns citation-ranked results — check if any highly-cited MA already covers the proposed scope.
|
|
185
|
+
**Limit:** max 3 Consensus calls per Phase 2 batch (rate limit).
|
|
186
|
+
|
|
187
|
+
#### 2c. Scholar Gateway — Semantic similarity search
|
|
188
|
+
|
|
189
|
+
Use `mcp__claude_ai_Scholar_Gateway__semanticSearch` for:
|
|
190
|
+
- Finding MAs with different terminology (e.g., "pooled analysis" instead of "meta-analysis")
|
|
191
|
+
- Detecting scope-overlapping MAs that use different keywords
|
|
192
|
+
- Identifying methodological review papers that partially cover the topic
|
|
193
|
+
|
|
194
|
+
#### 2d. bioRxiv/medRxiv — In-press competition detection
|
|
195
|
+
|
|
196
|
+
Use `mcp__claude_ai_bioRxiv__search_preprints` to catch:
|
|
197
|
+
- MAs posted as preprints but not yet indexed in PubMed
|
|
198
|
+
- Ongoing SR/MA protocols shared as preprints
|
|
199
|
+
- Very recent primary studies that could change feasibility
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
query: "[pillar keywords] meta-analysis OR systematic review"
|
|
203
|
+
server: "medrxiv" (for clinical topics)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
#### 2e. Assessment matrix
|
|
207
|
+
|
|
208
|
+
| Factor | Criteria |
|
|
209
|
+
|--------|----------|
|
|
210
|
+
| MA gap | 0 existing = best, 1-3 = check scope overlap, >5 = saturated |
|
|
211
|
+
| Primary k | ≥8 for DTA, ≥6 for prognostic (minimum), ≥15 ideal |
|
|
212
|
+
| Recency | Last MA >5 years old = update opportunity |
|
|
213
|
+
| Competition | Check 2024-2026 for very recent MAs that block entry |
|
|
214
|
+
|
|
215
|
+
#### 2f. PROSPERO competition check (MANDATORY)
|
|
216
|
+
|
|
217
|
+
- Search PROSPERO via WebSearch: `site:crd.york.ac.uk/prospero [topic keywords]`
|
|
218
|
+
- Also try WebFetch: `https://www.crd.york.ac.uk/prospero/#searchadvanced`
|
|
219
|
+
- Look for registered-but-unpublished protocols that could block entry
|
|
220
|
+
- If PROSPERO match found → flag as 🚫 competition risk in ranking
|
|
221
|
+
|
|
222
|
+
#### 2g. Realistic k estimation
|
|
223
|
+
|
|
224
|
+
- Raw PubMed hit count is NOT the real k — most studies lack 2x2 data or HR
|
|
225
|
+
- Apply conservative discount: **k_realistic ≈ raw_count × 0.15–0.30** for DTA topics
|
|
226
|
+
- Flag if k_realistic < 8 (DTA) or < 6 (prognostic) as ⚠️ feasibility risk
|
|
227
|
+
- Report both raw and realistic estimates, e.g., `estimated k: ~130 (raw) → ~20–40 (extractable DTA data)`
|
|
228
|
+
|
|
229
|
+
#### 2h. Niche subtopic discovery (if pillar appears saturated)
|
|
230
|
+
|
|
231
|
+
- AI/radiomics angle on a classical topic
|
|
232
|
+
- Specific modality comparison (e.g., CEUS vs MRI)
|
|
233
|
+
- Treatment response (vs diagnosis which is often saturated)
|
|
234
|
+
- Specific subpopulation or disease subtype
|
|
235
|
+
- Use Consensus to check if the niche angle has already been covered
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### Phase 3: Topic Ranking
|
|
240
|
+
|
|
241
|
+
**Goal:** Rank all viable topics by composite score.
|
|
242
|
+
|
|
243
|
+
Score each candidate on 5 criteria (★1-5):
|
|
244
|
+
|
|
245
|
+
| Criteria | Weight | Description |
|
|
246
|
+
|----------|--------|-------------|
|
|
247
|
+
| **Professor fit** | Highest | Core area of the professor's career, publication count, distinctive contribution |
|
|
248
|
+
| **MA gap** | High | No prior MA > ≥5 yr since last MA > recent MA exists |
|
|
249
|
+
| **Feasibility (k)** | High | Number of includable studies and extractability of 2×2 or HR data |
|
|
250
|
+
| **Clinical impact** | Medium | Whether the topic directly informs clinical decision-making |
|
|
251
|
+
| **Execution ease** | Medium | Completable from literature alone; difficulty of managing heterogeneity |
|
|
252
|
+
|
|
253
|
+
**Output: Ranked Topic Table**
|
|
254
|
+
|
|
255
|
+
| Rank | Topic | Professor's Pillar | Prior MA | Estimated k (raw→realistic) | PROSPERO competition | Verdict |
|
|
256
|
+
|------|-------|--------------------|----------|-----------------------------|----------------------|---------|
|
|
257
|
+
| 1 | ... | ... | 0 | ~98 → 15–30 | None | ✅ Best fit |
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
### Phase 4: Folder & README Scaffolding
|
|
262
|
+
|
|
263
|
+
**Goal:** Create project folders and README for each viable topic.
|
|
264
|
+
|
|
265
|
+
1. **Folder location:** `{working_dir}/ma-scout/{initials}_{professor_name}/`
|
|
266
|
+
2. **Naming convention:** `{NN}_{topic_slug}/` (within professor folder)
|
|
267
|
+
- Professor folder: `{initials}_{name}` (e.g., `KDK_Kim`, `LKS_Lee`)
|
|
268
|
+
- NN: sequential number within professor (01, 02, ...)
|
|
269
|
+
- topic_slug: English, underscore-separated
|
|
270
|
+
- Check existing folders with `ls` before creating
|
|
271
|
+
|
|
272
|
+
3. **README.md template (PROSPERO-ready):**
|
|
273
|
+
Load the bilingual template block from
|
|
274
|
+
`${CLAUDE_SKILL_DIR}/references/project_readme_template.md` and copy it into
|
|
275
|
+
`{topic_folder}/README.md`. The reference covers both supervised (Mode A) and
|
|
276
|
+
solo-mode (Mode B, no supervisor) variants and contains the PICO/PIRD frame,
|
|
277
|
+
preliminary search, target journal table, and backward-planned timeline.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
### Phase 5: Output Summary
|
|
282
|
+
|
|
283
|
+
**Goal:** Persist findings for the user.
|
|
284
|
+
|
|
285
|
+
1. Save the ranked topic table and README files to the working directory.
|
|
286
|
+
2. Summarize: total topics scanned, viable topics found, recommended next steps.
|
|
287
|
+
3. Suggest the user save results to their project management system (e.g., `/manage-project`).
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Niche Topic Discovery Heuristics
|
|
292
|
+
|
|
293
|
+
When all major pillars are saturated (>5 prior MAs), try these angles:
|
|
294
|
+
|
|
295
|
+
1. **"First MA" rule:** Professor's most unique/niche subtopic where MA = 0
|
|
296
|
+
2. **AI/radiomics overlay:** Classical imaging topic + AI approach = new MA angle
|
|
297
|
+
3. **Treatment response:** Diagnosis MAs saturated → treatment monitoring MA often open
|
|
298
|
+
4. **Modality comparison:** Head-to-head (e.g., CEUS vs MRI) often underserved
|
|
299
|
+
5. **Guideline gap:** Professor authored guidelines → MA supporting/updating those guidelines
|
|
300
|
+
6. **Geographic/population niche:** Regional population-specific MA (e.g., parasitic diseases, TB)
|
|
301
|
+
7. **Temporal update:** Last MA >5 years old + significant new primary studies since
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Quality Gates
|
|
306
|
+
|
|
307
|
+
Before finalizing a topic as viable:
|
|
308
|
+
|
|
309
|
+
- [ ] **Author identity confirmed** — full name resolved via E-utilities efetch, no initials-only contamination
|
|
310
|
+
- [ ] **Affiliation confirmed** with user (or from reliable source)
|
|
311
|
+
- [ ] Confirmed MA = 0 or last MA >5 years (via PubMed E-utilities, not assumption)
|
|
312
|
+
- [ ] **Cross-validated via Consensus/Scholar Gateway** — no hidden MAs with different terminology
|
|
313
|
+
- [ ] **bioRxiv/medRxiv checked** — no preprint MA in progress
|
|
314
|
+
- [ ] Confirmed k_realistic ≥ 8 (DTA) or ≥ 6 (prognostic) after discount
|
|
315
|
+
- [ ] **PROSPERO searched** — no registered competing protocol found
|
|
316
|
+
- [ ] No 2024-2026 competing MA in press (check PubMed + preprints)
|
|
317
|
+
- [ ] Professor's publication record demonstrates clear authority in this area
|
|
318
|
+
- [ ] Research question is specific enough for PROSPERO registration
|
|
319
|
+
- [ ] **README contains:** complete PICO/PIRD, PubMed search strategy, Embase draft, target journal with IF, timeline
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Handoff
|
|
324
|
+
|
|
325
|
+
After MA Scout completes:
|
|
326
|
+
- To **`/meta-analysis`**: When a topic is approved and ready for PROSPERO protocol (README has PICO + search strategy ready)
|
|
327
|
+
- To **`manage-project`**: When project folder needs full scaffolding
|
|
328
|
+
- To **`search-lit`**: When deeper preliminary search is needed before committing
|
|
329
|
+
- To **`/analyze-stats`**: When feasibility requires power/sample-size calculation for the estimated k
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Parallel Execution Strategy
|
|
334
|
+
|
|
335
|
+
For efficiency, launch multiple agents and API calls in parallel:
|
|
336
|
+
|
|
337
|
+
**Phase 0 (Identity):**
|
|
338
|
+
1. E-utilities esearch: `"[Full Name]"[Author]` → total count + PMIDs (FIRST)
|
|
339
|
+
2. E-utilities efetch: top 20 PMIDs → MeSH terms → automatic pillar clustering
|
|
340
|
+
|
|
341
|
+
**Phase 1 (Profile — all parallel):**
|
|
342
|
+
3. Bash × 4-5: E-utilities esearch with topic-specific filters (parallel Bash calls)
|
|
343
|
+
4. WebSearch: Google Scholar profile
|
|
344
|
+
5. WebFetch: any provided profile URLs (skip Scopus)
|
|
345
|
+
|
|
346
|
+
**Phase 2 (MA Gap — multi-source parallel):**
|
|
347
|
+
6. Up to 4 meta-analyst agents in parallel, each covering 1-2 pillars
|
|
348
|
+
7. Each agent runs ALL of:
|
|
349
|
+
- E-utilities esearch: existing MA count + primary study count
|
|
350
|
+
- Consensus MCP: semantic MA search (max 3 calls total across all agents)
|
|
351
|
+
- Scholar Gateway: scope-overlap check
|
|
352
|
+
- bioRxiv/medRxiv: preprint MA detection
|
|
353
|
+
- PROSPERO: competition check (WebSearch)
|
|
354
|
+
8. Each agent reports: raw k, realistic k (15-30% discount), all sources checked
|
|
355
|
+
|
|
356
|
+
**Phase 3 (Ranking):** Sequential, uses Phase 2 outputs.
|
|
357
|
+
|
|
358
|
+
**Phase 4 (Scaffolding):** Sequential, creates folders + PROSPERO-ready READMEs.
|
|
359
|
+
|
|
360
|
+
Total (Mode A): 5-8 parallel agents per professor, ~8-12 minutes per professor.
|
|
361
|
+
|
|
362
|
+
### Mode B Parallel Strategy
|
|
363
|
+
|
|
364
|
+
**T-Phase 0:** Sequential (user interaction for scope clarification).
|
|
365
|
+
|
|
366
|
+
**T-Phase 1 (Landscape — all angles in parallel):**
|
|
367
|
+
1. Per angle: Bash (PubMed MA count) + Bash (primary k) + Consensus + bioRxiv + PROSPERO
|
|
368
|
+
2. 3-5 angles × 5 sources = 15-25 parallel calls
|
|
369
|
+
|
|
370
|
+
**T-Phase 2 (Deep-dive):** Same as Mode A Phase 2, only for viable angles (typically 1-2).
|
|
371
|
+
|
|
372
|
+
**T-Phase 4 (Co-author — if needed):**
|
|
373
|
+
3. Bash: PubMed author frequency search
|
|
374
|
+
4. WebSearch: Google Scholar profiles for top candidates
|
|
375
|
+
|
|
376
|
+
Total (Mode B): ~5-8 minutes per topic scan (faster than Mode A — no profile exploration).
|
|
377
|
+
|
|
378
|
+
### Known Pitfalls (from 3 professor analyses)
|
|
379
|
+
- Common Korean/Asian initials (e.g., "Lee KS", "Kim DK") return 300+ papers with massive contamination. Always use full name first.
|
|
380
|
+
- Scopus/ScienceDirect → 403 or redirect to login. Never rely on Scopus as primary data source.
|
|
381
|
+
- Raw PubMed counts overestimate by 3-7x. ~130 hits often means 20-40 with extractable DTA data.
|
|
382
|
+
- Professor may have moved institutions. Don't assume affiliation without verification.
|
|
383
|
+
- **Consensus rate limit:** Max 3 batch calls. If rate-limited, wait 30s and retry once.
|
|
384
|
+
- **E-utilities rate limit:** 350ms between calls (100ms with NCBI_API_KEY). Scripts handle this automatically.
|
|
385
|
+
- **bioRxiv MCP:** Use `server: "medrxiv"` for clinical topics, `server: "biorxiv"` for preclinical.
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
# ═══════════════════════════════════════════
|
|
390
|
+
# MODE B: TOPIC-FIRST WORKFLOW
|
|
391
|
+
# ═══════════════════════════════════════════
|
|
392
|
+
|
|
393
|
+
### T-Phase 0: Topic Clarification & Scope
|
|
394
|
+
|
|
395
|
+
**Goal:** Refine the user's clinical question into a searchable, PROSPERO-registrable scope.
|
|
396
|
+
|
|
397
|
+
1. **Parse the input** — extract:
|
|
398
|
+
- Disease/condition (e.g., "lung nodule", "hepatocellular carcinoma")
|
|
399
|
+
- Imaging modality or intervention (e.g., "dual-energy CT", "AI CAD")
|
|
400
|
+
- Outcome type: DTA (Se/Sp), prognostic (HR/OR), intervention (RR/MD), dosimetry
|
|
401
|
+
- Population specifics (e.g., "screening setting", "cirrhotic patients")
|
|
402
|
+
|
|
403
|
+
2. **Expand to neighboring angles** — propose 3-5 variations:
|
|
404
|
+
```
|
|
405
|
+
user input: "AI for lung nodule malignancy prediction"
|
|
406
|
+
→ variant 1: AI vs radiologist for lung nodule malignancy prediction (DTA)
|
|
407
|
+
→ variant 2: Radiomics for lung nodule malignancy (DTA)
|
|
408
|
+
→ variant 3: Deep learning for incidental pulmonary nodule management (prognostic)
|
|
409
|
+
→ variant 4: AI-assisted Lung-RADS upgrade accuracy (DTA)
|
|
410
|
+
→ variant 5: Low-dose CT AI for lung cancer screening (DTA)
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
3. **User selects 1-3 angles** to investigate further.
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
### T-Phase 1: Landscape Scan (Multi-Source)
|
|
418
|
+
|
|
419
|
+
**Goal:** For each selected angle, rapidly assess the MA landscape.
|
|
420
|
+
|
|
421
|
+
**Run all angles in parallel. For each angle:**
|
|
422
|
+
|
|
423
|
+
#### 1a. PubMed — Existing MA count
|
|
424
|
+
```bash
|
|
425
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
426
|
+
'[topic keywords] AND ("meta-analysis"[pt] OR "systematic review"[pt])' 50
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
#### 1b. PubMed — Primary study pool
|
|
430
|
+
```bash
|
|
431
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
432
|
+
'[topic keywords] AND ("sensitivity" OR "specificity" OR "hazard" OR "outcome")' 100
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
#### 1c. Consensus MCP — Semantic MA discovery
|
|
436
|
+
```
|
|
437
|
+
query: "systematic review [topic] [modality]"
|
|
438
|
+
```
|
|
439
|
+
Check for MAs using different terminology.
|
|
440
|
+
|
|
441
|
+
#### 1d. bioRxiv/medRxiv — Preprint competition
|
|
442
|
+
```
|
|
443
|
+
query: "[topic] meta-analysis"
|
|
444
|
+
server: "medrxiv"
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
#### 1e. PROSPERO — Registered protocols
|
|
448
|
+
WebSearch: `site:crd.york.ac.uk/prospero [topic keywords]`
|
|
449
|
+
|
|
450
|
+
**Output: Landscape Summary Table**
|
|
451
|
+
|
|
452
|
+
| Variant | Existing MAs | Primary k (raw) | k (realistic) | PROSPERO | Preprint MA | Verdict |
|
|
453
|
+
|---------|--------------|-----------------|---------------|----------|-------------|---------|
|
|
454
|
+
| 1 | 3 | 120 | 18-36 | 1 | 0 | ⚠️ Competitive |
|
|
455
|
+
| 2 | 0 | 85 | 13-25 | 0 | 0 | ✅ Optimal |
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
### T-Phase 2: Feasibility Deep-Dive
|
|
460
|
+
|
|
461
|
+
**Goal:** For viable angles (MA ≤ 2, no PROSPERO conflict), run full gap analysis.
|
|
462
|
+
|
|
463
|
+
This phase uses the **same Phase 2 (MA Gap Analysis)** as Mode A — steps 2a through 2h.
|
|
464
|
+
The only difference: no "Professor fit" to evaluate, so focus on:
|
|
465
|
+
- **Gap certainty** — are existing MAs truly non-overlapping with proposed scope?
|
|
466
|
+
- **k quality** — are primary studies heterogeneous enough to warrant MA, or too uniform?
|
|
467
|
+
- **User's domain fit** — does this align with user's radiology AI / imaging expertise?
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
### T-Phase 3: Topic Ranking (Topic-first weights)
|
|
472
|
+
|
|
473
|
+
**Goal:** Rank viable topics with weights adjusted for topic-first approach.
|
|
474
|
+
|
|
475
|
+
| Criteria | Weight | Description |
|
|
476
|
+
|----------|--------|-------------|
|
|
477
|
+
| **MA gap** | Highest | No existing MA > update opportunity > saturated |
|
|
478
|
+
| **Feasibility (k)** | Highest | k_realistic ≥ 8 (DTA) or ≥ 6 (prognostic) |
|
|
479
|
+
| **User domain fit** | High | Does it match the user's area of expertise? |
|
|
480
|
+
| **Clinical impact** | Medium | Potential to change guidelines; directly tied to clinical decisions |
|
|
481
|
+
| **Co-author availability** | Medium | Access to a domain expert (existing relationship or easy to reach) |
|
|
482
|
+
| **Execution ease** | Medium | Can be done solo vs requires expert interpretation |
|
|
483
|
+
|
|
484
|
+
**Output: Ranked Topic Table**
|
|
485
|
+
|
|
486
|
+
| Rank | Topic | Existing MAs | Est. k | PROSPERO | Co-author needed | Overall |
|
|
487
|
+
|------|-------|--------------|--------|----------|------------------|---------|
|
|
488
|
+
| 1 | ... | 0 | 25 | None | Optional | ✅ Optimal |
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
### T-Phase 4: Co-Author Matching (Optional)
|
|
493
|
+
|
|
494
|
+
**Goal:** If the user wants a senior co-author, find candidates.
|
|
495
|
+
|
|
496
|
+
**Strategy 1 — Existing network (memory-based):**
|
|
497
|
+
- Check memory files for professors with overlapping expertise
|
|
498
|
+
- Cross-reference existing professor folders in the working directory
|
|
499
|
+
- Best match = professor whose pillar naturally covers this topic
|
|
500
|
+
|
|
501
|
+
**Strategy 2 — PubMed reverse search:**
|
|
502
|
+
```bash
|
|
503
|
+
# Find prolific authors in this specific topic
|
|
504
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
505
|
+
'[topic keywords] AND ("{user_country}"[Affiliation])' 100
|
|
506
|
+
```
|
|
507
|
+
Then:
|
|
508
|
+
- E-utilities efetch → extract author frequency from results
|
|
509
|
+
- Top 5 most-published authors in this niche = potential co-authors
|
|
510
|
+
- Cross-check Google Scholar for h-index and recent activity
|
|
511
|
+
|
|
512
|
+
**Strategy 3 — Self-led (no senior co-author):**
|
|
513
|
+
- Viable when: user has 2+ published MAs, topic is methodologically straightforward
|
|
514
|
+
- Still need 2nd reviewer (junior colleague or peer) — flag this in README
|
|
515
|
+
- Corresponding author = user
|
|
516
|
+
|
|
517
|
+
**Output:** Co-author recommendation table or a "solo-viable" judgment.
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
### T-Phase 5: Folder & README Scaffolding (Topic-first)
|
|
522
|
+
|
|
523
|
+
**Goal:** Create project folder and PROSPERO-ready README.
|
|
524
|
+
|
|
525
|
+
1. **Folder location:** `{working_dir}/ma-scout/TOPIC/`
|
|
526
|
+
- Topic-first projects use `TOPIC/` prefix (not professor initials)
|
|
527
|
+
- Naming: `{NN}_{Topic_Abbreviation}/` (e.g., `01_AI_Lung_Nodule_DTA/`)
|
|
528
|
+
- If co-author matched later, can be moved under professor folder
|
|
529
|
+
|
|
530
|
+
2. **README.md template:** Same PROSPERO-ready template as Mode A Phase 4 (see
|
|
531
|
+
`references/project_readme_template.md`), with these changes:
|
|
532
|
+
- `Supervisor:` → `Lead: {user_name}` or `Lead: {user_name} + {co-author}`
|
|
533
|
+
- Drop the supervisor-area row; use `Domain: {subspecialty}` instead.
|
|
534
|
+
- Rename `Professor's Authority` → `Team Expertise` (user's credentials + co-author if any)
|
|
535
|
+
- Timeline: drop the supervisor-proposal step → start directly at PROSPERO registration.
|
|
536
|
+
|
|
537
|
+
**Timeline template (self-led):**
|
|
538
|
+
| Step | Expected timing | Precondition |
|
|
539
|
+
|------|-----------------|--------------|
|
|
540
|
+
| PROSPERO registration | {YYYY-MM} | topic confirmed |
|
|
541
|
+
| Search complete | +1 week | PROSPERO registration |
|
|
542
|
+
| Screening complete | +2 weeks | 2nd reviewer secured |
|
|
543
|
+
| Data extraction | +3 weeks | screening consensus |
|
|
544
|
+
| Analysis + draft | +5 weeks | data lock |
|
|
545
|
+
| Co-author review | +7 weeks | draft complete |
|
|
546
|
+
| Submission | +8 weeks | final approval |
|
|
547
|
+
|
|
548
|
+
3. **Summary:** Same as Mode A Phase 5 — save ranked results and recommend next steps.
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
552
|
+
### Topic Discovery Heuristics (Mode B specific)
|
|
553
|
+
|
|
554
|
+
When the user asks for topic suggestions without a specific idea:
|
|
555
|
+
|
|
556
|
+
1. **Trend scan** — Search recent high-IF radiology journals for "gap in the literature" + "meta-analysis needed":
|
|
557
|
+
```bash
|
|
558
|
+
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
|
|
559
|
+
'"no meta-analysis" AND "radiology"[Journal] AND 2024:2026[dp]' 30
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
2. **Guideline update gaps** — New guidelines (ACR, ESR, RSNA) often cite lack of MA evidence:
|
|
563
|
+
- Consensus search: `"practice guideline" AND "insufficient evidence" AND [radiology subspecialty]`
|
|
564
|
+
|
|
565
|
+
3. **AI + classical imaging** — Overlay AI/DL/radiomics on well-studied classical topics:
|
|
566
|
+
- Many classical DTA topics have 10+ MAs, but AI angle has 0-1
|
|
567
|
+
|
|
568
|
+
4. **Korean/Asian population** — Population-specific MA for diseases with geographic variation:
|
|
569
|
+
- TB, NTM, parasitic diseases, gastric cancer, liver fluke, HBV-related HCC
|
|
570
|
+
|
|
571
|
+
5. **Technology adoption** — New modalities with growing evidence but no synthesis:
|
|
572
|
+
- Photon-counting CT, abbreviated MRI, contrast-enhanced mammography, AI CAD
|
|
573
|
+
|
|
574
|
+
6. **Cross-subspecialty** — Topics spanning two subspecialties often fall through MA cracks:
|
|
575
|
+
- Cardiac + thoracic (coronary CT + lung screening), neuro + MSK (spine imaging)
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
### Quality Gates (Mode B specific)
|
|
580
|
+
|
|
581
|
+
Before finalizing a topic-first MA as viable:
|
|
582
|
+
|
|
583
|
+
- [ ] Clinical question refined to PICO/PIRD (not just a keyword)
|
|
584
|
+
- [ ] MA gap confirmed via PubMed + Consensus + Scholar Gateway + bioRxiv (all 4 sources)
|
|
585
|
+
- [ ] k_realistic ≥ 8 (DTA) or ≥ 6 (prognostic) after 15-30% discount
|
|
586
|
+
- [ ] PROSPERO searched — no competing registered protocol
|
|
587
|
+
- [ ] No 2024-2026 competing MA in press or preprint
|
|
588
|
+
- [ ] User's domain expertise sufficient for clinical interpretation (or co-author identified)
|
|
589
|
+
- [ ] 2nd reviewer identified or plan to recruit
|
|
590
|
+
- [ ] README contains: complete PICO/PIRD, PubMed + Embase search strategy, target journal with IF, timeline
|
|
591
|
+
- [ ] If self-led: user has ≥ 2 published MAs (otherwise, recommend co-author)
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
|
|
595
|
+
## Phase 6: Pre-Proposal Pipeline (Post-Scout)
|
|
596
|
+
|
|
597
|
+
After MA Scout identifies viable topics, run the **pre-proposal pipeline** to prepare
|
|
598
|
+
a "ready-to-propose" package before contacting the professor.
|
|
599
|
+
|
|
600
|
+
### Pipeline Steps
|
|
601
|
+
|
|
602
|
+
1. **Search Execution** — E-utilities with broadened synonyms (retmax=200)
|
|
603
|
+
- Primary search: `[topic] AND [outcome keywords]`
|
|
604
|
+
- Existing MA search: `[topic] AND ("meta-analysis"[pt] OR "systematic review"[pt])`
|
|
605
|
+
|
|
606
|
+
2. **Metadata Collection** — `fetch_json` → `esummary` (batch 40-50 PMIDs)
|
|
607
|
+
|
|
608
|
+
3. **Title-Based Triage** — Classify as INCLUDE / MAYBE / EXCLUDE
|
|
609
|
+
- CRITICAL: Check for existing MAs within results (initial scout may miss them)
|
|
610
|
+
- Separate bronchoscopic vs percutaneous (30% contamination in CBCT topics)
|
|
611
|
+
- Flag professor's own papers (authority evidence)
|
|
612
|
+
- Flag retracted papers
|
|
613
|
+
|
|
614
|
+
4. **PRISMA Flow Draft** — Identification → Screening → Eligibility → Included (estimated)
|
|
615
|
+
|
|
616
|
+
5. **Gap Re-assessment** — Update MA count, re-position if needed:
|
|
617
|
+
- MA=0 → "first MA" | MA=1 (>5yr) → "update MA" | MA≥3 (recent) → skip/niche
|
|
618
|
+
|
|
619
|
+
6. **Output Files**:
|
|
620
|
+
- `candidates.md` — full triage table + PRISMA flow + gap finding
|
|
621
|
+
- `README.md` — updated Preliminary Search section with actual numbers
|
|
622
|
+
|
|
623
|
+
### Parallel Execution
|
|
624
|
+
- Launch up to 4 agents per wave (each topic independent)
|
|
625
|
+
- Each agent: search → fetch → triage → write files → ~5-10 min
|
|
626
|
+
- 21 topics completed in ~1 hour with 16 parallel agents
|
|
627
|
+
|
|
628
|
+
### Professor Contact Package
|
|
629
|
+
The pre-proposal gives the professor:
|
|
630
|
+
- Candidate count + gap evidence (e.g., "MA = 0, 35 studies to include")
|
|
631
|
+
- Clear role description (e.g., "independent screening review + discussion only")
|
|
632
|
+
- Urgency of PROSPERO pre-registration to secure the topic
|
|
633
|
+
|
|
634
|
+
## Anti-Hallucination
|
|
635
|
+
|
|
636
|
+
- **Never fabricate publication counts, h-index, or pillar classifications.** All numbers must come from PubMed E-utilities API output.
|
|
637
|
+
- **Never fabricate existing MA counts.** Always verify via PubMed search + PROSPERO check before claiming "MA = 0".
|
|
638
|
+
- **Never invent professor expertise or affiliation.** Confirm with user before proceeding.
|
|
639
|
+
- **k_realistic must use the 15-30% discount.** Raw PubMed counts overestimate by 3-7x. Always report both raw and realistic estimates.
|
|
640
|
+
- If PubMed returns 0 or Consensus/Scholar Gateway is unavailable, state the limitation rather than guessing.
|