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,41 @@
|
|
|
1
|
+
# SSOT.yaml — Single Source of Truth for medsci research project (schema v1).
|
|
2
|
+
# Generated by `/manage-project init --ssot`. See docs/ssot_schema_v1.md for spec.
|
|
3
|
+
# Edit `truth.*` paths only; `derived.*` is auto-written by pipeline.
|
|
4
|
+
|
|
5
|
+
schema_version: 1
|
|
6
|
+
project_id: {{PROJECT_ID}}
|
|
7
|
+
project_type: {{PROJECT_TYPE}}
|
|
8
|
+
|
|
9
|
+
truth:
|
|
10
|
+
manuscript: manuscript/index.qmd
|
|
11
|
+
refs_bib: manuscript/_src/refs.bib
|
|
12
|
+
numbers_yaml: manuscript/_src/numbers.yaml
|
|
13
|
+
tables_yaml: manuscript/_src/tables.yaml
|
|
14
|
+
figures_dir: manuscript/figures/
|
|
15
|
+
metadata: manuscript/_metadata.yml
|
|
16
|
+
|
|
17
|
+
reference_manager:
|
|
18
|
+
type: zotero
|
|
19
|
+
required_for: project_owner
|
|
20
|
+
library_type: user
|
|
21
|
+
library_id: null
|
|
22
|
+
collection_key: null
|
|
23
|
+
sync_method: better_bibtex_auto_export
|
|
24
|
+
fallback_for_collaborator: snapshot_only
|
|
25
|
+
citekey_policy: pinned_or_stable
|
|
26
|
+
refs_bib_snapshot: manuscript/_src/refs.bib
|
|
27
|
+
|
|
28
|
+
renders: {}
|
|
29
|
+
|
|
30
|
+
derived:
|
|
31
|
+
artifact_manifest: artifact_manifest.json
|
|
32
|
+
status_file: qc/status.json
|
|
33
|
+
|
|
34
|
+
policy:
|
|
35
|
+
ssot_only_editable: true
|
|
36
|
+
submission_readonly: true
|
|
37
|
+
back_merge_required_before: render
|
|
38
|
+
manuscript_citations: citekey_only
|
|
39
|
+
allow_new_reference_from_llm: false
|
|
40
|
+
missing_citekey: block
|
|
41
|
+
unverified_reference: block_before_submission
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ali Soroush
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# NOTICE — Third-party components
|
|
2
|
+
|
|
3
|
+
## scripts/_vendor_citation_writer.py
|
|
4
|
+
|
|
5
|
+
- **Source**: alisoroushmd/zotero-mcp (https://github.com/alisoroushmd/zotero-mcp)
|
|
6
|
+
- **File**: `src/zotero_mcp/citation_writer.py`
|
|
7
|
+
- **Upstream SHA**: `ed5dfb718b78f355f300545eb375aec7a543e027` (fetched 2026-05-01)
|
|
8
|
+
- **License**: MIT, © 2026 Ali Soroush — full text in [`LICENSE.zotero-mcp`](./LICENSE.zotero-mcp)
|
|
9
|
+
- **Modifications**: None to the function bodies. The header comment was
|
|
10
|
+
rewritten to point at this skill's NOTICE / LICENSE files.
|
|
11
|
+
- **Why vendored, not depended on**: the upstream module has no PyPI release
|
|
12
|
+
and its repository ships an MCP server we do not need. The single file is
|
|
13
|
+
self-contained (only `python-docx` required) and was validated against a
|
|
14
|
+
21-reference an active meta-analysis project manuscript before being relocated here.
|
|
15
|
+
|
|
16
|
+
## CSL files (`citation_styles/*.csl`)
|
|
17
|
+
|
|
18
|
+
CSL files are author-licensed under CC BY-SA 3.0 (see individual file headers
|
|
19
|
+
or the README at the upstream Zotero / citation-style-language project).
|
|
20
|
+
|
|
21
|
+
## How `inject_zotero_cwyw.py` differs from upstream
|
|
22
|
+
|
|
23
|
+
The vendored `zotero_to_csl_json` walks an `_ITEM_TYPE_MAP` that does not
|
|
24
|
+
include `webpage`, `report`, `presentation`, etc. — those item types fall
|
|
25
|
+
back to `"article"` and silently lose `URL` / `accessDate` / `publisher`. The
|
|
26
|
+
wrapper in `inject_zotero_cwyw.py` monkey-patches that function at import
|
|
27
|
+
time so it instead fetches each item's CSL-JSON from Zotero's connector API
|
|
28
|
+
(`http://localhost:23119/api/users/<USER_ID>/items/<KEY>?format=csljson`),
|
|
29
|
+
which is Zotero's own serialization and handles every item type correctly.
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: manage-refs
|
|
3
|
+
description: >
|
|
4
|
+
Cross-cutting reference manager for medical manuscripts. Single entry point
|
|
5
|
+
for citation-key validation, journal-CSL pandoc rendering, manuscript ↔ DOCX
|
|
6
|
+
cross-reference QC, marker conversion (``[N]`` ↔ ``[@key]``), and native
|
|
7
|
+
Zotero CWYW field-code injection. Replaces the inline reference-handling
|
|
8
|
+
that previously lived in ``/write-paper`` Phase 7.6 and is reused by
|
|
9
|
+
``/revise``, ``/peer-review``, ``/sync-submission``, and any skill that
|
|
10
|
+
produces a journal submission. Audit-only verification stays in
|
|
11
|
+
``/verify-refs`` — this skill writes (renders, injects, converts); that
|
|
12
|
+
skill only reads.
|
|
13
|
+
triggers: manage-refs, references, citation, citation keys, pandoc citeproc, journal CSL, CSL swap, cascade rejection re-render, cross-reference QC, [@bibkey], Zotero CWYW, ADDIN ZOTERO_ITEM, marker conversion, [N] to [@key], reference manager, render manuscript, check_citation_keys, check_xref
|
|
14
|
+
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
15
|
+
model: inherit
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Manage-Refs Skill
|
|
19
|
+
|
|
20
|
+
You are routing reference-handling work for a medical manuscript. The user is
|
|
21
|
+
somewhere in the lifecycle — drafting, building a circulation DOCX, swapping
|
|
22
|
+
CSL after a journal rejection, fixing a cross-reference defect surfaced by
|
|
23
|
+
QC, or wiring up live Zotero field codes for a co-author Word workflow. Pick
|
|
24
|
+
the right tool from the decision table; do not invent a parallel pipeline.
|
|
25
|
+
|
|
26
|
+
## Why This Skill Exists
|
|
27
|
+
|
|
28
|
+
Reference handling spans every late-stage skill: `/write-paper` builds the
|
|
29
|
+
first DOCX, `/revise` rebuilds it after each reviewer round, `/peer-review`
|
|
30
|
+
emits a critique that quotes references back, `/sync-submission` packages the
|
|
31
|
+
final tarball, `/find-journal` informs CSL swaps on rejection cascade, and
|
|
32
|
+
`/verify-refs` audits the bibliography. Until 2026-05-01 these scripts lived
|
|
33
|
+
under `skills/write-paper/scripts/`, which made `/revise` and `/sync-submission`
|
|
34
|
+
silently depend on a sibling skill — a layering inversion that broke when
|
|
35
|
+
`/write-paper` was loaded into a non-research project. Moving the
|
|
36
|
+
lifecycle tools here turns reference handling into a first-class concern
|
|
37
|
+
with one decision tree, one set of CSL files, and one provenance file
|
|
38
|
+
(`NOTICE.md`) for the vendored Zotero CWYW writer.
|
|
39
|
+
|
|
40
|
+
Validated 2026-05-01 against a 21-reference meta-analysis manuscript
|
|
41
|
+
(a meta-analysis project's submission) for both pandoc-citeproc and Zotero-CWYW paths.
|
|
42
|
+
|
|
43
|
+
## Anti-Hallucination Guarantees
|
|
44
|
+
|
|
45
|
+
1. **Citekey discipline (Phase 0)**: every in-text citation must be
|
|
46
|
+
`[@bibkey]` resolvable in `refs.bib`. `scripts/check_citation_keys.py` is
|
|
47
|
+
a hard gate — UNDEFINED keys exit non-zero and block the build.
|
|
48
|
+
|
|
49
|
+
**`[@NEW:topic]` placeholder convention**: while drafting, `/write-paper`
|
|
50
|
+
may emit `[@NEW:topic_slug]` markers for citations the author still needs
|
|
51
|
+
to source. `check_citation_keys.py` classifies these as `NEW_PLACEHOLDER`
|
|
52
|
+
(not UNDEFINED) and exits 0 — the build is allowed to proceed during
|
|
53
|
+
drafting. Phase 7.6 (DOCX render) is a hard gate: zero NEW_PLACEHOLDER
|
|
54
|
+
entries must remain. Resolve each by adding the citation to Zotero (then
|
|
55
|
+
`/lit-sync` refreshes refs.bib) and replacing the placeholder with the
|
|
56
|
+
real `[@bibkey]`. Never let a `[@NEW:...]` reach a rendered DOCX.
|
|
57
|
+
2. **No hand-typed References list** — references are always rendered by
|
|
58
|
+
pandoc citeproc + journal CSL or by the Zotero Word plugin (CWYW). See
|
|
59
|
+
`~/.claude/rules/manuscript-references.md`.
|
|
60
|
+
3. **Zotero metadata is never invented** — `inject_zotero_cwyw.py` fetches
|
|
61
|
+
item data live from `http://localhost:23119`. Any HTTP failure aborts
|
|
62
|
+
with a non-zero exit so partial bibliographies never reach the user.
|
|
63
|
+
4. **Marker conversion is mapping-driven** — `md_marker_convert.py` will
|
|
64
|
+
never guess a Zotero key for a number; unmapped markers stay as `[N]`
|
|
65
|
+
and are reported on stderr.
|
|
66
|
+
5. **Cross-reference QC is a submission gate** — `scripts/check_xref.py`
|
|
67
|
+
`--strict` exits 1 on any `MISSING_DOCX` / `MISSING_BODY` / `MISMATCH`,
|
|
68
|
+
blocking pipelines that try to ship a DOCX whose Table/Figure citations
|
|
69
|
+
don't match captions.
|
|
70
|
+
6. **Audit boundary**: this skill writes; bibliographic correctness against
|
|
71
|
+
PubMed/CrossRef stays in `/verify-refs`. Always invoke `/verify-refs`
|
|
72
|
+
after a render before signing off — one read-only audit, one writer.
|
|
73
|
+
|
|
74
|
+
## Decision Tree
|
|
75
|
+
|
|
76
|
+
| Situation | Tool | Why |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Validate `[@bibkey]` ↔ `refs.bib` (UNDEFINED / UNUSED keys) | `scripts/check_citation_keys.py` | Hard build gate, runs in seconds |
|
|
79
|
+
| Single-author submission lockdown, frozen output | `scripts/render_pandoc.sh -j <journal>` | Reproducible, CI-friendly |
|
|
80
|
+
| Cascade rejection (e.g., ER → JVIR → CVIR) | `render_pandoc.sh` with new `-j` | CSL swap reformats references in seconds |
|
|
81
|
+
| Reviewer revision: add 1–2 refs to a Word doc with co-authors live | Zotero Word plugin (user GUI) | Minimal disruption to track-changes flow |
|
|
82
|
+
| Reviewer revision: bulk reference change | Edit markdown SSOT, re-run `render_pandoc.sh` | Consistency, no cherry-pick risk |
|
|
83
|
+
| Migrate `[N]` numeric markers → `[@key]` for pandoc | `scripts/md_marker_convert.py --to-keys` | Mapping-driven, partial conversion safe |
|
|
84
|
+
| Convert `[@key]` → `[N]` for round-trip / debug | `scripts/md_marker_convert.py --to-numbers` | Same map, opposite direction |
|
|
85
|
+
| Wire native Zotero CWYW field codes into a .docx (live Refresh in Word) | `scripts/inject_zotero_cwyw.py` | Co-author Word workflow, post-circulation editability |
|
|
86
|
+
| Manuscript ↔ rendered DOCX cross-reference QC | `scripts/check_xref.py --strict` | Submission gate (P0 blocker on mismatch) |
|
|
87
|
+
| Figures/tables submitted as separate attachments (radiology, most medical journals) | `check_xref.py --strict --allow-separate-attachments` | Downgrades `MISSING_DOCX` to WARN; `MISSING_BODY`/`MISMATCH` remain P0 |
|
|
88
|
+
| **v_(N+1) docx build-time regeneration check** | `check_xref.py --vN-docx-md5 <prev>.docx [--vN-md <prev>.md]` | Defense-in-depth: identity = unmodified seed copy; missing diff lines = body not regenerated |
|
|
89
|
+
| **Master pre-submission gate** (recommended before any submission) | `scripts/pre_submission_gate.sh` | Chains `check_citation_keys` → `verify_refs --strict` → `render_pandoc` (optional) → `check_xref --strict`; single artifact `qc/pre_submission_gate.json` |
|
|
90
|
+
| Bibliographic audit against PubMed / CrossRef | **delegate** to `/verify-refs` | Audit-only — keep writer/auditor separation |
|
|
91
|
+
|
|
92
|
+
## Workflows
|
|
93
|
+
|
|
94
|
+
### A. Pandoc citeproc (default for solo authors and final submissions)
|
|
95
|
+
|
|
96
|
+
User provides `manuscript.md` with `[@bibkey]` citations + `refs.bib`.
|
|
97
|
+
1. **Gate**: `python "${CLAUDE_SKILL_DIR}/scripts/check_citation_keys.py" manuscript.md refs.bib`
|
|
98
|
+
— exits non-zero on UNDEFINED keys. Fix and re-run.
|
|
99
|
+
2. **Render**:
|
|
100
|
+
```bash
|
|
101
|
+
"${CLAUDE_SKILL_DIR}/scripts/render_pandoc.sh" \
|
|
102
|
+
-j european-radiology \
|
|
103
|
+
-i manuscript.md \
|
|
104
|
+
-b refs.bib \
|
|
105
|
+
-o manuscript_final.docx
|
|
106
|
+
```
|
|
107
|
+
Bundled CSLs (in `citation_styles/`): `european-radiology`, `radiology`,
|
|
108
|
+
`american-journal-of-roentgenology`, `cardiovascular-and-interventional-radiology`,
|
|
109
|
+
`korean-journal-of-radiology`, `vancouver`, `vancouver-superscript`,
|
|
110
|
+
`springer-basic-brackets`, `springer-vancouver-brackets`. Use
|
|
111
|
+
`radiology` for RYAI; use `vancouver` for JVIR (no dedicated CSL).
|
|
112
|
+
3. **QC**:
|
|
113
|
+
```bash
|
|
114
|
+
python3 "${CLAUDE_SKILL_DIR}/scripts/check_xref.py" \
|
|
115
|
+
--md manuscript.md --docx manuscript_final.docx \
|
|
116
|
+
--out qc/xref_audit.json --strict
|
|
117
|
+
```
|
|
118
|
+
Treat `submission_safe: false` as a halt. Route fixes by symptom — see
|
|
119
|
+
the table in `references/check_xref_symptoms.md`.
|
|
120
|
+
4. **Audit hand-off**: invoke `/verify-refs` for the PubMed/CrossRef audit
|
|
121
|
+
before sign-off.
|
|
122
|
+
|
|
123
|
+
### B. Zotero CWYW (co-author Word workflow)
|
|
124
|
+
|
|
125
|
+
User has a markdown SSOT and wants reviewers to edit citations directly in
|
|
126
|
+
Word. Each reference must already exist as a Zotero item; the user supplies
|
|
127
|
+
a `[N] → ZoteroKey` mapping.
|
|
128
|
+
1. **Convert markers**:
|
|
129
|
+
```bash
|
|
130
|
+
python3 "${CLAUDE_SKILL_DIR}/scripts/md_marker_convert.py" \
|
|
131
|
+
--input manuscript.md --output manuscript_keys.md \
|
|
132
|
+
--map ref_map.json --to-keys
|
|
133
|
+
```
|
|
134
|
+
Optionally stage with `--active-ns 1,2,3,4,19` for a sample build first
|
|
135
|
+
(validated on an active meta-analysis project: 5-ref sample reduces Word Refresh blast radius
|
|
136
|
+
when debugging).
|
|
137
|
+
2. **Render to .docx** with pandoc (workflow A) so the body has plain text
|
|
138
|
+
`[@key]` markers, OR pre-build a .docx some other way that still contains
|
|
139
|
+
plain `[@key]` text.
|
|
140
|
+
3. **Inject CWYW**:
|
|
141
|
+
```bash
|
|
142
|
+
python3 "${CLAUDE_SKILL_DIR}/scripts/inject_zotero_cwyw.py" \
|
|
143
|
+
--input manuscript_keys.docx --output manuscript_cwyw.docx \
|
|
144
|
+
--user-id 16613550 --keys-from keys.txt
|
|
145
|
+
```
|
|
146
|
+
The script fetches Zotero metadata via the local connector (port 23119);
|
|
147
|
+
any HTTP failure aborts with non-zero exit.
|
|
148
|
+
4. **First-build instruction** (REQUIRED — see Known Limitation #1): open
|
|
149
|
+
the output in Word → Zotero tab → **Add/Edit Bibliography** once. After
|
|
150
|
+
that, **Refresh** keeps citations and bibliography in sync as authors
|
|
151
|
+
edit.
|
|
152
|
+
5. **Surgical patches are unsafe**: for ref additions in later rounds, edit
|
|
153
|
+
the markdown SSOT and rebuild the whole .docx instead of regex-patching
|
|
154
|
+
the post-CWYW file. Zotero's rendered `[N]` superscripts can collide
|
|
155
|
+
with plain `[N]` markers and corrupt the field codes.
|
|
156
|
+
|
|
157
|
+
### C. Cascade rejection re-render (find-journal hand-off)
|
|
158
|
+
|
|
159
|
+
User got rejected from journal A and `/find-journal` recommended journal B.
|
|
160
|
+
1. Confirm the new CSL exists in `citation_styles/` (or fetch from
|
|
161
|
+
https://citationstyles.org/styles and drop in).
|
|
162
|
+
2. Re-run `render_pandoc.sh -j <new-csl>` against the same `manuscript.md` +
|
|
163
|
+
`refs.bib`.
|
|
164
|
+
3. Re-run `check_xref.py --strict`.
|
|
165
|
+
4. Re-run `/verify-refs` if any new references were added during the
|
|
166
|
+
inter-journal revision.
|
|
167
|
+
|
|
168
|
+
### D. Cross-reference QC only
|
|
169
|
+
|
|
170
|
+
User shipped a manuscript and a reviewer flagged a Table/Figure mismatch.
|
|
171
|
+
1. Run `check_xref.py --strict` on the current `manuscript.md` + `.docx`.
|
|
172
|
+
2. Inspect `qc/xref_audit.json`. Body caption is the SSOT — fix `manuscript.md`
|
|
173
|
+
and rebuild, never patch the .docx by hand.
|
|
174
|
+
3. See `references/check_xref_symptoms.md` for the
|
|
175
|
+
`MISSING_BODY` / `MISSING_DOCX` / `MISMATCH` triage table.
|
|
176
|
+
4. For journals that accept figures and tables as **separate attachment files**
|
|
177
|
+
(the default in European Radiology, Radiology, AJR, JVIR, KJR, and most
|
|
178
|
+
medical journals), pass `--allow-separate-attachments`. `MISSING_DOCX` rows
|
|
179
|
+
are then recorded as WARN rather than FAIL; `MISSING_BODY` and `MISMATCH`
|
|
180
|
+
remain P0 because they indicate SSOT drift, not attachment policy.
|
|
181
|
+
|
|
182
|
+
### D'. v_(N+1) docx regeneration check (build-time companion)
|
|
183
|
+
|
|
184
|
+
When building v_(N+1) from a frozen v_N, the v_(N+1) docx MUST differ
|
|
185
|
+
from v_N docx by content — a byte-identical copy is a silent seed-copy
|
|
186
|
+
that will revert markdown edits at peer review. `check_xref.py` carries
|
|
187
|
+
two flags for the build-time companion to the submission-time gate
|
|
188
|
+
in `scripts/verify_package_integrity.py --assert-vN-docx-changed`:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
python3 "${CLAUDE_SKILL_DIR}/scripts/check_xref.py" \
|
|
192
|
+
--md manuscript_v2.md \
|
|
193
|
+
--docx manuscript_v2.docx \
|
|
194
|
+
--vN-docx-md5 manuscript_v1.docx \
|
|
195
|
+
--vN-md manuscript_v1.md \
|
|
196
|
+
--strict
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
- `--vN-docx-md5` alone: MD5 identity check. Identical bytes = FAIL.
|
|
200
|
+
- `--vN-docx-md5 + --vN-md`: additionally extracts the markdown-only diff
|
|
201
|
+
between v_N and v_(N+1) and verifies each ≥40-char diff line appears
|
|
202
|
+
verbatim (whitespace-normalized, case-insensitive) in the new docx
|
|
203
|
+
body XML. Missing diff lines = body did not pick up the markdown edits.
|
|
204
|
+
|
|
205
|
+
Output records the result under `vN_docx_check` in `qc/xref_audit.json`.
|
|
206
|
+
Either failure mode causes a non-zero exit even without `--strict`.
|
|
207
|
+
|
|
208
|
+
### E. Master pre-submission gate (recommended end-to-end chain)
|
|
209
|
+
|
|
210
|
+
The single entry point that combines workflows A and D plus `/verify-refs`
|
|
211
|
+
into one aborting chain. Use this immediately before submission or before
|
|
212
|
+
circulating a v_N package to senior co-authors.
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
bash "${CLAUDE_SKILL_DIR}/scripts/pre_submission_gate.sh" \
|
|
216
|
+
--md manuscript/manuscript.md \
|
|
217
|
+
--bib manuscript/_src/refs.bib \
|
|
218
|
+
--docx submission/<journal>/manuscript.docx \
|
|
219
|
+
--allow-separate-attachments # omit if the journal accepts inline figures/tables
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Stage order (first failure aborts):
|
|
223
|
+
1. `check_citation_keys.py manuscript.md refs.bib` — UNDEFINED / UNUSED keys
|
|
224
|
+
2. `verify_refs.py refs.bib --strict` — PubMed / CrossRef per-entry verification
|
|
225
|
+
3. `render_pandoc.sh -j <csl> -i ... -b ... -o ...` — invoked only when `--docx` is omitted
|
|
226
|
+
4. `check_xref.py --md ... --docx ... --strict [--allow-separate-attachments]`
|
|
227
|
+
|
|
228
|
+
On success the chain writes `qc/pre_submission_gate.json` (plus the
|
|
229
|
+
per-stage artifacts `qc/reference_audit.json` and `qc/xref_audit.json`)
|
|
230
|
+
with `submission_safe: true`. On any failure the JSON records the failing
|
|
231
|
+
stage and exit code, and the script exits non-zero — do not submit until
|
|
232
|
+
the failing stage passes.
|
|
233
|
+
|
|
234
|
+
Critical: the gate does **not** reimplement any check. It calls the existing
|
|
235
|
+
scripts as subprocesses. If you find yourself wanting to add a check, add it
|
|
236
|
+
to the underlying script (the gate then picks it up automatically).
|
|
237
|
+
|
|
238
|
+
## Quality Gates
|
|
239
|
+
|
|
240
|
+
This skill defines **three submission gates** and **one user approval gate**:
|
|
241
|
+
|
|
242
|
+
- **Gate 1 (citekey integrity)**: `check_citation_keys.py` exits non-zero on
|
|
243
|
+
UNDEFINED keys. The pipeline halts; the user reviews and fixes.
|
|
244
|
+
- **Gate 2 (cross-reference integrity)**: `check_xref.py --strict` exits 1 on
|
|
245
|
+
any `MISSING_DOCX` / `MISSING_BODY` / `MISMATCH` row. The user reviews
|
|
246
|
+
`qc/xref_audit.json` and resolves before proceeding.
|
|
247
|
+
- **Gate 3 (audit hand-off)**: before sign-off, the user must run
|
|
248
|
+
`/verify-refs` and confirm `submission_safe: true` in
|
|
249
|
+
`qc/reference_audit.json`. This skill never marks the bibliography
|
|
250
|
+
audited on its own.
|
|
251
|
+
- **User approval gate (CWYW first build)**: the user must perform Word →
|
|
252
|
+
Zotero → Add/Edit Bibliography manually after the first
|
|
253
|
+
`inject_zotero_cwyw.py` build. The skill cannot automate this and warns
|
|
254
|
+
on stderr that it is required.
|
|
255
|
+
|
|
256
|
+
## Provenance
|
|
257
|
+
|
|
258
|
+
`scripts/_vendor_citation_writer.py` is vendored from
|
|
259
|
+
`alisoroushmd/zotero-mcp` @ `ed5dfb71`, MIT licensed. See
|
|
260
|
+
[`NOTICE.md`](./NOTICE.md) and [`LICENSE.zotero-mcp`](./LICENSE.zotero-mcp).
|
|
261
|
+
|
|
262
|
+
## Related
|
|
263
|
+
|
|
264
|
+
- `~/.claude/rules/manuscript-references.md` — global rule (decision tree
|
|
265
|
+
this skill implements)
|
|
266
|
+
- `~/.claude/rules/agent-skill-routing.md` — skill router (this skill is the
|
|
267
|
+
reference-handling row)
|
|
268
|
+
- `~/.claude/rules/zotero-workflow.md` — BBT auto-export, MCP setup
|
|
269
|
+
- `/verify-refs` — read-only audit (PubMed / CrossRef + first-author
|
|
270
|
+
cross-check)
|
|
271
|
+
- `/lit-sync` — Zotero ↔ Obsidian sync, `refs.bib` provider
|
|
272
|
+
- `/write-paper` Phase 7.6 — calls this skill (one-line delegation)
|
|
273
|
+
- `/revise`, `/sync-submission`, `/find-journal` — call this skill on
|
|
274
|
+
rebuild / re-render / cascade
|
|
275
|
+
|
|
276
|
+
## Known Limitations
|
|
277
|
+
|
|
278
|
+
1. **First-build empty BIBL field (CWYW)**: `inject_zotero_cwyw.py` writes a
|
|
279
|
+
stub `ADDIN ZOTERO_BIBL` field; Word's Zotero Refresh treats an empty
|
|
280
|
+
stub as user-customized and refuses to populate it. User must run
|
|
281
|
+
Add/Edit Bibliography once. Subsequent Refresh works as expected.
|
|
282
|
+
Validated on Word for Mac, an active meta-analysis project.
|
|
283
|
+
2. **Webpage / non-journal item types**: handled by the patched
|
|
284
|
+
`zotero_to_csl_json` that fetches Zotero's native CSL-JSON; do not bypass
|
|
285
|
+
this patch.
|
|
286
|
+
3. **Surgical post-build regex patches are unsafe** — see Workflow B step 5.
|
|
287
|
+
4. **Local Zotero required for CWYW** — port 23119 must be reachable; no
|
|
288
|
+
web-API fallback yet (would need `ZOTERO_API_KEY`). On failure the script
|
|
289
|
+
aborts with non-zero exit so partial builds never ship.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Citation Styles (CSL)
|
|
2
|
+
|
|
3
|
+
Journal-specific Citation Style Language files for pandoc citeproc rendering.
|
|
4
|
+
Source: https://github.com/citation-style-language/styles (zotero/styles).
|
|
5
|
+
|
|
6
|
+
## Bundled CSLs
|
|
7
|
+
|
|
8
|
+
| File | Use for | Notes |
|
|
9
|
+
|------|---------|-------|
|
|
10
|
+
| `european-radiology.csl` | European Radiology, EURE | Dependent on `springer-basic-brackets.csl` (must be in same dir) |
|
|
11
|
+
| `cardiovascular-and-interventional-radiology.csl` | CVIR | Dependent on `springer-vancouver-brackets.csl` |
|
|
12
|
+
| `radiology.csl` | Radiology (RSNA) | Independent. Also acceptable fallback for Radiology: AI when no dedicated CSL exists |
|
|
13
|
+
| `american-journal-of-roentgenology.csl` | AJR | Independent |
|
|
14
|
+
| `korean-journal-of-radiology.csl` | KJR | Vancouver-superscript variant |
|
|
15
|
+
| `vancouver.csl` | Generic Vancouver (brackets) | Fallback when journal CSL unavailable (e.g., JVIR, Radiology: AI) |
|
|
16
|
+
| `vancouver-superscript.csl` | Generic Vancouver (superscript) | Alternative fallback |
|
|
17
|
+
| `springer-basic-brackets.csl` | Parent of European Radiology | Do not use directly — keep co-located |
|
|
18
|
+
| `springer-vancouver-brackets.csl` | Parent of CVIR | Do not use directly — keep co-located |
|
|
19
|
+
|
|
20
|
+
## Missing — use fallback
|
|
21
|
+
|
|
22
|
+
- **Radiology: Artificial Intelligence (RYAI)**: no dedicated CSL on zotero/styles as of 2026-04. Use `radiology.csl` (parent journal, identical RSNA house style).
|
|
23
|
+
- **Journal of Vascular and Interventional Radiology (JVIR)**: no dedicated CSL. Use `vancouver.csl` and verify against latest author guidelines before submission.
|
|
24
|
+
|
|
25
|
+
## Updating
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
cd "$(dirname "$0")"
|
|
29
|
+
for s in european-radiology radiology american-journal-of-roentgenology \
|
|
30
|
+
cardiovascular-and-interventional-radiology korean-journal-of-radiology \
|
|
31
|
+
vancouver vancouver-superscript \
|
|
32
|
+
springer-basic-brackets springer-vancouver-brackets; do
|
|
33
|
+
curl -fsSL -o "${s}.csl" "https://www.zotero.org/styles/${s}"
|
|
34
|
+
done
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Verify dependent-parent links if Springer reorganizes:
|
|
38
|
+
```bash
|
|
39
|
+
grep -H independent-parent *.csl
|
|
40
|
+
```
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US">
|
|
3
|
+
<info>
|
|
4
|
+
<title>American Journal of Roentgenology</title>
|
|
5
|
+
<title-short>AJR</title-short>
|
|
6
|
+
<id>http://www.zotero.org/styles/american-journal-of-roentgenology</id>
|
|
7
|
+
<link href="http://www.zotero.org/styles/american-journal-of-roentgenology" rel="self"/>
|
|
8
|
+
<link href="http://www.zotero.org/styles/nlm-citation-sequence-brackets" rel="template"/>
|
|
9
|
+
<link href="https://www.ajronline.org/authorguidelines" rel="documentation"/>
|
|
10
|
+
<author>
|
|
11
|
+
<name>Francis Deng</name>
|
|
12
|
+
<email>francis.deng@gmail.com</email>
|
|
13
|
+
</author>
|
|
14
|
+
<contributor>
|
|
15
|
+
<name>Patrick O'Brien</name>
|
|
16
|
+
</contributor>
|
|
17
|
+
<category citation-format="numeric"/>
|
|
18
|
+
<category field="medicine"/>
|
|
19
|
+
<issn>0361-803X</issn>
|
|
20
|
+
<eissn>1546-3141</eissn>
|
|
21
|
+
<summary>AJR style based on Vancouver but with brackets</summary>
|
|
22
|
+
<updated>2026-01-25T22:16:24+00:00</updated>
|
|
23
|
+
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
|
24
|
+
</info>
|
|
25
|
+
<locale xml:lang="en">
|
|
26
|
+
<terms>
|
|
27
|
+
<term name="printing">published</term>
|
|
28
|
+
</terms>
|
|
29
|
+
</locale>
|
|
30
|
+
<macro name="author">
|
|
31
|
+
<names variable="author" suffix=". ">
|
|
32
|
+
<name delimiter-precedes-last="always" et-al-min="7" et-al-use-first="3" initialize-with="" name-as-sort-order="all" sort-separator=" "/>
|
|
33
|
+
<label form="short" strip-periods="true" prefix=", "/>
|
|
34
|
+
<substitute>
|
|
35
|
+
<names variable="editor"/>
|
|
36
|
+
</substitute>
|
|
37
|
+
</names>
|
|
38
|
+
</macro>
|
|
39
|
+
<macro name="editor">
|
|
40
|
+
<names variable="editor">
|
|
41
|
+
<name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/>
|
|
42
|
+
<label form="short" strip-periods="true" prefix=", "/>
|
|
43
|
+
</names>
|
|
44
|
+
</macro>
|
|
45
|
+
<macro name="date">
|
|
46
|
+
<choose>
|
|
47
|
+
<if type="article-newspaper report webpage post post-weblog" match="any">
|
|
48
|
+
<date variable="issued" form="text"/>
|
|
49
|
+
</if>
|
|
50
|
+
<else>
|
|
51
|
+
<date variable="issued" form="text" date-parts="year"/>
|
|
52
|
+
</else>
|
|
53
|
+
</choose>
|
|
54
|
+
</macro>
|
|
55
|
+
<macro name="publisher">
|
|
56
|
+
<group delimiter=", ">
|
|
57
|
+
<group delimiter=" ">
|
|
58
|
+
<text variable="genre" text-case="title"/>
|
|
59
|
+
<text variable="number"/>
|
|
60
|
+
</group>
|
|
61
|
+
<group delimiter=": ">
|
|
62
|
+
<choose>
|
|
63
|
+
<if type="thesis" match="none">
|
|
64
|
+
<text variable="publisher-place"/>
|
|
65
|
+
</if>
|
|
66
|
+
</choose>
|
|
67
|
+
<text variable="publisher"/>
|
|
68
|
+
</group>
|
|
69
|
+
<choose>
|
|
70
|
+
<if variable="URL" match="none">
|
|
71
|
+
<text macro="date"/>
|
|
72
|
+
</if>
|
|
73
|
+
</choose>
|
|
74
|
+
</group>
|
|
75
|
+
</macro>
|
|
76
|
+
<macro name="access">
|
|
77
|
+
<choose>
|
|
78
|
+
<if variable="page" match="none">
|
|
79
|
+
<choose>
|
|
80
|
+
<if variable="DOI" match="any">
|
|
81
|
+
<group prefix=". " delimiter=". ">
|
|
82
|
+
<date variable="issued" form="text" prefix="Epub ahead of print "/>
|
|
83
|
+
<text variable="DOI" prefix="DOI: "/>
|
|
84
|
+
</group>
|
|
85
|
+
</if>
|
|
86
|
+
<else>
|
|
87
|
+
<group delimiter=". " prefix=". ">
|
|
88
|
+
<text variable="URL"/>
|
|
89
|
+
<text macro="accessed-date"/>
|
|
90
|
+
</group>
|
|
91
|
+
</else>
|
|
92
|
+
</choose>
|
|
93
|
+
</if>
|
|
94
|
+
</choose>
|
|
95
|
+
</macro>
|
|
96
|
+
<macro name="accessed-date">
|
|
97
|
+
<choose>
|
|
98
|
+
<if variable="URL">
|
|
99
|
+
<group delimiter=". ">
|
|
100
|
+
<group delimiter=" ">
|
|
101
|
+
<text term="printing" text-case="capitalize-first"/>
|
|
102
|
+
<text macro="date"/>
|
|
103
|
+
</group>
|
|
104
|
+
<group delimiter=" ">
|
|
105
|
+
<text term="accessed" text-case="capitalize-first"/>
|
|
106
|
+
<date variable="accessed" form="text"/>
|
|
107
|
+
</group>
|
|
108
|
+
</group>
|
|
109
|
+
</if>
|
|
110
|
+
</choose>
|
|
111
|
+
</macro>
|
|
112
|
+
<macro name="container-title">
|
|
113
|
+
<choose>
|
|
114
|
+
<if type="article-journal" match="any">
|
|
115
|
+
<text variable="container-title" form="short" strip-periods="true" font-style="italic"/>
|
|
116
|
+
</if>
|
|
117
|
+
<else>
|
|
118
|
+
<text variable="container-title" font-style="italic"/>
|
|
119
|
+
</else>
|
|
120
|
+
</choose>
|
|
121
|
+
</macro>
|
|
122
|
+
<macro name="title">
|
|
123
|
+
<choose>
|
|
124
|
+
<if type="book patent report thesis" match="any">
|
|
125
|
+
<text variable="title" font-style="italic"/>
|
|
126
|
+
</if>
|
|
127
|
+
<else>
|
|
128
|
+
<text variable="title"/>
|
|
129
|
+
</else>
|
|
130
|
+
</choose>
|
|
131
|
+
</macro>
|
|
132
|
+
<macro name="page">
|
|
133
|
+
<group delimiter=" ">
|
|
134
|
+
<label variable="page" form="short"/>
|
|
135
|
+
<text variable="page"/>
|
|
136
|
+
</group>
|
|
137
|
+
</macro>
|
|
138
|
+
<macro name="edition">
|
|
139
|
+
<choose>
|
|
140
|
+
<if is-numeric="edition">
|
|
141
|
+
<group delimiter=" ">
|
|
142
|
+
<number variable="edition" form="ordinal"/>
|
|
143
|
+
<text term="edition" form="short"/>
|
|
144
|
+
</group>
|
|
145
|
+
</if>
|
|
146
|
+
<else>
|
|
147
|
+
<text variable="edition" suffix="."/>
|
|
148
|
+
</else>
|
|
149
|
+
</choose>
|
|
150
|
+
</macro>
|
|
151
|
+
<citation collapse="citation-number">
|
|
152
|
+
<sort>
|
|
153
|
+
<key variable="citation-number"/>
|
|
154
|
+
</sort>
|
|
155
|
+
<layout delimiter=", " prefix="[" suffix="]">
|
|
156
|
+
<text variable="citation-number"/>
|
|
157
|
+
</layout>
|
|
158
|
+
</citation>
|
|
159
|
+
<bibliography et-al-min="7" et-al-use-first="3" second-field-align="flush">
|
|
160
|
+
<layout>
|
|
161
|
+
<text variable="citation-number" suffix="."/>
|
|
162
|
+
<text macro="author"/>
|
|
163
|
+
<text macro="title"/>
|
|
164
|
+
<choose>
|
|
165
|
+
<if type="bill book graphic legal_case legislation motion_picture patent report song thesis" match="any">
|
|
166
|
+
<group delimiter=". " prefix=". ">
|
|
167
|
+
<text macro="edition"/>
|
|
168
|
+
<text macro="publisher"/>
|
|
169
|
+
</group>
|
|
170
|
+
</if>
|
|
171
|
+
<else-if type="chapter paper-conference" match="any">
|
|
172
|
+
<group delimiter=", " prefix=". ">
|
|
173
|
+
<group delimiter=". ">
|
|
174
|
+
<group delimiter=" ">
|
|
175
|
+
<text term="in" suffix=":" text-case="capitalize-first"/>
|
|
176
|
+
<text macro="editor"/>
|
|
177
|
+
<text variable="container-title" font-style="italic"/>
|
|
178
|
+
</group>
|
|
179
|
+
<text macro="publisher"/>
|
|
180
|
+
</group>
|
|
181
|
+
<text macro="page"/>
|
|
182
|
+
</group>
|
|
183
|
+
</else-if>
|
|
184
|
+
<else-if type="article-newspaper article-magazine" match="any">
|
|
185
|
+
<group delimiter=", " prefix=". ">
|
|
186
|
+
<text macro="container-title"/>
|
|
187
|
+
<text macro="date"/>
|
|
188
|
+
<text macro="page"/>
|
|
189
|
+
</group>
|
|
190
|
+
</else-if>
|
|
191
|
+
<else>
|
|
192
|
+
<group delimiter="; " prefix=". ">
|
|
193
|
+
<group delimiter=" ">
|
|
194
|
+
<text macro="container-title"/>
|
|
195
|
+
<choose>
|
|
196
|
+
<if variable="page" match="any">
|
|
197
|
+
<text macro="date"/>
|
|
198
|
+
</if>
|
|
199
|
+
</choose>
|
|
200
|
+
</group>
|
|
201
|
+
<group delimiter=":">
|
|
202
|
+
<text variable="volume"/>
|
|
203
|
+
<text variable="page"/>
|
|
204
|
+
</group>
|
|
205
|
+
</group>
|
|
206
|
+
</else>
|
|
207
|
+
</choose>
|
|
208
|
+
<text macro="access"/>
|
|
209
|
+
</layout>
|
|
210
|
+
</bibliography>
|
|
211
|
+
</style>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" default-locale="en-US">
|
|
3
|
+
<!-- Generated with https://github.com/citation-style-language/utilities/tree/master/generate_dependent_styles/data/springer -->
|
|
4
|
+
<info>
|
|
5
|
+
<title>CardioVascular and Interventional Radiology</title>
|
|
6
|
+
<title-short>Cardiovasc Intervent Radiol</title-short>
|
|
7
|
+
<id>http://www.zotero.org/styles/cardiovascular-and-interventional-radiology</id>
|
|
8
|
+
<link href="http://www.zotero.org/styles/cardiovascular-and-interventional-radiology" rel="self"/>
|
|
9
|
+
<link href="http://www.zotero.org/styles/springer-vancouver-brackets" rel="independent-parent"/>
|
|
10
|
+
<link href="http://www.springer.com/cda/content/document/cda_downloaddocument/Key_Style_Points_1.0.pdf" rel="documentation"/>
|
|
11
|
+
<link href="http://www.springer.com/cda/content/document/cda_downloaddocument/manuscript-guidelines-1.0.pdf" rel="documentation"/>
|
|
12
|
+
<category citation-format="numeric"/>
|
|
13
|
+
<category field="science"/>
|
|
14
|
+
<issn>0174-1551</issn>
|
|
15
|
+
<eissn>1432-086X</eissn>
|
|
16
|
+
<updated>2016-02-14T10:21:15+00:00</updated>
|
|
17
|
+
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
|
18
|
+
</info>
|
|
19
|
+
</style>
|