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,162 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# fill-protocol — environment setup
|
|
3
|
+
#
|
|
4
|
+
# Verifies and (optionally) installs the dependencies required by fill-protocol:
|
|
5
|
+
# - LibreOffice (only required for .doc → .docx conversion of legacy templates)
|
|
6
|
+
# - Python packages: docxtpl, python-docx, pyyaml
|
|
7
|
+
#
|
|
8
|
+
# Usage:
|
|
9
|
+
# bash setup.sh check # report what is/isn't installed, do nothing
|
|
10
|
+
# bash setup.sh install # install everything that's missing (asks before each step)
|
|
11
|
+
# bash setup.sh install --yes # install without prompting (for CI / Claude auto-install)
|
|
12
|
+
# bash setup.sh # equivalent to `check`
|
|
13
|
+
|
|
14
|
+
ACTION="${1:-check}"
|
|
15
|
+
AUTO_YES=false
|
|
16
|
+
[[ "${2:-}" == "--yes" ]] && AUTO_YES=true
|
|
17
|
+
|
|
18
|
+
# ---------- helpers ----------
|
|
19
|
+
|
|
20
|
+
prompt_yn() {
|
|
21
|
+
if $AUTO_YES; then return 0; fi
|
|
22
|
+
read -r -p "$1 [y/N] " answer
|
|
23
|
+
[[ "$answer" =~ ^[Yy]$ ]]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
detect_os() {
|
|
27
|
+
case "$(uname -s)" in
|
|
28
|
+
Darwin) echo "macos" ;;
|
|
29
|
+
Linux)
|
|
30
|
+
if command -v apt-get >/dev/null 2>&1; then echo "debian"
|
|
31
|
+
elif command -v dnf >/dev/null 2>&1; then echo "fedora"
|
|
32
|
+
elif command -v pacman >/dev/null 2>&1; then echo "arch"
|
|
33
|
+
else echo "linux-unknown"; fi
|
|
34
|
+
;;
|
|
35
|
+
*) echo "unsupported" ;;
|
|
36
|
+
esac
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
find_soffice() {
|
|
40
|
+
for path in \
|
|
41
|
+
"/Applications/LibreOffice.app/Contents/MacOS/soffice" \
|
|
42
|
+
"/usr/bin/soffice" \
|
|
43
|
+
"/opt/homebrew/bin/soffice"; do
|
|
44
|
+
if [[ -x "$path" ]]; then echo "$path"; return 0; fi
|
|
45
|
+
done
|
|
46
|
+
if command -v soffice >/dev/null 2>&1; then
|
|
47
|
+
command -v soffice; return 0
|
|
48
|
+
fi
|
|
49
|
+
return 1
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# ---------- check ----------
|
|
53
|
+
|
|
54
|
+
OS=$(detect_os)
|
|
55
|
+
echo "Detected OS: $OS"
|
|
56
|
+
echo
|
|
57
|
+
|
|
58
|
+
# 1. LibreOffice
|
|
59
|
+
SOFFICE=$(find_soffice || true)
|
|
60
|
+
if [[ -n "$SOFFICE" ]]; then
|
|
61
|
+
VER=$("$SOFFICE" --version 2>&1 | head -1 || echo "?")
|
|
62
|
+
echo "✅ LibreOffice: $SOFFICE"
|
|
63
|
+
echo " $VER"
|
|
64
|
+
SOFFICE_OK=true
|
|
65
|
+
else
|
|
66
|
+
echo "❌ LibreOffice: not installed"
|
|
67
|
+
echo " (Only required for .doc → .docx conversion. .docx templates work without it.)"
|
|
68
|
+
SOFFICE_OK=false
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# 2. Python packages
|
|
72
|
+
PYBIN="${PYTHON:-python3}"
|
|
73
|
+
echo
|
|
74
|
+
echo "Python: $($PYBIN --version 2>&1)"
|
|
75
|
+
|
|
76
|
+
PY_MISSING=()
|
|
77
|
+
for pkg in docx docxtpl yaml; do
|
|
78
|
+
if $PYBIN -c "import $pkg" 2>/dev/null; then
|
|
79
|
+
echo "✅ $pkg"
|
|
80
|
+
else
|
|
81
|
+
echo "❌ $pkg"
|
|
82
|
+
PY_MISSING+=("$pkg")
|
|
83
|
+
fi
|
|
84
|
+
done
|
|
85
|
+
|
|
86
|
+
# Map import-name → pip-name (function form for bash 3.2 compatibility — macOS default)
|
|
87
|
+
pipname_for() {
|
|
88
|
+
case "$1" in
|
|
89
|
+
docx) echo "python-docx" ;;
|
|
90
|
+
docxtpl) echo "docxtpl" ;;
|
|
91
|
+
yaml) echo "pyyaml" ;;
|
|
92
|
+
*) echo "$1" ;;
|
|
93
|
+
esac
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if [[ "$ACTION" == "check" ]]; then
|
|
97
|
+
echo
|
|
98
|
+
if $SOFFICE_OK && [[ ${#PY_MISSING[@]} -eq 0 ]]; then
|
|
99
|
+
echo "All dependencies present."
|
|
100
|
+
exit 0
|
|
101
|
+
else
|
|
102
|
+
echo "Run \`bash setup.sh install\` to install missing dependencies."
|
|
103
|
+
exit 1
|
|
104
|
+
fi
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
# ---------- install ----------
|
|
108
|
+
|
|
109
|
+
if [[ "$ACTION" != "install" ]]; then
|
|
110
|
+
echo "Unknown action: $ACTION (use 'check' or 'install')"
|
|
111
|
+
exit 2
|
|
112
|
+
fi
|
|
113
|
+
|
|
114
|
+
# Install LibreOffice if missing
|
|
115
|
+
if ! $SOFFICE_OK; then
|
|
116
|
+
case "$OS" in
|
|
117
|
+
macos)
|
|
118
|
+
CMD="brew install --cask libreoffice"
|
|
119
|
+
;;
|
|
120
|
+
debian)
|
|
121
|
+
CMD="sudo apt-get install -y libreoffice"
|
|
122
|
+
;;
|
|
123
|
+
fedora)
|
|
124
|
+
CMD="sudo dnf install -y libreoffice"
|
|
125
|
+
;;
|
|
126
|
+
arch)
|
|
127
|
+
CMD="sudo pacman -S --needed libreoffice-fresh"
|
|
128
|
+
;;
|
|
129
|
+
*)
|
|
130
|
+
echo "❌ Cannot auto-install LibreOffice on $OS — install manually."
|
|
131
|
+
exit 3
|
|
132
|
+
;;
|
|
133
|
+
esac
|
|
134
|
+
echo
|
|
135
|
+
echo "About to install LibreOffice (~700 MB):"
|
|
136
|
+
echo " $CMD"
|
|
137
|
+
if prompt_yn "Proceed?"; then
|
|
138
|
+
eval "$CMD"
|
|
139
|
+
else
|
|
140
|
+
echo "Skipped LibreOffice install."
|
|
141
|
+
fi
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# Install Python packages if missing
|
|
145
|
+
if [[ ${#PY_MISSING[@]} -gt 0 ]]; then
|
|
146
|
+
PIP_PKGS=""
|
|
147
|
+
for m in "${PY_MISSING[@]}"; do PIP_PKGS="$PIP_PKGS $(pipname_for "$m")"; done
|
|
148
|
+
PIP_CMD="$PYBIN -m pip install --user --break-system-packages$PIP_PKGS"
|
|
149
|
+
echo
|
|
150
|
+
echo "About to install Python packages:"
|
|
151
|
+
echo " $PIP_CMD"
|
|
152
|
+
if prompt_yn "Proceed?"; then
|
|
153
|
+
eval "$PIP_CMD"
|
|
154
|
+
else
|
|
155
|
+
echo "Skipped Python package install."
|
|
156
|
+
fi
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
echo
|
|
160
|
+
echo "Re-running check…"
|
|
161
|
+
echo
|
|
162
|
+
exec bash "$0" check
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
schema_version: 2
|
|
2
|
+
name: fill-protocol
|
|
3
|
+
layer: A
|
|
4
|
+
owner_domain: form_filling
|
|
5
|
+
|
|
6
|
+
when_to_use: "Fill an institutional Word (.doc/.docx) template (IRB protocol, ethics application, grant form) while preserving styles, tables, fonts, and page geometry."
|
|
7
|
+
when_NOT_to_use: "Drafting the scientific content (use write-protocol); ICMJE COI forms (use fill-icmje-coi)."
|
|
8
|
+
|
|
9
|
+
inputs:
|
|
10
|
+
- "institutional Word template"
|
|
11
|
+
- "content mapping (fill_*.yaml)"
|
|
12
|
+
outputs:
|
|
13
|
+
- "filled .docx preserving the institutional template"
|
|
14
|
+
deterministic_scripts:
|
|
15
|
+
- scripts/fill_form.py
|
|
16
|
+
- scripts/inspect_template.py
|
|
17
|
+
- scripts/doc_to_docx.py
|
|
18
|
+
side_effects:
|
|
19
|
+
- writes_docx_forms
|
|
20
|
+
downstream_consumers:
|
|
21
|
+
- render-pdf-doc
|
|
22
|
+
forbidden_actions:
|
|
23
|
+
- rebuild_template_from_blank_document
|
|
24
|
+
- drop_template_styles_or_logos
|
|
25
|
+
|
|
26
|
+
# v2.1 quality card
|
|
27
|
+
purpose: "Render approved content into an institutional Word template without losing its layout, styles, or page geometry."
|
|
28
|
+
safety_boundaries:
|
|
29
|
+
- "Operates on the original template (never rebuilds from a blank Document, which strips logos/headers/styles)."
|
|
30
|
+
- "CJK eastAsia fonts and table cantSplit are enforced for Korean templates."
|
|
31
|
+
known_limitations:
|
|
32
|
+
- "Requires the institutional template file; cannot invent a missing one."
|
|
33
|
+
- "Content-controlled (SDT) fields may need manual handling in Word."
|
|
34
|
+
validation_commands:
|
|
35
|
+
- "confirm [MISS] count is 0 after fill"
|
|
36
|
+
- "soffice --headless --convert-to pdf for visual check"
|
|
37
|
+
evidence_surface: bundled_script
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: find-cohort-gap
|
|
3
|
+
description: >
|
|
4
|
+
Research gap finder for longitudinal cohort databases. Profiles cohort strengths,
|
|
5
|
+
matches PI expertise, scans literature saturation, and outputs ranked topic proposals
|
|
6
|
+
with gap evidence. Works with any cohort: NHIS, UK Biobank, institutional EMR, health
|
|
7
|
+
checkup registries, or disease-specific registries.
|
|
8
|
+
triggers: cohort gap, research topic, DB 주제, 코호트 갭, gap analysis, 연구주제 찾기, find research gap, 주제 발굴
|
|
9
|
+
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
10
|
+
model: opus
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Find-Cohort-Gap Skill
|
|
14
|
+
|
|
15
|
+
You are assisting a medical researcher in systematically discovering novel, publishable
|
|
16
|
+
research topics from a cohort database. Your approach combines cohort variable profiling,
|
|
17
|
+
PI expertise matching, literature saturation scanning, and multi-pattern gap scoring to
|
|
18
|
+
produce ranked topic proposals with evidence of novelty.
|
|
19
|
+
|
|
20
|
+
This skill fills a gap that no existing tool addresses: **DB variables -> literature gap
|
|
21
|
+
-> research question**. Existing tools (PICO, FINER, SciSpace, Elicit) work from
|
|
22
|
+
literature to gaps. This skill works from the data outward.
|
|
23
|
+
|
|
24
|
+
## Communication Rules
|
|
25
|
+
|
|
26
|
+
- Communicate with the user in their preferred language.
|
|
27
|
+
- All literature citations, variable names, and medical terminology in English.
|
|
28
|
+
- Be direct about weak topics — kill early, save time.
|
|
29
|
+
|
|
30
|
+
## Key Directories
|
|
31
|
+
|
|
32
|
+
- **Output**: User-specified directory (default: current working directory)
|
|
33
|
+
- **References**: `${CLAUDE_SKILL_DIR}/references/` for templates and rubrics
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Phase 0: Cohort Intake
|
|
38
|
+
|
|
39
|
+
Collect cohort metadata. Use the template at `${CLAUDE_SKILL_DIR}/references/cohort_profile_template.md`.
|
|
40
|
+
|
|
41
|
+
Required information:
|
|
42
|
+
1. **Cohort name and setting** (institution, country, population type)
|
|
43
|
+
2. **Sample size** (N at baseline, N with follow-up)
|
|
44
|
+
3. **Time span** (enrollment period, follow-up duration, measurement intervals)
|
|
45
|
+
4. **Variable categories** (demographics, labs, imaging, questionnaires, medications, procedures)
|
|
46
|
+
5. **Endpoints available** (mortality, cancer incidence, cardiovascular events, hospitalization)
|
|
47
|
+
6. **Special strengths** (serial measurements, linkage to national registries, unique population)
|
|
48
|
+
7. **Known limitations** (healthy volunteer bias, attrition, missing data patterns)
|
|
49
|
+
8. **Existing publications** from this cohort (if known — to avoid duplication)
|
|
50
|
+
|
|
51
|
+
If the user provides a data dictionary file (Excel/CSV), read it to extract variable
|
|
52
|
+
categories and construct the variable cluster map automatically.
|
|
53
|
+
|
|
54
|
+
**Gate:** Present the cohort profile summary. Confirm before proceeding.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Phase 1: PI/CA Profiling
|
|
59
|
+
|
|
60
|
+
Profile the intended PI or corresponding author to find topic-expertise alignment.
|
|
61
|
+
|
|
62
|
+
1. **Search PubMed** for the PI's recent publications (last 5 years).
|
|
63
|
+
- Use `/search-lit` E-utilities: `bash "$EUTILS" search "AuthorLastName AuthorFirstInitial[Author]" 30`
|
|
64
|
+
- Extract top keyword clusters from titles/abstracts.
|
|
65
|
+
2. **Identify specialty signals**:
|
|
66
|
+
- Academic society positions (president, board member, editor)
|
|
67
|
+
- Subspecialty focus areas
|
|
68
|
+
- Preferred journal tiers
|
|
69
|
+
3. **Build a PI keyword map**: 5-10 keyword clusters ranked by publication frequency.
|
|
70
|
+
|
|
71
|
+
If no PI is specified, skip this phase and use variable clusters alone in Phase 2.
|
|
72
|
+
|
|
73
|
+
**Output:** PI profile card (name, affiliation, top keywords, society roles, preferred journals).
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Phase 2: Intersection Matrix
|
|
78
|
+
|
|
79
|
+
Cross cohort variable clusters with PI expertise to generate candidate topics.
|
|
80
|
+
|
|
81
|
+
### Method
|
|
82
|
+
|
|
83
|
+
Create a matrix: rows = DB variable clusters, columns = PI keyword clusters.
|
|
84
|
+
Score each cell 0-3:
|
|
85
|
+
- **3**: PI has published in this exact intersection (direct match)
|
|
86
|
+
- **2**: PI's subspecialty covers this area (strong relevance)
|
|
87
|
+
- **1**: Tangential connection (possible but needs framing)
|
|
88
|
+
- **0**: No connection
|
|
89
|
+
|
|
90
|
+
### Candidate Generation
|
|
91
|
+
|
|
92
|
+
1. Extract all cells scoring 2-3 as primary candidates.
|
|
93
|
+
2. For cells scoring 1, apply the **A-B substitution test**: "Has someone published
|
|
94
|
+
[this analysis] with [a different exposure/outcome] in a similar cohort?" If yes,
|
|
95
|
+
substituting the PI's specialty variable creates a viable candidate.
|
|
96
|
+
3. Generate 20-40 candidate topic statements in PICO format:
|
|
97
|
+
- **P**: Population from the cohort
|
|
98
|
+
- **E**: Exposure/predictor variable(s)
|
|
99
|
+
- **C**: Comparison group
|
|
100
|
+
- **O**: Outcome (preferably hard endpoint)
|
|
101
|
+
|
|
102
|
+
### Discipline Alignment Filter
|
|
103
|
+
|
|
104
|
+
Before advancing candidates to saturation scanning, apply a discipline filter:
|
|
105
|
+
|
|
106
|
+
- **Who is the intended first author?** Identify their department/specialty.
|
|
107
|
+
- **Does the primary exposure variable belong to that discipline?** The first
|
|
108
|
+
author's specialty must align with the study's core variable. For example:
|
|
109
|
+
- Radiology first author → imaging variable must be the primary exposure
|
|
110
|
+
- Cardiology first author → cardiac biomarker or ECG finding as exposure
|
|
111
|
+
- Neurology first author → neurological variable or brain imaging as exposure
|
|
112
|
+
- **Kill candidates where the primary exposure is outside the first author's
|
|
113
|
+
discipline.** A strong PI match alone is insufficient if the first author
|
|
114
|
+
cannot claim ownership of the core variable.
|
|
115
|
+
|
|
116
|
+
This filter prevents generating topics where the first author's contribution
|
|
117
|
+
is not defensible at the variable level.
|
|
118
|
+
|
|
119
|
+
**Gate:** Present the intersection matrix and top 20 candidates (post-discipline
|
|
120
|
+
filter). User selects 8-12 for saturation scanning.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Phase 3: Literature Saturation Scan
|
|
125
|
+
|
|
126
|
+
For each selected candidate, determine how saturated the literature is.
|
|
127
|
+
|
|
128
|
+
### Search Strategy
|
|
129
|
+
|
|
130
|
+
For each candidate:
|
|
131
|
+
1. Build a PubMed query: `(exposure terms) AND (outcome terms) AND (cohort OR longitudinal OR prospective)`
|
|
132
|
+
2. Execute search via `/search-lit` E-utilities.
|
|
133
|
+
3. Count total results and classify:
|
|
134
|
+
|
|
135
|
+
| Grade | Count | Longitudinal? | Interpretation |
|
|
136
|
+
|-------|-------|---------------|----------------|
|
|
137
|
+
| **Blue Ocean** | 0-2 papers | N/A | First report possible. Verify the topic has audience interest. |
|
|
138
|
+
| **Green Field** | 3-10 papers, all cross-sectional | No longitudinal | **Optimal zone** — established interest, longitudinal gap wide open. |
|
|
139
|
+
| **Yellow** | 10-30 papers | Some longitudinal | Viable only with very specific angle (unique population, novel endpoint). |
|
|
140
|
+
| **Red** | 30+ papers or MA exists | Yes | Avoid unless doing NMA or using truly unique data. |
|
|
141
|
+
|
|
142
|
+
### Critical Filter
|
|
143
|
+
|
|
144
|
+
For each candidate in Green/Yellow, ask: **"Has anyone published this with serial/repeated
|
|
145
|
+
measurements?"** If no — automatic upgrade by one grade.
|
|
146
|
+
|
|
147
|
+
### "So What" Test
|
|
148
|
+
|
|
149
|
+
For each candidate, articulate 2-3 potential clinical implications of the findings.
|
|
150
|
+
If you cannot state why a clinician or policymaker would care about the result,
|
|
151
|
+
the topic fails regardless of gap score.
|
|
152
|
+
|
|
153
|
+
**Output:** Saturation table with grade, paper count, longitudinal gap status, and
|
|
154
|
+
"So What" statement for each candidate.
|
|
155
|
+
|
|
156
|
+
**Gate:** Present saturation results. User selects 3-5 finalists for deep scoring.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Phase 4: 6-Pattern Scoring + Comparison Table
|
|
161
|
+
|
|
162
|
+
Apply the 6-Pattern framework to each finalist. Score each pattern 0 or 1.
|
|
163
|
+
|
|
164
|
+
### 6 Patterns (Universal)
|
|
165
|
+
|
|
166
|
+
Read the detailed rubric at `${CLAUDE_SKILL_DIR}/references/pattern_scoring_rubric.md`.
|
|
167
|
+
|
|
168
|
+
| # | Pattern | Question | Score 1 if... |
|
|
169
|
+
|---|---------|----------|---------------|
|
|
170
|
+
| P1 | **Longitudinal Advantage** | Does the cohort's serial/repeated measurement structure create a clear edge over existing cross-sectional studies? | Cohort has 3+ timepoints for key variables AND no prior study used serial data for this topic. |
|
|
171
|
+
| P2 | **Endpoint Upgrade** | Can we escalate to a harder endpoint than existing studies? | Cohort links to mortality/cancer/CVD registries AND existing studies stop at surrogate endpoints. |
|
|
172
|
+
| P3 | **Cohort Uniqueness** | Is the cohort's population, scale, or setting distinctive? | Largest in this population, unique ethnic group, screening-based (no referral bias), or novel linkage. |
|
|
173
|
+
| P4 | **PI-Topic Alignment** | Does the PI's expertise and reputation strengthen this topic? | PI has society role or 5+ papers directly in this domain. Skip if no PI specified. |
|
|
174
|
+
| P5 | **Comparison Table Gaps** | Does the THIS STUDY column show 3+ differences vs existing papers? | Build comparison table (see below). 3+ checkmarks in THIS STUDY that are absent in all prior papers. |
|
|
175
|
+
| P6 | **Complementary Design** | Can this topic pair with another study from the same cohort? | Two studies using the same DB but different populations or complementary variables (e.g., viral vs non-viral). |
|
|
176
|
+
|
|
177
|
+
### Comparison Table Construction
|
|
178
|
+
|
|
179
|
+
For each finalist, build a table comparing the top 3-5 existing papers against THIS STUDY:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
| Feature | Author1 (Year) | Author2 (Year) | Author3 (Year) | THIS STUDY |
|
|
183
|
+
|---------|----------------|----------------|----------------|------------|
|
|
184
|
+
| Design | Cross-sectional | Cohort (5yr) | Cross-sectional | Cohort (20yr) |
|
|
185
|
+
| N | 3,200 | 8,500 | 12,000 | ~200,000 |
|
|
186
|
+
| Serial data | No | No | No | Yes (avg 5 visits) |
|
|
187
|
+
| Hard endpoint | Surrogate | Surrogate | All-cause mortality | CVD + all-cause mortality |
|
|
188
|
+
| Population | Referral | General | Screening | Health checkup (no referral bias) |
|
|
189
|
+
| Ethnicity | Western | Western | Asian (Japan) | Asian (Korea) |
|
|
190
|
+
| Subgroup analysis | No | Age only | No | Age + sex + comorbidity |
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Score Interpretation
|
|
194
|
+
|
|
195
|
+
| Total Score | Recommendation |
|
|
196
|
+
|-------------|----------------|
|
|
197
|
+
| 5-6 | Top-tier journal target (Lancet sub, JACC, J Hepatol level) |
|
|
198
|
+
| 3-4 | Specialty journal target (solid publication) |
|
|
199
|
+
| 1-2 | Restructure or kill — find a stronger angle before proceeding |
|
|
200
|
+
|
|
201
|
+
**Gate:** Present scoring results and comparison tables. User approves final ranking.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Phase 5: Feasibility Gate
|
|
206
|
+
|
|
207
|
+
For each scored finalist, verify practical feasibility.
|
|
208
|
+
|
|
209
|
+
### Checks
|
|
210
|
+
|
|
211
|
+
1. **Sample size adequacy**:
|
|
212
|
+
- Cox regression: minimum 10 events per predictor variable (EPV rule)
|
|
213
|
+
- Logistic regression: same EPV rule
|
|
214
|
+
- For large cohorts (N>100K): warn about p-value inflation — statistically
|
|
215
|
+
significant results are nearly guaranteed, so focus on **effect size thresholds**
|
|
216
|
+
(e.g., HR >1.2 or <0.8 for clinical relevance)
|
|
217
|
+
- Consider negative control strategy (EPCV) for very large samples
|
|
218
|
+
|
|
219
|
+
2. **Missing data**:
|
|
220
|
+
- Key exposure variable: <20% missing acceptable
|
|
221
|
+
- Key outcome: <5% missing
|
|
222
|
+
- If serial data: assess attrition pattern (MCAR/MAR/MNAR)
|
|
223
|
+
|
|
224
|
+
3. **Follow-up adequacy**:
|
|
225
|
+
- Outcome must have plausible latency within available follow-up
|
|
226
|
+
- Cancer outcomes: minimum 5 years
|
|
227
|
+
- CVD events: minimum 3 years
|
|
228
|
+
- Mortality: minimum 5 years
|
|
229
|
+
|
|
230
|
+
4. **Operational definition**:
|
|
231
|
+
- Can the exposure be defined from available variables?
|
|
232
|
+
- For claims data: ICD codes alone = 40-60% accuracy. Require combination
|
|
233
|
+
strategy (diagnosis + prescription + visit frequency + special codes)
|
|
234
|
+
- Cross-check expected prevalence against known epidemiological data
|
|
235
|
+
|
|
236
|
+
5. **IRB/ethics**:
|
|
237
|
+
- Is the data already IRB-approved for this type of analysis?
|
|
238
|
+
- Any additional approvals needed for data linkage?
|
|
239
|
+
|
|
240
|
+
6. **Disease Novelty Bonus** (informational, not Go/No-Go):
|
|
241
|
+
- Idiopathic etiology or debated mechanism → higher journal interest
|
|
242
|
+
- Established mechanism → needs stronger methodological novelty
|
|
243
|
+
|
|
244
|
+
### Decision
|
|
245
|
+
|
|
246
|
+
- **Go**: All checks pass.
|
|
247
|
+
- **Conditional Go**: Minor issues solvable (e.g., missing data manageable with imputation).
|
|
248
|
+
- **No-Go**: Fatal flaw (insufficient events, no valid endpoint, key variable unavailable).
|
|
249
|
+
|
|
250
|
+
**Output:** Feasibility report for each finalist with Go/Conditional/No-Go status.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Phase 6: Output — Ranked Proposals + One-Pagers
|
|
255
|
+
|
|
256
|
+
Generate the final deliverables.
|
|
257
|
+
|
|
258
|
+
### Ranked Summary Table
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
| Rank | Topic (PICO) | Saturation | 6-Pattern Score | Feasibility | Target Journal | Timeline |
|
|
262
|
+
|------|--------------|------------|-----------------|-------------|----------------|----------|
|
|
263
|
+
| 1 | ... | Green (0 longitudinal) | 5/6 | Go | JACC | 6 months |
|
|
264
|
+
| 2 | ... | Green (1 longitudinal) | 4/6 | Go | Eur Heart J | 6 months |
|
|
265
|
+
| 3 | ... | Blue (0 papers) | 3/6 | Conditional | Radiology | 8 months |
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### One-Pager for Each Finalist
|
|
269
|
+
|
|
270
|
+
Use the template at `${CLAUDE_SKILL_DIR}/references/onepager_template.md`.
|
|
271
|
+
|
|
272
|
+
Each one-pager includes:
|
|
273
|
+
1. **Title**: Working title for the study
|
|
274
|
+
2. **Background**: 3-4 sentences establishing the gap (with "Zero Papers" claim if applicable)
|
|
275
|
+
3. **Comparison Table**: THIS STUDY vs existing papers
|
|
276
|
+
4. **Objective**: Primary research question in PICO format
|
|
277
|
+
5. **Methods Summary**: Study design, key variables, statistical approach
|
|
278
|
+
6. **PI Role**: Why this PI is the right corresponding author
|
|
279
|
+
7. **Target Journal**: With rationale (PI alignment, scope match, gap fit)
|
|
280
|
+
8. **Timeline**: Realistic estimate (data preparation → analysis → drafting → submission)
|
|
281
|
+
9. **6-Pattern Score Card**: Visual breakdown of each pattern
|
|
282
|
+
|
|
283
|
+
Save one-pagers as markdown files: `{output_dir}/gap_proposal_{rank}_{short_topic}.md`
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Skill Integration
|
|
288
|
+
|
|
289
|
+
| Phase | Calls to other skills |
|
|
290
|
+
|-------|----------------------|
|
|
291
|
+
| Phase 1 (PI profiling) | `/search-lit` E-utilities for PubMed author search |
|
|
292
|
+
| Phase 3 (Saturation scan) | `/search-lit` E-utilities for topic searches |
|
|
293
|
+
| Phase 4 (Comparison table) | `/search-lit` for retrieving paper metadata |
|
|
294
|
+
| **Downstream** | Output feeds into `/design-study` → `/write-paper` pipeline |
|
|
295
|
+
|
|
296
|
+
## What This Skill Does NOT Do
|
|
297
|
+
|
|
298
|
+
- Does not perform the actual statistical analysis (use `/analyze-stats`)
|
|
299
|
+
- Does not write the full manuscript (use `/write-paper`)
|
|
300
|
+
- Does not validate study design (use `/design-study`)
|
|
301
|
+
- Does not generate references (use `/search-lit`)
|
|
302
|
+
- Does not make publication-ready figures (use `/make-figures`)
|
|
303
|
+
|
|
304
|
+
## Anti-Hallucination
|
|
305
|
+
|
|
306
|
+
- **Never fabricate references.** All citations must be verified via `/search-lit` with confirmed DOI or PMID. Mark unverified references as `[UNVERIFIED - NEEDS MANUAL CHECK]`.
|
|
307
|
+
- **Never invent clinical definitions, diagnostic criteria, or guideline recommendations.** If uncertain, flag with `[VERIFY]` and ask the user.
|
|
308
|
+
- **Never fabricate numerical results** — compliance percentages, scores, effect sizes, or sample sizes must come from actual data or analysis output.
|
|
309
|
+
- If a reporting guideline item, journal policy, or clinical standard is uncertain, state the uncertainty rather than guessing.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Cohort Profile Template
|
|
2
|
+
|
|
3
|
+
Fill in the sections below to describe the cohort database. This profile drives
|
|
4
|
+
the intersection matrix and feasibility checks.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Basic Information
|
|
9
|
+
|
|
10
|
+
- **Cohort name:**
|
|
11
|
+
- **Institution/Organization:**
|
|
12
|
+
- **Country:**
|
|
13
|
+
- **Population type:** (general population / health checkup / disease registry / claims data / hospital EMR)
|
|
14
|
+
- **Enrollment period:** (e.g., 2002-2019)
|
|
15
|
+
- **Total N at baseline:**
|
|
16
|
+
- **N with follow-up data:**
|
|
17
|
+
- **Mean/median follow-up duration:**
|
|
18
|
+
- **Measurement intervals:** (e.g., annual, biennial, at-event)
|
|
19
|
+
|
|
20
|
+
## Variable Categories
|
|
21
|
+
|
|
22
|
+
Check all that apply and list key variables in each category:
|
|
23
|
+
|
|
24
|
+
- [ ] **Demographics**: (age, sex, BMI, smoking, alcohol, exercise, income, education)
|
|
25
|
+
- [ ] **Laboratory**: (CBC, metabolic panel, lipid panel, liver function, kidney function, tumor markers, HbA1c, ...)
|
|
26
|
+
- [ ] **Imaging**: (chest X-ray, CT, ultrasound, DEXA, mammography, ...)
|
|
27
|
+
- [ ] **Questionnaires**: (PHQ-9, IPAQ, diet, sleep, quality of life, ...)
|
|
28
|
+
- [ ] **Vital signs**: (BP, heart rate, ...)
|
|
29
|
+
- [ ] **Anthropometry**: (height, weight, waist circumference, body composition, ...)
|
|
30
|
+
- [ ] **Medications**: (prescription records, drug categories, ...)
|
|
31
|
+
- [ ] **Procedures**: (surgery codes, intervention records, ...)
|
|
32
|
+
- [ ] **Diagnoses**: (ICD codes, physician diagnosis, ...)
|
|
33
|
+
|
|
34
|
+
## Endpoints Available
|
|
35
|
+
|
|
36
|
+
Check all that apply:
|
|
37
|
+
|
|
38
|
+
- [ ] **All-cause mortality** (linkage to: ___)
|
|
39
|
+
- [ ] **Cause-specific mortality** (categories: ___)
|
|
40
|
+
- [ ] **Cancer incidence** (linkage to: ___)
|
|
41
|
+
- [ ] **Cardiovascular events** (definition: ___)
|
|
42
|
+
- [ ] **Hospitalization** (source: ___)
|
|
43
|
+
- [ ] **Disease incidence** (ICD-based / physician-confirmed / registry)
|
|
44
|
+
- [ ] **Other**: ___
|
|
45
|
+
|
|
46
|
+
## Special Strengths
|
|
47
|
+
|
|
48
|
+
What makes this cohort unique? (check all that apply)
|
|
49
|
+
|
|
50
|
+
- [ ] **Serial measurements** (same variables measured repeatedly over time)
|
|
51
|
+
- [ ] **Large scale** (>100K participants)
|
|
52
|
+
- [ ] **Long follow-up** (>10 years)
|
|
53
|
+
- [ ] **National registry linkage** (mortality, cancer, insurance claims)
|
|
54
|
+
- [ ] **Screening-based** (no referral bias — general population health checkups)
|
|
55
|
+
- [ ] **Unique population** (ethnicity, occupation, geography not well-studied)
|
|
56
|
+
- [ ] **Rich phenotyping** (imaging + labs + questionnaires)
|
|
57
|
+
- [ ] **Biobank/genetic data available**
|
|
58
|
+
- [ ] **Other**: ___
|
|
59
|
+
|
|
60
|
+
## Known Limitations
|
|
61
|
+
|
|
62
|
+
- [ ] **Healthy volunteer bias** (participants may be healthier than general population)
|
|
63
|
+
- [ ] **Attrition** (estimated dropout rate: ___%)
|
|
64
|
+
- [ ] **Missing data** (key variables with >20% missing: ___)
|
|
65
|
+
- [ ] **Limited demographics** (e.g., single sex, narrow age range, single institution)
|
|
66
|
+
- [ ] **Claims-only diagnoses** (no clinical validation of ICD codes)
|
|
67
|
+
- [ ] **No imaging data**
|
|
68
|
+
- [ ] **No medication data**
|
|
69
|
+
- [ ] **Other**: ___
|
|
70
|
+
|
|
71
|
+
## Existing Publications
|
|
72
|
+
|
|
73
|
+
List known papers already published from this cohort (to avoid topic duplication):
|
|
74
|
+
|
|
75
|
+
1. (Author, Year, Topic, Journal)
|
|
76
|
+
2. ...
|
|
77
|
+
|
|
78
|
+
## Data Access
|
|
79
|
+
|
|
80
|
+
- **IRB status:** (approved / needs application)
|
|
81
|
+
- **Access method:** (on-site analysis center / remote access / direct download)
|
|
82
|
+
- **Estimated turnaround:** (application to data receipt)
|
|
83
|
+
- **Cost:** (if applicable)
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Variable Cluster Map (Auto-generated)
|
|
88
|
+
|
|
89
|
+
If a data dictionary is provided, the skill will auto-generate clusters below:
|
|
90
|
+
|
|
91
|
+
| Cluster | Variables | Serial? | Endpoint Link? |
|
|
92
|
+
|---------|-----------|---------|----------------|
|
|
93
|
+
| (auto-filled) | | | |
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Research Topic Proposal — One-Pager
|
|
2
|
+
|
|
3
|
+
## [Working Title]
|
|
4
|
+
|
|
5
|
+
**Rank:** #X of Y | **6-Pattern Score:** X/6 | **Saturation Grade:** Green Field
|
|
6
|
+
**Target Journal:** [Journal Name] | **Estimated Timeline:** X months
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
### Background
|
|
11
|
+
|
|
12
|
+
[3-4 sentences establishing the clinical problem, current evidence gaps, and why this
|
|
13
|
+
topic matters now. End with the "Zero Papers" claim if applicable: "To our knowledge,
|
|
14
|
+
no study has examined [specific gap] using serial measurements in a [population type]."]
|
|
15
|
+
|
|
16
|
+
### Comparison Table
|
|
17
|
+
|
|
18
|
+
| Feature | Author1 (Year) | Author2 (Year) | Author3 (Year) | **THIS STUDY** |
|
|
19
|
+
|---------|----------------|----------------|----------------|----------------|
|
|
20
|
+
| Design | | | | |
|
|
21
|
+
| N | | | | |
|
|
22
|
+
| Serial data | | | | |
|
|
23
|
+
| Hard endpoint | | | | |
|
|
24
|
+
| Population | | | | |
|
|
25
|
+
| Ethnicity | | | | |
|
|
26
|
+
| Follow-up | | | | |
|
|
27
|
+
| Key gap | | | | |
|
|
28
|
+
|
|
29
|
+
**Unique differentiators: X** (minimum 3 required)
|
|
30
|
+
|
|
31
|
+
### Objective
|
|
32
|
+
|
|
33
|
+
**Primary:** [PICO format research question]
|
|
34
|
+
|
|
35
|
+
**Secondary (optional):** [1-2 secondary questions]
|
|
36
|
+
|
|
37
|
+
### Methods Summary
|
|
38
|
+
|
|
39
|
+
- **Study design:** Retrospective cohort study
|
|
40
|
+
- **Population:** [Inclusion/exclusion criteria]
|
|
41
|
+
- **Exposure:** [Key variable(s) and operational definition]
|
|
42
|
+
- **Outcome:** [Primary endpoint and ascertainment method]
|
|
43
|
+
- **Statistical approach:** [Key methods — Cox regression, trajectory analysis, etc.]
|
|
44
|
+
- **Sample size justification:** [N eligible, expected events, EPV ratio]
|
|
45
|
+
|
|
46
|
+
### 6-Pattern Score Card
|
|
47
|
+
|
|
48
|
+
| Pattern | Status | Evidence |
|
|
49
|
+
|---------|--------|----------|
|
|
50
|
+
| P1 Longitudinal Advantage | [+/-] | [one-line justification] |
|
|
51
|
+
| P2 Endpoint Upgrade | [+/-] | [one-line justification] |
|
|
52
|
+
| P3 Cohort Uniqueness | [+/-] | [one-line justification] |
|
|
53
|
+
| P4 PI-Topic Alignment | [+/-] | [one-line justification] |
|
|
54
|
+
| P5 Comparison Table 3+ | [+/-] | [one-line justification] |
|
|
55
|
+
| P6 Complementary Design | [+/-] | [one-line justification] |
|
|
56
|
+
|
|
57
|
+
### PI Role
|
|
58
|
+
|
|
59
|
+
**Corresponding Author:** [Name, Title, Affiliation]
|
|
60
|
+
**Relevance:** [Why this PI is the right CA — society role, expertise, journal connections]
|
|
61
|
+
|
|
62
|
+
### Feasibility
|
|
63
|
+
|
|
64
|
+
- **Go / Conditional Go / No-Go**
|
|
65
|
+
- **Sample size:** N = X, expected events = Y, EPV = Z
|
|
66
|
+
- **Key variables:** Available / needs derivation / missing
|
|
67
|
+
- **IRB:** Covered / needs new application
|
|
68
|
+
- **Data access:** Ready / X weeks to obtain
|
|
69
|
+
|
|
70
|
+
### Timeline
|
|
71
|
+
|
|
72
|
+
| Phase | Duration | Milestone |
|
|
73
|
+
|-------|----------|-----------|
|
|
74
|
+
| Data preparation | X weeks | Clean dataset, operational definitions |
|
|
75
|
+
| Analysis | X weeks | Primary + sensitivity analyses |
|
|
76
|
+
| Drafting | X weeks | Full manuscript |
|
|
77
|
+
| Internal review | X weeks | Co-author feedback |
|
|
78
|
+
| Submission | Target date | [Journal] |
|
|
79
|
+
|
|
80
|
+
### Clinical Implications ("So What")
|
|
81
|
+
|
|
82
|
+
1. [Implication for clinical practice]
|
|
83
|
+
2. [Implication for screening/prevention policy]
|
|
84
|
+
3. [Implication for future research directions]
|