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,135 @@
|
|
|
1
|
+
# Korean PHI Patterns
|
|
2
|
+
|
|
3
|
+
> Locale: Korean. This reference intentionally contains Korean — it documents the Korean PHI-detection patterns (the `kr` locale feature of `/deidentify`). See `docs/locale_inventory.md`.
|
|
4
|
+
|
|
5
|
+
Regex patterns and column-name dictionaries used by `deidentify.py`.
|
|
6
|
+
This file serves as documentation; the actual patterns are in the Python script.
|
|
7
|
+
|
|
8
|
+
## Value-Level Regex Patterns
|
|
9
|
+
|
|
10
|
+
### 주민등록번호 (Resident Registration Number)
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
\d{6}-[1-4]\d{6}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
- Format: `YYMMDD-GNNNNNN`
|
|
17
|
+
- First 6 digits: birthdate (YYMMDD)
|
|
18
|
+
- 7th digit (G): gender + birth century (1=1900s male, 2=1900s female, 3=2000s male, 4=2000s female)
|
|
19
|
+
- Remaining 6: region code + serial + check digit
|
|
20
|
+
- Example: `850315-1234567`
|
|
21
|
+
|
|
22
|
+
### 외국인등록번호 (Alien Registration Number)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
\d{6}-[5-8]\d{6}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- Same format as 주민번호 but 7th digit is 5-8
|
|
29
|
+
- Covered by the same regex when expanded to `[1-8]`
|
|
30
|
+
|
|
31
|
+
### 전화번호 — 휴대전화 (Mobile Phone)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
01[016789]-?\d{3,4}-?\d{4}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- Prefixes: 010, 011, 016, 017, 018, 019
|
|
38
|
+
- Dashes optional
|
|
39
|
+
- Examples: `010-1234-5678`, `01012345678`, `011-234-5678`
|
|
40
|
+
|
|
41
|
+
### 전화번호 — 유선전화 (Landline)
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
0[2-6][0-9]{0,2}-?\d{3,4}-?\d{4}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- Area codes: 02 (Seoul), 031-033 (Gyeonggi), 041-044 (Chungcheong), 051-055 (Gyeongsang), 061-064 (Jeolla/Jeju)
|
|
48
|
+
- Examples: `02-555-1234`, `031-765-4321`, `051-234-5678`
|
|
49
|
+
|
|
50
|
+
### 이메일 (Email)
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- Standard email pattern
|
|
57
|
+
- Common Korean domains: naver.com, daum.net, hanmail.net, kakao.com
|
|
58
|
+
|
|
59
|
+
### 날짜 (Date)
|
|
60
|
+
|
|
61
|
+
ISO format:
|
|
62
|
+
```
|
|
63
|
+
(19|20)\d{2}[-/.](0[1-9]|1[0-2])[-/.](0[1-9]|[12]\d|3[01])
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Korean format:
|
|
67
|
+
```
|
|
68
|
+
(19|20)\d{2}년\s*(0?[1-9]|1[0-2])월\s*(0?[1-9]|[12]\d|3[01])일
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Short (YYMMDD):
|
|
72
|
+
```
|
|
73
|
+
([5-9]\d|0[0-4])(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 주소 (Address)
|
|
77
|
+
|
|
78
|
+
Korean address suffix pattern:
|
|
79
|
+
```
|
|
80
|
+
(특별시|광역시|특별자치시|특별자치도|도\s|시\s|군\s|구\s|읍\s|면\s|동\s|리\s|로\s|길\s)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- Matches administrative divisions that appear in Korean addresses
|
|
84
|
+
- Detection threshold: >30% of values in a column contain these patterns
|
|
85
|
+
|
|
86
|
+
### 한국인 이름 (Korean Name)
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
[\uAC00-\uD7AF]{2,4}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
- 2 to 4 Hangul syllable characters
|
|
93
|
+
- **CRITICAL**: Only applied to columns identified as name-type by column name
|
|
94
|
+
- Common Korean words (정상, 양성, 음성, etc.) also match this pattern
|
|
95
|
+
- False positive mitigation: match against column name hints only
|
|
96
|
+
|
|
97
|
+
## Column Name Dictionary
|
|
98
|
+
|
|
99
|
+
### Name-type columns
|
|
100
|
+
`환자명`, `성명`, `이름`, `성함`, `patient_name`, `patientname`, `pt_name`, `name`,
|
|
101
|
+
`first_name`, `last_name`
|
|
102
|
+
|
|
103
|
+
### RRN-type columns
|
|
104
|
+
`주민번호`, `주민등록번호`, `ssn`, `social_security`
|
|
105
|
+
|
|
106
|
+
### Date-type columns
|
|
107
|
+
`생년월일`, `생년`, `출생일`, `dob`, `date_of_birth`, `birth_date`, `birthdate`
|
|
108
|
+
|
|
109
|
+
### Phone-type columns
|
|
110
|
+
`전화번호`, `연락처`, `핸드폰`, `휴대폰`, `휴대전화`, `자택전화`,
|
|
111
|
+
`phone`, `telephone`, `mobile`, `phone_number`, `cell`
|
|
112
|
+
|
|
113
|
+
### Address-type columns
|
|
114
|
+
`주소`, `자택주소`, `거주지`, `address`, `home_address`, `street`,
|
|
115
|
+
`zip`, `zipcode`, `zip_code`
|
|
116
|
+
|
|
117
|
+
### Email-type columns
|
|
118
|
+
`이메일`, `email`, `email_address`
|
|
119
|
+
|
|
120
|
+
### ID-type columns
|
|
121
|
+
`차트번호`, `등록번호`, `환자번호`, `의무기록번호`, `원무번호`,
|
|
122
|
+
`mrn`, `medical_record`, `chart_no`, `patient_id`, `patientid`,
|
|
123
|
+
`chart_number`, `record_number`, `hospital_id`
|
|
124
|
+
|
|
125
|
+
### Insurance-type columns
|
|
126
|
+
`보험번호`, `insurance_no`, `insurance_number`
|
|
127
|
+
|
|
128
|
+
## High-Cardinality Numeric Detection
|
|
129
|
+
|
|
130
|
+
Columns not matching any name pattern but containing:
|
|
131
|
+
- >90% pure numeric values (digits only)
|
|
132
|
+
- Length >= 5 digits
|
|
133
|
+
- >80% unique values
|
|
134
|
+
|
|
135
|
+
These are flagged as potential MRN/chart numbers for researcher review.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
schema_version: 2
|
|
2
|
+
name: deidentify
|
|
3
|
+
layer: A
|
|
4
|
+
owner_domain: data_preparation
|
|
5
|
+
|
|
6
|
+
when_to_use: "De-identify clinical CSV/TSV/Excel data locally before any LLM-assisted analysis."
|
|
7
|
+
when_NOT_to_use: "General data cleaning or type fixing (use clean-data). Never to have the agent itself read, paste, or process raw PHI."
|
|
8
|
+
|
|
9
|
+
inputs:
|
|
10
|
+
- path: "raw clinical data file (CSV / TSV / XLSX)"
|
|
11
|
+
schema: csv
|
|
12
|
+
required: true
|
|
13
|
+
outputs:
|
|
14
|
+
- path: "de-identified data file"
|
|
15
|
+
- path: "scan report (column classifications, no raw values)"
|
|
16
|
+
- path: "audit log (SHA-256 hashes only)"
|
|
17
|
+
|
|
18
|
+
deterministic_scripts:
|
|
19
|
+
- deidentify.py
|
|
20
|
+
side_effects:
|
|
21
|
+
- writes_deidentified_data
|
|
22
|
+
- runs_locally_no_network
|
|
23
|
+
downstream_consumers:
|
|
24
|
+
- clean-data
|
|
25
|
+
- analyze-stats
|
|
26
|
+
forbidden_actions:
|
|
27
|
+
- read_raw_phi
|
|
28
|
+
- display_mapping_file
|
|
29
|
+
- send_phi_to_llm
|
|
30
|
+
|
|
31
|
+
# v2.1 quality card
|
|
32
|
+
purpose: "Detect and remove PHI from clinical tabular data with a local-only CLI, so downstream LLM analysis never touches raw identifiers."
|
|
33
|
+
safety_boundaries:
|
|
34
|
+
- "The agent never sees raw PHI; de-identification runs in a standalone local script with no network or AI calls."
|
|
35
|
+
- "Never reads or displays the re-identification mapping file (it holds original PHI values)."
|
|
36
|
+
- "Only the scan report (no raw values), the hash-only audit log, and the de-identified output may be read."
|
|
37
|
+
known_limitations:
|
|
38
|
+
- "Regex and heuristic detection across 10 country locale packs is not a substitute for expert disclosure review or an IRB determination."
|
|
39
|
+
- "PHI coverage is limited to the bundled locale packs (kr, us, jp, cn, de, uk, fr, ca, au, in)."
|
|
40
|
+
validation_commands:
|
|
41
|
+
- "python deidentify.py scan <file> --locale <code> # review column classifications before stripping"
|
|
42
|
+
- "inspect the SHA-256 audit log after a full run"
|
|
43
|
+
evidence_surface: bundled_script
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Deidentify Test Fixtures
|
|
2
|
+
|
|
3
|
+
All CSV files in this directory contain **synthetic test data only**.
|
|
4
|
+
No real patient or person is represented.
|
|
5
|
+
|
|
6
|
+
- **Names** (`김철수`, `이영희`, `박민수`, etc.) are common Korean placeholder
|
|
7
|
+
names equivalent to "John Doe" / "Jane Doe" in English. They were chosen
|
|
8
|
+
precisely because they are generic enough to be unattributable to any
|
|
9
|
+
real individual.
|
|
10
|
+
- **RRN (주민번호)** values follow the public format specification but the
|
|
11
|
+
digits are arbitrary and do not validate against the official checksum
|
|
12
|
+
algorithm used by the Korean civil registry.
|
|
13
|
+
- **Phone numbers**, **addresses**, **emails**, **chart numbers**, and
|
|
14
|
+
**diagnoses** are all constructed for the purpose of exercising the
|
|
15
|
+
PHI detector regexes shipped with `/deidentify`.
|
|
16
|
+
|
|
17
|
+
These fixtures exist to verify that the de-identifier:
|
|
18
|
+
1. Detects the PHI patterns the skill claims to detect.
|
|
19
|
+
2. Leaves non-PHI fields (clinical measurements, dates of routine
|
|
20
|
+
nature) untouched.
|
|
21
|
+
3. Handles edge cases (mixed date formats, half-width vs full-width
|
|
22
|
+
digits, comma vs newline separators, missing fields).
|
|
23
|
+
|
|
24
|
+
If you need to add a new fixture, follow the same rule: every value must
|
|
25
|
+
be either a published format example or a constructed synthetic string.
|
|
26
|
+
Never copy real EMR data into this directory, even for one-off debugging.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
sample_id,measurement_a,measurement_b,category,score,group,result
|
|
2
|
+
S001,45.2,12.3,A,78,control,positive
|
|
3
|
+
S002,38.7,15.6,B,82,treatment,negative
|
|
4
|
+
S003,52.1,9.8,A,91,control,positive
|
|
5
|
+
S004,41.5,11.2,C,67,treatment,negative
|
|
6
|
+
S005,36.9,14.7,B,73,control,positive
|
|
7
|
+
S006,48.3,10.5,A,85,treatment,positive
|
|
8
|
+
S007,39.6,13.1,C,69,control,negative
|
|
9
|
+
S008,55.0,8.9,B,94,treatment,positive
|
|
10
|
+
S009,42.8,12.0,A,76,control,negative
|
|
11
|
+
S010,37.4,16.2,C,88,treatment,positive
|
|
12
|
+
S011,50.5,11.8,A,71,control,negative
|
|
13
|
+
S012,44.1,13.5,B,83,treatment,positive
|
|
14
|
+
S013,46.7,10.1,C,79,control,positive
|
|
15
|
+
S014,40.2,14.0,A,86,treatment,negative
|
|
16
|
+
S015,53.8,9.3,B,92,control,positive
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
col_a,col_b,비고,숫자값,빈컬럼,긴한글단어
|
|
2
|
+
값1,123,,45.6,,대한민국
|
|
3
|
+
,456,일반 메모,78.9,,
|
|
4
|
+
값3,,환자 김철수 연락처 010-1234-5678,12.3,,서울특별시강남구테헤란로
|
|
5
|
+
값4,789,"콤마, 포함 값",0,,
|
|
6
|
+
,,,,,
|
|
7
|
+
값6,012,정상 소견,99.9,,가나다라마바사아자차카타파하
|
|
8
|
+
값7,345,2024년 3월 15일 검사,55.5,,
|
|
9
|
+
값8,678,,33.3,,AB
|
|
10
|
+
값9,901,"따옴표 ""포함"" 값",77.7,,정상
|
|
11
|
+
값10,234,특이사항 없음,44.4,,대한외과학회
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
환자명,주민번호,전화번호,생년월일,주소,이메일,차트번호,진단,측정값,비고
|
|
2
|
+
김철수,850315-1234567,010-1234-5678,1985-03-15,서울특별시 강남구 테헤란로 123,chulsu@example.com,12345678,위암,45.2,정기검진
|
|
3
|
+
이영희,901220-2345678,010-9876-5432,1990-12-20,부산광역시 해운대구 우동 456,yhlee@test.kr,23456789,유방암,38.7,
|
|
4
|
+
박민수,780505-1567890,02-555-1234,1978-05-05,대구광역시 수성구 범어동 789-12,minsoo.park@hospital.org,34567890,폐결절,12.3,재검 필요
|
|
5
|
+
정미영,880101-2678901,010-5555-9999,1988년 1월 1일,인천광역시 남동구 구월동 321,miyoung@naver.com,45678901,정상,67.8,
|
|
6
|
+
최준호,950730-1789012,051-234-5678,1995.07.30,광주광역시 서구 화정동 654,junho.choi@gmail.com,56789012,고혈압,120.5,약물 복용 중
|
|
7
|
+
홍길동,700101-1890123,010-1111-2222,1970-01-01,경기도 성남시 분당구 판교로 100,gildong@daum.net,67890123,당뇨,200.3,합병증 주의
|
|
8
|
+
강수현,920415-2901234,010-3333-4444,1992.04.15,세종특별자치시 아름동 555,suhyun.kang@outlook.com,78901234,갑상선결절,2.1,
|
|
9
|
+
윤대한,830620-1012345,031-765-4321,1983-06-20,충청남도 천안시 동남구 신방동 888,daehan@company.co.kr,89012345,정상,55.0,건강
|
|
10
|
+
임소연,960808-2123456,010-7777-8888,1996년 8월 8일,전라북도 전주시 완산구 효자동 222,soyeon.lim@yonsei.ac.kr,90123456,빈혈,8.5,추적검사
|
|
11
|
+
한지민,750225-2234567,042-333-9876,1975-02-25,제주특별자치도 제주시 연동 777,jimin.han@korea.ac.kr,01234567,대장용종,15.0,내시경 추적
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-ai-benchmarking
|
|
3
|
+
description: >
|
|
4
|
+
Design and validity review for studies that benchmark one or more AI systems against a human-expert
|
|
5
|
+
panel as the reference. Covers the evaluation question and arm definition, decoupled multi-dimensional
|
|
6
|
+
rubrics with anchors, planted calibration probes, reviewer-panel construction, inter-rater reliability
|
|
7
|
+
targets, LLM-as-judge versus human-as-judge adjudication, construct-independence guards, and a
|
|
8
|
+
structured rating-export schema. Use before data collection on an AI-vs-expert evaluation.
|
|
9
|
+
triggers: AI benchmarking, AI vs human expert, reader study design, expert panel evaluation, LLM-as-judge, AI evaluation rubric, model benchmark design, human baseline comparison, AI-output rating, evaluation rubric design
|
|
10
|
+
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
11
|
+
model: inherit
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Design-AI-Benchmarking Skill
|
|
15
|
+
|
|
16
|
+
## Purpose
|
|
17
|
+
|
|
18
|
+
This skill pressure-tests an AI-vs-human-expert benchmark **before any ratings are collected**, so that
|
|
19
|
+
the comparison is fair, the rubric measures distinct constructs, the scale is calibrated, and the
|
|
20
|
+
reported reliability is interpretable. It is the AI-evaluation specialization of `/design-study`: where
|
|
21
|
+
`/design-study` reviews a study in general, this skill owns the specific machinery of comparing AI
|
|
22
|
+
system(s) to a panel of human experts (or to each other) on rated outputs.
|
|
23
|
+
|
|
24
|
+
Use it when:
|
|
25
|
+
- one or more AI systems will be scored against a human-expert reference (reader study, annotation
|
|
26
|
+
panel, AI-output evaluation, model-vs-model bench)
|
|
27
|
+
- a rubric and rating protocol must be locked before reviewers begin
|
|
28
|
+
- a benchmark feels vulnerable to "the highest score is just the most tautological item" or
|
|
29
|
+
"low agreement, but we cannot tell why" criticism
|
|
30
|
+
- a reviewer or editor asks how the evaluation controlled for rater drift, leakage, or judge bias
|
|
31
|
+
|
|
32
|
+
Do **not** use it for: general study/validity review (use `/design-study`); statistical execution such
|
|
33
|
+
as ICC or DeLong (use `/analyze-stats`); reporting-guideline item audits (use `/check-reporting`);
|
|
34
|
+
or reviewing an already-written manuscript (use `/peer-review` or `/self-review`).
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Communication Rules
|
|
39
|
+
|
|
40
|
+
- Communicate with the user in their preferred language.
|
|
41
|
+
- Use English for statistical, machine-learning, and reporting-guideline terminology.
|
|
42
|
+
- Be direct about evaluation-validity risks, but always propose the smallest feasible fix first.
|
|
43
|
+
- Never invent reviewer ratings, reference labels, or agreement statistics; those come from collected
|
|
44
|
+
data only.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Standard Output
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
## AI-Benchmark Design Review
|
|
52
|
+
Evaluation question: ...
|
|
53
|
+
Arms / systems compared: ...
|
|
54
|
+
Reference (human-expert panel): ...
|
|
55
|
+
Unit of rating: (item / case / output)
|
|
56
|
+
|
|
57
|
+
### Rubric (decoupled dimensions)
|
|
58
|
+
- dimension -> construct -> anchors (1..k)
|
|
59
|
+
|
|
60
|
+
### Calibration probes (blinded, randomized)
|
|
61
|
+
- positive-control / known-bad / instability / mechanism-contradiction
|
|
62
|
+
|
|
63
|
+
### Reviewer panel
|
|
64
|
+
- n reviewers, metadata captured, per-reviewer randomized order
|
|
65
|
+
|
|
66
|
+
### Reliability plan
|
|
67
|
+
- overall IRR target + control-item IRR (reported separately)
|
|
68
|
+
|
|
69
|
+
### Judge strategy
|
|
70
|
+
- human-as-judge / LLM-as-judge / both + adjudication rule
|
|
71
|
+
|
|
72
|
+
### Validity risks
|
|
73
|
+
1. ...
|
|
74
|
+
|
|
75
|
+
### Minimal fixes
|
|
76
|
+
- ...
|
|
77
|
+
|
|
78
|
+
### Decision
|
|
79
|
+
- Ready to collect / Needs rubric revision / Needs arm or judge redesign
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Workflow
|
|
85
|
+
|
|
86
|
+
### Phase 1: Define the evaluation question and arms
|
|
87
|
+
|
|
88
|
+
Pin down, in writing:
|
|
89
|
+
- the exact claim the benchmark must support (e.g., "system A's outputs are perceptually
|
|
90
|
+
indistinguishable from expert outputs", not "system A is deployment-ready")
|
|
91
|
+
- every arm/system being compared, and what each arm receives as input (same items, same information
|
|
92
|
+
access, same output format) so no arm has a hidden advantage
|
|
93
|
+
- the human-expert reference: who they are, and whether they set ground truth, provide a comparison
|
|
94
|
+
arm, or both
|
|
95
|
+
- the unit of rating (item, case, output) and how many units each reviewer sees
|
|
96
|
+
|
|
97
|
+
**Gate:** Present the reconstructed evaluation question, arms, and reference to the user and confirm
|
|
98
|
+
before designing the rubric. A wrong reconstruction misdirects the entire benchmark.
|
|
99
|
+
|
|
100
|
+
### Phase 2: Design a decoupled multi-dimensional rubric
|
|
101
|
+
|
|
102
|
+
- **Decouple the axes.** Each rated dimension measures one construct. Keep "is the output valid/correct"
|
|
103
|
+
separate from "is it novel", "is it feasible/measurable", "does it add value over current tools", and
|
|
104
|
+
"would it change action". A candidate can be high-validity yet low-added-value ("real but redundant");
|
|
105
|
+
a single blended score hides this divergence.
|
|
106
|
+
- **Anchor every scale point** with a short verbal descriptor; pilot the anchors with at least one
|
|
107
|
+
reviewer before locking.
|
|
108
|
+
- **Pre-specify discriminant validity**: hypothesize which dimensions should correlate vs be orthogonal,
|
|
109
|
+
then report the full inter-dimension correlation matrix to confirm the rubric measures distinct
|
|
110
|
+
constructs.
|
|
111
|
+
- A worked rubric template lives in `${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md`.
|
|
112
|
+
|
|
113
|
+
### Phase 3: Insert and randomize calibration probes
|
|
114
|
+
|
|
115
|
+
Plant a small number of deliberate control items, blinded and randomized across raters (record who
|
|
116
|
+
received which via a `probe_arm` flag), to (i) anchor the scale, (ii) measure rater drift/fatigue, and
|
|
117
|
+
(iii) audit the rubric and pipeline itself. Four useful flavors:
|
|
118
|
+
- **Positive control / "too-good" item** — a known-strong or near-tautological item; tests whether
|
|
119
|
+
raters equate "largest effect" with "best", and whether the construct-independence gate (Phase 7) works.
|
|
120
|
+
- **Known-bad negative control** — an engineered defect (fabricated reference, missing key statistic);
|
|
121
|
+
expected to score low.
|
|
122
|
+
- **Instability item** — an estimate that reverses or fails to replicate on a holdout; tests
|
|
123
|
+
caveat-handling.
|
|
124
|
+
- **Mechanism-contradiction item** — an empirical direction that opposes the proposed mechanism.
|
|
125
|
+
|
|
126
|
+
Probes are *planted or adjudicated*, never fabricated to fit a hypothesis.
|
|
127
|
+
|
|
128
|
+
### Phase 4: Construct the reviewer panel
|
|
129
|
+
|
|
130
|
+
- Recruit reviewers spanning the intended expertise gradient; pre-specify any expertise stratification.
|
|
131
|
+
- Capture reviewer metadata (years of experience, prior AI-evaluation experience, subspecialty) for
|
|
132
|
+
descriptive reporting and stratified analysis.
|
|
133
|
+
- Randomize item order **per reviewer** (not one global seed) and record the order; plan to analyze
|
|
134
|
+
order and fatigue effects.
|
|
135
|
+
- Require each item to be judged standalone; discourage cross-item references in free-text, which signal
|
|
136
|
+
non-independent rating.
|
|
137
|
+
|
|
138
|
+
**Gate:** Present the panel composition, stratification, and randomization plan for user review before
|
|
139
|
+
recruitment is finalized.
|
|
140
|
+
|
|
141
|
+
### Phase 5: Set inter-rater reliability targets
|
|
142
|
+
|
|
143
|
+
- Pre-specify the agreement statistic (e.g., ICC for continuous ratings, weighted kappa for ordinal)
|
|
144
|
+
and a target with justification.
|
|
145
|
+
- **Report reliability on the planted control items separately** as primary evidence of rubric and
|
|
146
|
+
scale validity. A low overall ICC is interpretable only if raters at least converge on the controls;
|
|
147
|
+
surfacing both numbers prevents "low agreement => bad rubric" or "bad raters" misreads.
|
|
148
|
+
- Plan the minimum ratings-per-item needed for a stable agreement estimate (delegate the math to
|
|
149
|
+
`/analyze-stats`).
|
|
150
|
+
|
|
151
|
+
### Phase 6: Choose the judge strategy and adjudication
|
|
152
|
+
|
|
153
|
+
- Decide human-as-judge, LLM-as-judge, or both. If an LLM is used as a judge, treat it as one more arm
|
|
154
|
+
whose ratings must themselves be validated against the human panel on the control items.
|
|
155
|
+
- Pre-specify the **adjudication rule** for disagreement (e.g., majority, a third senior reviewer,
|
|
156
|
+
consensus discussion) and who adjudicates.
|
|
157
|
+
- Blind judges to arm identity wherever feasible; record any unavoidable unblinding.
|
|
158
|
+
|
|
159
|
+
### Phase 7: Construct-independence and leakage guards
|
|
160
|
+
|
|
161
|
+
- Exclude any predictor or input that is a definitional component of the outcome (mathematical
|
|
162
|
+
definition), and flag near-tautological composites built from the outcome's defining components — they
|
|
163
|
+
produce an inflated, near-circular result and belong as labeled probes, not discoveries.
|
|
164
|
+
- Verify no arm sees post-decision or outcome-derived information the others do not.
|
|
165
|
+
- Confirm the reference labels were not derived from the same model output being evaluated.
|
|
166
|
+
|
|
167
|
+
### Phase 8: Lock a structured export schema
|
|
168
|
+
|
|
169
|
+
Define the machine-readable rating record up front: per-item ratings across every rubric dimension,
|
|
170
|
+
free-text justifications, follow-up flags, the `probe_arm` flag, reviewer id and metadata, item order,
|
|
171
|
+
and timing. A synthetic schema lives in `${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json`.
|
|
172
|
+
|
|
173
|
+
**Gate:** Present the final rubric, probe set, panel plan, judge strategy, and export schema together;
|
|
174
|
+
collect explicit user approval before any rating begins. Locking these before data collection is the
|
|
175
|
+
whole point — changes afterward compromise the comparison.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Handoff Rules
|
|
180
|
+
|
|
181
|
+
- route to `/analyze-stats` for ICC / weighted kappa / DeLong, agreement sample size, and effect-size
|
|
182
|
+
real-world translation of the benchmark results
|
|
183
|
+
- route to `/check-reporting` for STARD-AI, CLAIM, or TRIPOD+AI item-level reporting once the design is locked
|
|
184
|
+
- route to `/design-study` when the broader study around the benchmark (cohort logic, analysis unit,
|
|
185
|
+
comparator) also needs review
|
|
186
|
+
- route to `/peer-review` or `/self-review` only after ratings exist and a manuscript is being assessed
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## What This Skill Does NOT Do
|
|
191
|
+
|
|
192
|
+
- It does not compute agreement statistics or run analyses directly (that is `/analyze-stats`).
|
|
193
|
+
- It does not collect or fabricate ratings, reference labels, or probe outcomes.
|
|
194
|
+
- It does not draft manuscript prose or run a reporting-guideline audit.
|
|
195
|
+
- It does not replace a full peer review of a finished manuscript.
|
|
196
|
+
|
|
197
|
+
## Anti-Hallucination
|
|
198
|
+
|
|
199
|
+
- **Never fabricate references.** All citations must be verified via `/search-lit` with a confirmed DOI
|
|
200
|
+
or PMID. Mark unverified references as `[UNVERIFIED - NEEDS MANUAL CHECK]`.
|
|
201
|
+
- **Never invent reviewer ratings, agreement statistics, reference labels, or probe outcomes** — these
|
|
202
|
+
come from collected data only. A reported ICC, kappa, or score with no underlying rating record is the
|
|
203
|
+
failure mode this skill exists to prevent.
|
|
204
|
+
- **Never invent clinical definitions, diagnostic criteria, or guideline recommendations.** If uncertain,
|
|
205
|
+
flag with `[VERIFY]` and ask the user.
|
|
206
|
+
- If a reporting-guideline item, journal policy, or evaluation standard is uncertain, state the
|
|
207
|
+
uncertainty rather than guessing.
|
|
208
|
+
|
|
209
|
+
## Reference Files
|
|
210
|
+
|
|
211
|
+
- `${CLAUDE_SKILL_DIR}/references/elicitation_rubric_template.md` -- a synthetic, decoupled
|
|
212
|
+
multi-dimension rating rubric with anchors and a planted-probe column.
|
|
213
|
+
- `${CLAUDE_SKILL_DIR}/references/benchmark_export_schema.json` -- a synthetic JSON schema for the
|
|
214
|
+
per-item rating export (ratings, justifications, probe_arm, reviewer metadata, order, timing).
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "AI-vs-expert benchmark rating export (synthetic template)",
|
|
4
|
+
"description": "One record per (reviewer, item) rating. Lock this schema before collecting ratings. All example values are illustrative placeholders, not real data.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["reviewer_id", "item_id", "arm", "probe_arm", "order_index", "ratings", "justification"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"reviewer_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Stable pseudonymous id for the reviewer (no personal identifiers).",
|
|
11
|
+
"examples": ["R01"]
|
|
12
|
+
},
|
|
13
|
+
"reviewer_metadata": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"description": "Captured once per reviewer; repeated here for convenience.",
|
|
16
|
+
"properties": {
|
|
17
|
+
"years_experience": {"type": "integer", "minimum": 0},
|
|
18
|
+
"prior_ai_evaluation": {"type": "boolean"},
|
|
19
|
+
"subspecialty": {"type": "string"}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"item_id": {"type": "string", "examples": ["item_0042"]},
|
|
23
|
+
"arm": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Which system produced the rated output, or the human-expert reference arm.",
|
|
26
|
+
"examples": ["system_a", "system_b", "expert_reference"]
|
|
27
|
+
},
|
|
28
|
+
"probe_arm": {
|
|
29
|
+
"type": ["string", "null"],
|
|
30
|
+
"description": "Non-null when this is a planted control item.",
|
|
31
|
+
"enum": ["pos_control", "neg_control", "instability", "mechanism_contra", null]
|
|
32
|
+
},
|
|
33
|
+
"order_index": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"minimum": 0,
|
|
36
|
+
"description": "Position in this reviewer's randomized item order (for fatigue analysis)."
|
|
37
|
+
},
|
|
38
|
+
"ratings": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"description": "One score per decoupled rubric dimension.",
|
|
41
|
+
"required": ["validity", "novelty", "feasibility", "added_value", "actionability"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"validity": {"type": "integer", "minimum": 1, "maximum": 5},
|
|
44
|
+
"novelty": {"type": "integer", "minimum": 1, "maximum": 5},
|
|
45
|
+
"feasibility": {"type": "integer", "minimum": 1, "maximum": 5},
|
|
46
|
+
"added_value": {"type": "integer", "minimum": 1, "maximum": 5},
|
|
47
|
+
"actionability": {"type": "integer", "minimum": 1, "maximum": 5}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"justification": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Free text, judged standalone; no cross-item references."
|
|
53
|
+
},
|
|
54
|
+
"follow_up": {
|
|
55
|
+
"type": ["string", "null"],
|
|
56
|
+
"description": "What additional evidence would change the rating."
|
|
57
|
+
},
|
|
58
|
+
"judge_type": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"enum": ["human", "llm"],
|
|
61
|
+
"description": "Whether the rater is a human expert or an LLM-as-judge arm."
|
|
62
|
+
},
|
|
63
|
+
"timing_seconds": {
|
|
64
|
+
"type": ["number", "null"],
|
|
65
|
+
"minimum": 0,
|
|
66
|
+
"description": "Time spent on this item, for fatigue/drift analysis."
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Decoupled Elicitation Rubric Template (synthetic)
|
|
2
|
+
|
|
3
|
+
A starting rubric for an AI-vs-human-expert benchmark. Every dimension measures one construct, so a
|
|
4
|
+
candidate can score high on validity yet low on added value ("real but redundant"). All values below
|
|
5
|
+
are illustrative placeholders, not real data — replace them for your own evaluation.
|
|
6
|
+
|
|
7
|
+
## Per-item rating dimensions
|
|
8
|
+
|
|
9
|
+
| Dimension | Construct (one only) | Anchor 1 (low) | Anchor 3 (mid) | Anchor 5 (high) |
|
|
10
|
+
|-----------|----------------------|----------------|----------------|-----------------|
|
|
11
|
+
| Validity | Is the output correct against the reference? | Contradicted by reference | Partially supported | Fully supported |
|
|
12
|
+
| Novelty | Is it new vs prior work? | Restates known result | Incremental extension | Genuinely new |
|
|
13
|
+
| Feasibility | Can it be measured/obtained in practice? | Not measurable | Measurable with effort | Routinely measurable |
|
|
14
|
+
| Added value | Does it add over a measure already in use? | Redundant with a routine measure | Marginal gain | Clear gain over current tools |
|
|
15
|
+
| Actionability | Would a clinician act on it for an individual? | Would not change action | Might change action | Would change action |
|
|
16
|
+
|
|
17
|
+
Notes:
|
|
18
|
+
- Pilot the anchors with at least one reviewer before locking the scale.
|
|
19
|
+
- Pre-specify which dimensions are expected to correlate (e.g., validity and actionability) vs be
|
|
20
|
+
orthogonal (e.g., novelty and feasibility); report the inter-dimension correlation matrix afterward.
|
|
21
|
+
|
|
22
|
+
## Planted calibration probes
|
|
23
|
+
|
|
24
|
+
`probe_arm` marks a control item; it is randomized across reviewers and excluded from the primary
|
|
25
|
+
estimate but reported separately for scale validity.
|
|
26
|
+
|
|
27
|
+
| probe_arm | Flavor | What it tests | Expected behavior |
|
|
28
|
+
|-----------|--------|---------------|-------------------|
|
|
29
|
+
| pos_control | Positive / "too-good" (near-tautological) | Whether raters equate "largest effect" with "best"; whether the construct-independence gate fires | High validity, low added value |
|
|
30
|
+
| neg_control | Known-bad (engineered defect) | Whether obvious defects are caught | Low validity |
|
|
31
|
+
| instability | Reverses on holdout | Caveat-handling for unstable estimates | Lower confidence ratings |
|
|
32
|
+
| mechanism_contra | Direction opposes mechanism | Whether raters notice mechanism conflict | Flagged in free-text |
|
|
33
|
+
|
|
34
|
+
## Per-item free-text fields
|
|
35
|
+
|
|
36
|
+
- justification (required): one or two sentences, judged standalone (no cross-item references)
|
|
37
|
+
- follow_up (optional): what additional evidence would change the rating
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
schema_version: 2
|
|
2
|
+
name: design-ai-benchmarking
|
|
3
|
+
layer: D
|
|
4
|
+
owner_domain: study_design
|
|
5
|
+
|
|
6
|
+
when_to_use: "Design or review a study that benchmarks one or more AI systems against a human-expert panel: arm definition, decoupled rubric, calibration probes, reviewer panel, IRR targets, judge adjudication, and a structured export schema, before ratings are collected."
|
|
7
|
+
when_NOT_to_use: "General study/validity review (use design-study); statistical execution such as ICC/DeLong (use analyze-stats); reporting-guideline item audits (use check-reporting); reviewing a finished manuscript (use peer-review or self-review)."
|
|
8
|
+
|
|
9
|
+
inputs:
|
|
10
|
+
- "evaluation question and the AI system(s) / arms to compare"
|
|
11
|
+
- "candidate outputs or items to be rated"
|
|
12
|
+
- "available human-expert reviewers and their metadata"
|
|
13
|
+
outputs:
|
|
14
|
+
- "benchmark design and validity review (decision notes)"
|
|
15
|
+
- "decoupled rating rubric with anchors and planted calibration probes"
|
|
16
|
+
- "structured rating-export schema (JSON)"
|
|
17
|
+
side_effects:
|
|
18
|
+
- writes_decision_notes
|
|
19
|
+
downstream_consumers:
|
|
20
|
+
- analyze-stats
|
|
21
|
+
- check-reporting
|
|
22
|
+
- design-study
|
|
23
|
+
forbidden_actions:
|
|
24
|
+
- fabricate_reviewer_ratings_or_reference_labels
|
|
25
|
+
- approve_benchmark_with_unblinded_or_leaky_rubric
|
|
26
|
+
- report_irr_without_separate_control_item_reliability
|
|
27
|
+
|
|
28
|
+
# v2.1 quality card
|
|
29
|
+
purpose: "Surface design and validity risks specific to AI-vs-human-expert benchmarks (rubric coupling, scale calibration, rater independence, judge choice) before data collection begins."
|
|
30
|
+
safety_boundaries:
|
|
31
|
+
- "Advisory only: writes decision notes plus rubric/schema artifacts, never ratings or analysis results."
|
|
32
|
+
- "Calibration probes and reference labels are planted or adjudicated, never fabricated to fit a hypothesis."
|
|
33
|
+
known_limitations:
|
|
34
|
+
- "A design review reduces but cannot eliminate evaluation bias; it does not guarantee a valid benchmark."
|
|
35
|
+
- "No standalone demo; rubric and panel decisions require domain-expert judgement."
|
|
36
|
+
validation_commands:
|
|
37
|
+
- "carry the rubric and export schema into analyze-stats for ICC/agreement, then check-reporting (STARD-AI / CLAIM / TRIPOD+AI)"
|
|
38
|
+
evidence_surface: manual_workflow
|