scientific-writer 2.2.1__py3-none-any.whl → 2.2.3__py3-none-any.whl

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.

Potentially problematic release.


This version of scientific-writer might be problematic. Click here for more details.

Files changed (311) hide show
  1. scientific_writer/.claude/WRITER.md +748 -0
  2. scientific_writer/.claude/settings.local.json +30 -0
  3. scientific_writer/.claude/skills/citation-management/SKILL.md +1046 -0
  4. scientific_writer/.claude/skills/citation-management/assets/bibtex_template.bib +264 -0
  5. scientific_writer/.claude/skills/citation-management/assets/citation_checklist.md +386 -0
  6. scientific_writer/.claude/skills/citation-management/references/bibtex_formatting.md +908 -0
  7. scientific_writer/.claude/skills/citation-management/references/citation_validation.md +794 -0
  8. scientific_writer/.claude/skills/citation-management/references/google_scholar_search.md +725 -0
  9. scientific_writer/.claude/skills/citation-management/references/metadata_extraction.md +870 -0
  10. scientific_writer/.claude/skills/citation-management/references/pubmed_search.md +839 -0
  11. scientific_writer/.claude/skills/citation-management/scripts/doi_to_bibtex.py +204 -0
  12. scientific_writer/.claude/skills/citation-management/scripts/extract_metadata.py +569 -0
  13. scientific_writer/.claude/skills/citation-management/scripts/format_bibtex.py +349 -0
  14. scientific_writer/.claude/skills/citation-management/scripts/search_google_scholar.py +282 -0
  15. scientific_writer/.claude/skills/citation-management/scripts/search_pubmed.py +398 -0
  16. scientific_writer/.claude/skills/citation-management/scripts/validate_citations.py +497 -0
  17. scientific_writer/.claude/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
  18. scientific_writer/.claude/skills/clinical-reports/README.md +236 -0
  19. scientific_writer/.claude/skills/clinical-reports/SKILL.md +1088 -0
  20. scientific_writer/.claude/skills/clinical-reports/assets/case_report_template.md +352 -0
  21. scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
  22. scientific_writer/.claude/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
  23. scientific_writer/.claude/skills/clinical-reports/assets/consult_note_template.md +305 -0
  24. scientific_writer/.claude/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
  25. scientific_writer/.claude/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
  26. scientific_writer/.claude/skills/clinical-reports/assets/history_physical_template.md +305 -0
  27. scientific_writer/.claude/skills/clinical-reports/assets/lab_report_template.md +309 -0
  28. scientific_writer/.claude/skills/clinical-reports/assets/pathology_report_template.md +249 -0
  29. scientific_writer/.claude/skills/clinical-reports/assets/quality_checklist.md +338 -0
  30. scientific_writer/.claude/skills/clinical-reports/assets/radiology_report_template.md +318 -0
  31. scientific_writer/.claude/skills/clinical-reports/assets/soap_note_template.md +253 -0
  32. scientific_writer/.claude/skills/clinical-reports/references/case_report_guidelines.md +570 -0
  33. scientific_writer/.claude/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
  34. scientific_writer/.claude/skills/clinical-reports/references/data_presentation.md +530 -0
  35. scientific_writer/.claude/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
  36. scientific_writer/.claude/skills/clinical-reports/references/medical_terminology.md +588 -0
  37. scientific_writer/.claude/skills/clinical-reports/references/patient_documentation.md +744 -0
  38. scientific_writer/.claude/skills/clinical-reports/references/peer_review_standards.md +585 -0
  39. scientific_writer/.claude/skills/clinical-reports/references/regulatory_compliance.md +577 -0
  40. scientific_writer/.claude/skills/clinical-reports/scripts/check_deidentification.py +346 -0
  41. scientific_writer/.claude/skills/clinical-reports/scripts/compliance_checker.py +78 -0
  42. scientific_writer/.claude/skills/clinical-reports/scripts/extract_clinical_data.py +102 -0
  43. scientific_writer/.claude/skills/clinical-reports/scripts/format_adverse_events.py +103 -0
  44. scientific_writer/.claude/skills/clinical-reports/scripts/generate_report_template.py +163 -0
  45. scientific_writer/.claude/skills/clinical-reports/scripts/terminology_validator.py +133 -0
  46. scientific_writer/.claude/skills/clinical-reports/scripts/validate_case_report.py +334 -0
  47. scientific_writer/.claude/skills/clinical-reports/scripts/validate_trial_report.py +89 -0
  48. scientific_writer/.claude/skills/document-skills/docx/LICENSE.txt +30 -0
  49. scientific_writer/.claude/skills/document-skills/docx/SKILL.md +197 -0
  50. scientific_writer/.claude/skills/document-skills/docx/docx-js.md +350 -0
  51. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  52. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  53. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  54. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  55. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  56. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  57. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  58. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  59. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  60. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  61. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  62. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  63. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  64. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  65. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  66. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  67. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  68. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  69. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  70. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  71. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  72. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  73. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  74. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  75. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  76. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  77. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  78. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  79. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  80. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  81. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  82. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
  83. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  84. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  85. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  86. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  87. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  88. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  89. scientific_writer/.claude/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  90. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
  91. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
  92. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
  93. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
  94. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
  95. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
  96. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
  97. scientific_writer/.claude/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
  98. scientific_writer/.claude/skills/document-skills/docx/ooxml.md +610 -0
  99. scientific_writer/.claude/skills/document-skills/docx/scripts/__init__.py +1 -0
  100. scientific_writer/.claude/skills/document-skills/docx/scripts/document.py +1276 -0
  101. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
  102. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
  103. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  104. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
  105. scientific_writer/.claude/skills/document-skills/docx/scripts/templates/people.xml +3 -0
  106. scientific_writer/.claude/skills/document-skills/docx/scripts/utilities.py +374 -0
  107. scientific_writer/.claude/skills/document-skills/pdf/LICENSE.txt +30 -0
  108. scientific_writer/.claude/skills/document-skills/pdf/SKILL.md +294 -0
  109. scientific_writer/.claude/skills/document-skills/pdf/forms.md +205 -0
  110. scientific_writer/.claude/skills/document-skills/pdf/reference.md +612 -0
  111. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
  112. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  113. scientific_writer/.claude/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
  114. scientific_writer/.claude/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  115. scientific_writer/.claude/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
  116. scientific_writer/.claude/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
  117. scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
  118. scientific_writer/.claude/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  119. scientific_writer/.claude/skills/document-skills/pptx/LICENSE.txt +30 -0
  120. scientific_writer/.claude/skills/document-skills/pptx/SKILL.md +484 -0
  121. scientific_writer/.claude/skills/document-skills/pptx/html2pptx.md +625 -0
  122. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  123. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  124. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  125. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  126. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  127. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  128. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  129. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  130. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  131. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  132. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  133. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  134. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  135. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  136. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  137. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  138. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  139. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  140. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  141. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  142. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  143. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  144. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  145. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  146. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  147. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  148. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  149. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  150. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  151. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  152. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  153. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
  154. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  155. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  156. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  157. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  158. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  159. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  160. scientific_writer/.claude/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  161. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
  162. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
  163. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
  164. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
  165. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
  166. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
  167. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
  168. scientific_writer/.claude/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
  169. scientific_writer/.claude/skills/document-skills/pptx/ooxml.md +427 -0
  170. scientific_writer/.claude/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
  171. scientific_writer/.claude/skills/document-skills/pptx/scripts/inventory.py +1020 -0
  172. scientific_writer/.claude/skills/document-skills/pptx/scripts/rearrange.py +231 -0
  173. scientific_writer/.claude/skills/document-skills/pptx/scripts/replace.py +385 -0
  174. scientific_writer/.claude/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
  175. scientific_writer/.claude/skills/document-skills/xlsx/LICENSE.txt +30 -0
  176. scientific_writer/.claude/skills/document-skills/xlsx/SKILL.md +289 -0
  177. scientific_writer/.claude/skills/document-skills/xlsx/recalc.py +178 -0
  178. scientific_writer/.claude/skills/hypothesis-generation/SKILL.md +155 -0
  179. scientific_writer/.claude/skills/hypothesis-generation/assets/hypothesis_output_template.md +302 -0
  180. scientific_writer/.claude/skills/hypothesis-generation/references/experimental_design_patterns.md +327 -0
  181. scientific_writer/.claude/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +196 -0
  182. scientific_writer/.claude/skills/hypothesis-generation/references/literature_search_strategies.md +505 -0
  183. scientific_writer/.claude/skills/latex-posters/README.md +417 -0
  184. scientific_writer/.claude/skills/latex-posters/SKILL.md +919 -0
  185. scientific_writer/.claude/skills/latex-posters/assets/baposter_template.tex +257 -0
  186. scientific_writer/.claude/skills/latex-posters/assets/beamerposter_template.tex +244 -0
  187. scientific_writer/.claude/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
  188. scientific_writer/.claude/skills/latex-posters/assets/tikzposter_template.tex +251 -0
  189. scientific_writer/.claude/skills/latex-posters/references/latex_poster_packages.md +745 -0
  190. scientific_writer/.claude/skills/latex-posters/references/poster_content_guide.md +748 -0
  191. scientific_writer/.claude/skills/latex-posters/references/poster_design_principles.md +806 -0
  192. scientific_writer/.claude/skills/latex-posters/references/poster_layout_design.md +900 -0
  193. scientific_writer/.claude/skills/latex-posters/scripts/review_poster.sh +214 -0
  194. scientific_writer/.claude/skills/literature-review/SKILL.md +546 -0
  195. scientific_writer/.claude/skills/literature-review/assets/review_template.md +412 -0
  196. scientific_writer/.claude/skills/literature-review/references/citation_styles.md +166 -0
  197. scientific_writer/.claude/skills/literature-review/references/database_strategies.md +381 -0
  198. scientific_writer/.claude/skills/literature-review/scripts/generate_pdf.py +176 -0
  199. scientific_writer/.claude/skills/literature-review/scripts/search_databases.py +303 -0
  200. scientific_writer/.claude/skills/literature-review/scripts/verify_citations.py +222 -0
  201. scientific_writer/.claude/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
  202. scientific_writer/.claude/skills/markitdown/LICENSE.txt +22 -0
  203. scientific_writer/.claude/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
  204. scientific_writer/.claude/skills/markitdown/QUICK_REFERENCE.md +309 -0
  205. scientific_writer/.claude/skills/markitdown/README.md +184 -0
  206. scientific_writer/.claude/skills/markitdown/SKILL.md +450 -0
  207. scientific_writer/.claude/skills/markitdown/SKILL_SUMMARY.md +307 -0
  208. scientific_writer/.claude/skills/markitdown/assets/example_usage.md +463 -0
  209. scientific_writer/.claude/skills/markitdown/references/api_reference.md +399 -0
  210. scientific_writer/.claude/skills/markitdown/references/file_formats.md +542 -0
  211. scientific_writer/.claude/skills/markitdown/scripts/batch_convert.py +228 -0
  212. scientific_writer/.claude/skills/markitdown/scripts/convert_literature.py +283 -0
  213. scientific_writer/.claude/skills/markitdown/scripts/convert_with_ai.py +243 -0
  214. scientific_writer/.claude/skills/paper-2-web/SKILL.md +455 -0
  215. scientific_writer/.claude/skills/paper-2-web/references/installation.md +141 -0
  216. scientific_writer/.claude/skills/paper-2-web/references/paper2poster.md +346 -0
  217. scientific_writer/.claude/skills/paper-2-web/references/paper2video.md +305 -0
  218. scientific_writer/.claude/skills/paper-2-web/references/paper2web.md +187 -0
  219. scientific_writer/.claude/skills/paper-2-web/references/usage_examples.md +436 -0
  220. scientific_writer/.claude/skills/peer-review/SKILL.md +375 -0
  221. scientific_writer/.claude/skills/peer-review/references/common_issues.md +552 -0
  222. scientific_writer/.claude/skills/peer-review/references/reporting_standards.md +290 -0
  223. scientific_writer/.claude/skills/research-grants/README.md +285 -0
  224. scientific_writer/.claude/skills/research-grants/SKILL.md +896 -0
  225. scientific_writer/.claude/skills/research-grants/assets/budget_justification_template.md +453 -0
  226. scientific_writer/.claude/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
  227. scientific_writer/.claude/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
  228. scientific_writer/.claude/skills/research-grants/references/broader_impacts.md +392 -0
  229. scientific_writer/.claude/skills/research-grants/references/darpa_guidelines.md +636 -0
  230. scientific_writer/.claude/skills/research-grants/references/doe_guidelines.md +586 -0
  231. scientific_writer/.claude/skills/research-grants/references/nih_guidelines.md +851 -0
  232. scientific_writer/.claude/skills/research-grants/references/nsf_guidelines.md +570 -0
  233. scientific_writer/.claude/skills/research-grants/references/specific_aims_guide.md +458 -0
  234. scientific_writer/.claude/skills/research-lookup/README.md +116 -0
  235. scientific_writer/.claude/skills/research-lookup/SKILL.md +443 -0
  236. scientific_writer/.claude/skills/research-lookup/examples.py +174 -0
  237. scientific_writer/.claude/skills/research-lookup/lookup.py +93 -0
  238. scientific_writer/.claude/skills/research-lookup/research_lookup.py +335 -0
  239. scientific_writer/.claude/skills/research-lookup/scripts/research_lookup.py +261 -0
  240. scientific_writer/.claude/skills/scholar-evaluation/SKILL.md +254 -0
  241. scientific_writer/.claude/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
  242. scientific_writer/.claude/skills/scholar-evaluation/scripts/calculate_scores.py +378 -0
  243. scientific_writer/.claude/skills/scientific-critical-thinking/SKILL.md +530 -0
  244. scientific_writer/.claude/skills/scientific-critical-thinking/references/common_biases.md +364 -0
  245. scientific_writer/.claude/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
  246. scientific_writer/.claude/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
  247. scientific_writer/.claude/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
  248. scientific_writer/.claude/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
  249. scientific_writer/.claude/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
  250. scientific_writer/.claude/skills/scientific-schematics/SKILL.md +2035 -0
  251. scientific_writer/.claude/skills/scientific-schematics/assets/block_diagram_template.tex +199 -0
  252. scientific_writer/.claude/skills/scientific-schematics/assets/circuit_template.tex +159 -0
  253. scientific_writer/.claude/skills/scientific-schematics/assets/flowchart_template.tex +161 -0
  254. scientific_writer/.claude/skills/scientific-schematics/assets/pathway_template.tex +162 -0
  255. scientific_writer/.claude/skills/scientific-schematics/assets/tikz_styles.tex +422 -0
  256. scientific_writer/.claude/skills/scientific-schematics/references/best_practices.md +562 -0
  257. scientific_writer/.claude/skills/scientific-schematics/references/diagram_types.md +637 -0
  258. scientific_writer/.claude/skills/scientific-schematics/references/python_libraries.md +791 -0
  259. scientific_writer/.claude/skills/scientific-schematics/references/tikz_guide.md +734 -0
  260. scientific_writer/.claude/skills/scientific-schematics/scripts/circuit_generator.py +307 -0
  261. scientific_writer/.claude/skills/scientific-schematics/scripts/compile_tikz.py +292 -0
  262. scientific_writer/.claude/skills/scientific-schematics/scripts/generate_flowchart.py +281 -0
  263. scientific_writer/.claude/skills/scientific-schematics/scripts/pathway_diagram.py +406 -0
  264. scientific_writer/.claude/skills/scientific-writing/SKILL.md +443 -0
  265. scientific_writer/.claude/skills/scientific-writing/references/citation_styles.md +720 -0
  266. scientific_writer/.claude/skills/scientific-writing/references/figures_tables.md +806 -0
  267. scientific_writer/.claude/skills/scientific-writing/references/imrad_structure.md +658 -0
  268. scientific_writer/.claude/skills/scientific-writing/references/reporting_guidelines.md +748 -0
  269. scientific_writer/.claude/skills/scientific-writing/references/writing_principles.md +824 -0
  270. scientific_writer/.claude/skills/treatment-plans/README.md +483 -0
  271. scientific_writer/.claude/skills/treatment-plans/SKILL.md +817 -0
  272. scientific_writer/.claude/skills/treatment-plans/assets/chronic_disease_management_plan.tex +636 -0
  273. scientific_writer/.claude/skills/treatment-plans/assets/general_medical_treatment_plan.tex +616 -0
  274. scientific_writer/.claude/skills/treatment-plans/assets/mental_health_treatment_plan.tex +745 -0
  275. scientific_writer/.claude/skills/treatment-plans/assets/pain_management_plan.tex +770 -0
  276. scientific_writer/.claude/skills/treatment-plans/assets/perioperative_care_plan.tex +724 -0
  277. scientific_writer/.claude/skills/treatment-plans/assets/quality_checklist.md +471 -0
  278. scientific_writer/.claude/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +727 -0
  279. scientific_writer/.claude/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
  280. scientific_writer/.claude/skills/treatment-plans/references/intervention_guidelines.md +507 -0
  281. scientific_writer/.claude/skills/treatment-plans/references/regulatory_compliance.md +476 -0
  282. scientific_writer/.claude/skills/treatment-plans/references/specialty_specific_guidelines.md +607 -0
  283. scientific_writer/.claude/skills/treatment-plans/references/treatment_plan_standards.md +456 -0
  284. scientific_writer/.claude/skills/treatment-plans/scripts/check_completeness.py +318 -0
  285. scientific_writer/.claude/skills/treatment-plans/scripts/generate_template.py +244 -0
  286. scientific_writer/.claude/skills/treatment-plans/scripts/timeline_generator.py +369 -0
  287. scientific_writer/.claude/skills/treatment-plans/scripts/validate_treatment_plan.py +367 -0
  288. scientific_writer/.claude/skills/venue-templates/SKILL.md +590 -0
  289. scientific_writer/.claude/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
  290. scientific_writer/.claude/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
  291. scientific_writer/.claude/skills/venue-templates/assets/journals/nature_article.tex +171 -0
  292. scientific_writer/.claude/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
  293. scientific_writer/.claude/skills/venue-templates/assets/journals/plos_one.tex +317 -0
  294. scientific_writer/.claude/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
  295. scientific_writer/.claude/skills/venue-templates/references/conferences_formatting.md +564 -0
  296. scientific_writer/.claude/skills/venue-templates/references/grants_requirements.md +787 -0
  297. scientific_writer/.claude/skills/venue-templates/references/journals_formatting.md +486 -0
  298. scientific_writer/.claude/skills/venue-templates/references/posters_guidelines.md +628 -0
  299. scientific_writer/.claude/skills/venue-templates/scripts/customize_template.py +206 -0
  300. scientific_writer/.claude/skills/venue-templates/scripts/query_template.py +260 -0
  301. scientific_writer/.claude/skills/venue-templates/scripts/validate_format.py +255 -0
  302. scientific_writer/__init__.py +1 -1
  303. scientific_writer/api.py +9 -5
  304. scientific_writer/cli.py +9 -5
  305. scientific_writer/core.py +28 -5
  306. {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/METADATA +1 -1
  307. scientific_writer-2.2.3.dist-info/RECORD +312 -0
  308. scientific_writer-2.2.1.dist-info/RECORD +0 -11
  309. {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/WHEEL +0 -0
  310. {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/entry_points.txt +0 -0
  311. {scientific_writer-2.2.1.dist-info → scientific_writer-2.2.3.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,794 @@
1
+ # Citation Validation Guide
2
+
3
+ Comprehensive guide to validating citation accuracy, completeness, and formatting in BibTeX files.
4
+
5
+ ## Overview
6
+
7
+ Citation validation ensures:
8
+ - All citations are accurate and complete
9
+ - DOIs resolve correctly
10
+ - Required fields are present
11
+ - No duplicate entries
12
+ - Proper formatting and syntax
13
+ - Links are accessible
14
+
15
+ Validation should be performed:
16
+ - After extracting metadata
17
+ - Before manuscript submission
18
+ - After manual edits to BibTeX files
19
+ - Periodically for maintained bibliographies
20
+
21
+ ## Validation Categories
22
+
23
+ ### 1. DOI Verification
24
+
25
+ **Purpose**: Ensure DOIs are valid and resolve correctly.
26
+
27
+ #### What to Check
28
+
29
+ **DOI format**:
30
+ ```
31
+ Valid: 10.1038/s41586-021-03819-2
32
+ Valid: 10.1126/science.aam9317
33
+ Invalid: 10.1038/invalid
34
+ Invalid: doi:10.1038/... (should omit "doi:" prefix in BibTeX)
35
+ ```
36
+
37
+ **DOI resolution**:
38
+ - DOI should resolve via https://doi.org/
39
+ - Should redirect to actual article
40
+ - Should not return 404 or error
41
+
42
+ **Metadata consistency**:
43
+ - CrossRef metadata should match BibTeX
44
+ - Author names should align
45
+ - Title should match
46
+ - Year should match
47
+
48
+ #### How to Validate
49
+
50
+ **Manual check**:
51
+ 1. Copy DOI from BibTeX
52
+ 2. Visit https://doi.org/10.1038/nature12345
53
+ 3. Verify it redirects to correct article
54
+ 4. Check metadata matches
55
+
56
+ **Automated check** (recommended):
57
+ ```bash
58
+ python scripts/validate_citations.py references.bib --check-dois
59
+ ```
60
+
61
+ **Process**:
62
+ 1. Extract all DOIs from BibTeX file
63
+ 2. Query doi.org resolver for each
64
+ 3. Query CrossRef API for metadata
65
+ 4. Compare metadata with BibTeX entry
66
+ 5. Report discrepancies
67
+
68
+ #### Common Issues
69
+
70
+ **Broken DOIs**:
71
+ - Typos in DOI
72
+ - Publisher changed DOI (rare)
73
+ - Article retracted
74
+ - Solution: Find correct DOI from publisher site
75
+
76
+ **Mismatched metadata**:
77
+ - BibTeX has old/incorrect information
78
+ - Solution: Re-extract metadata from CrossRef
79
+
80
+ **Missing DOIs**:
81
+ - Older articles may not have DOIs
82
+ - Acceptable for pre-2000 publications
83
+ - Add URL or PMID instead
84
+
85
+ ### 2. Required Fields
86
+
87
+ **Purpose**: Ensure all necessary information is present.
88
+
89
+ #### Required by Entry Type
90
+
91
+ **@article**:
92
+ ```bibtex
93
+ author % REQUIRED
94
+ title % REQUIRED
95
+ journal % REQUIRED
96
+ year % REQUIRED
97
+ volume % Highly recommended
98
+ pages % Highly recommended
99
+ doi % Highly recommended for modern papers
100
+ ```
101
+
102
+ **@book**:
103
+ ```bibtex
104
+ author OR editor % REQUIRED (at least one)
105
+ title % REQUIRED
106
+ publisher % REQUIRED
107
+ year % REQUIRED
108
+ isbn % Recommended
109
+ ```
110
+
111
+ **@inproceedings**:
112
+ ```bibtex
113
+ author % REQUIRED
114
+ title % REQUIRED
115
+ booktitle % REQUIRED (conference/proceedings name)
116
+ year % REQUIRED
117
+ pages % Recommended
118
+ ```
119
+
120
+ **@incollection** (book chapter):
121
+ ```bibtex
122
+ author % REQUIRED
123
+ title % REQUIRED (chapter title)
124
+ booktitle % REQUIRED (book title)
125
+ publisher % REQUIRED
126
+ year % REQUIRED
127
+ editor % Recommended
128
+ pages % Recommended
129
+ ```
130
+
131
+ **@phdthesis**:
132
+ ```bibtex
133
+ author % REQUIRED
134
+ title % REQUIRED
135
+ school % REQUIRED
136
+ year % REQUIRED
137
+ ```
138
+
139
+ **@misc** (preprints, datasets, etc.):
140
+ ```bibtex
141
+ author % REQUIRED
142
+ title % REQUIRED
143
+ year % REQUIRED
144
+ howpublished % Recommended (bioRxiv, Zenodo, etc.)
145
+ doi OR url % At least one required
146
+ ```
147
+
148
+ #### Validation Script
149
+
150
+ ```bash
151
+ python scripts/validate_citations.py references.bib --check-required-fields
152
+ ```
153
+
154
+ **Output**:
155
+ ```
156
+ Error: Entry 'Smith2024' missing required field 'journal'
157
+ Error: Entry 'Doe2023' missing required field 'year'
158
+ Warning: Entry 'Jones2022' missing recommended field 'volume'
159
+ ```
160
+
161
+ ### 3. Author Name Formatting
162
+
163
+ **Purpose**: Ensure consistent, correct author name formatting.
164
+
165
+ #### Proper Format
166
+
167
+ **Recommended BibTeX format**:
168
+ ```bibtex
169
+ author = {Last1, First1 and Last2, First2 and Last3, First3}
170
+ ```
171
+
172
+ **Examples**:
173
+ ```bibtex
174
+ % Correct
175
+ author = {Smith, John}
176
+ author = {Smith, John A.}
177
+ author = {Smith, John Andrew}
178
+ author = {Smith, John and Doe, Jane}
179
+ author = {Smith, John and Doe, Jane and Johnson, Mary}
180
+
181
+ % For many authors
182
+ author = {Smith, John and Doe, Jane and others}
183
+
184
+ % Incorrect
185
+ author = {John Smith} % First Last format (not recommended)
186
+ author = {Smith, J.; Doe, J.} % Semicolon separator (wrong)
187
+ author = {Smith J, Doe J} % Missing commas
188
+ ```
189
+
190
+ #### Special Cases
191
+
192
+ **Suffixes (Jr., III, etc.)**:
193
+ ```bibtex
194
+ author = {King, Jr., Martin Luther}
195
+ ```
196
+
197
+ **Multiple surnames (hyphenated)**:
198
+ ```bibtex
199
+ author = {Smith-Jones, Mary}
200
+ ```
201
+
202
+ **Van, von, de, etc.**:
203
+ ```bibtex
204
+ author = {van der Waals, Johannes}
205
+ author = {de Broglie, Louis}
206
+ ```
207
+
208
+ **Organizations as authors**:
209
+ ```bibtex
210
+ author = {{World Health Organization}}
211
+ % Double braces treat as single author
212
+ ```
213
+
214
+ #### Validation Checks
215
+
216
+ **Automated validation**:
217
+ ```bash
218
+ python scripts/validate_citations.py references.bib --check-authors
219
+ ```
220
+
221
+ **Checks for**:
222
+ - Proper separator (and, not &, ; , etc.)
223
+ - Comma placement
224
+ - Empty author fields
225
+ - Malformed names
226
+
227
+ ### 4. Data Consistency
228
+
229
+ **Purpose**: Ensure all fields contain valid, reasonable values.
230
+
231
+ #### Year Validation
232
+
233
+ **Valid years**:
234
+ ```bibtex
235
+ year = {2024} % Current/recent
236
+ year = {1953} % Watson & Crick DNA structure (historical)
237
+ year = {1665} % Hooke's Micrographia (very old)
238
+ ```
239
+
240
+ **Invalid years**:
241
+ ```bibtex
242
+ year = {24} % Two digits (ambiguous)
243
+ year = {202} % Typo
244
+ year = {2025} % Future (unless accepted/in press)
245
+ year = {0} % Obviously wrong
246
+ ```
247
+
248
+ **Check**:
249
+ - Four digits
250
+ - Reasonable range (1600-current+1)
251
+ - Not all zeros
252
+
253
+ #### Volume/Number Validation
254
+
255
+ ```bibtex
256
+ volume = {123} % Numeric
257
+ volume = {12} % Valid
258
+ number = {3} % Valid
259
+ number = {S1} % Supplement issue (valid)
260
+ ```
261
+
262
+ **Invalid**:
263
+ ```bibtex
264
+ volume = {Vol. 123} % Should be just number
265
+ number = {Issue 3} % Should be just number
266
+ ```
267
+
268
+ #### Page Range Validation
269
+
270
+ **Correct format**:
271
+ ```bibtex
272
+ pages = {123--145} % En-dash (two hyphens)
273
+ pages = {e0123456} % PLOS-style article ID
274
+ pages = {123} % Single page
275
+ ```
276
+
277
+ **Incorrect format**:
278
+ ```bibtex
279
+ pages = {123-145} % Single hyphen (use --)
280
+ pages = {pp. 123-145} % Remove "pp."
281
+ pages = {123–145} % Unicode en-dash (may cause issues)
282
+ ```
283
+
284
+ #### URL Validation
285
+
286
+ **Check**:
287
+ - URLs are accessible (return 200 status)
288
+ - HTTPS when available
289
+ - No obvious typos
290
+ - Permanent links (not temporary)
291
+
292
+ **Valid**:
293
+ ```bibtex
294
+ url = {https://www.nature.com/articles/nature12345}
295
+ url = {https://arxiv.org/abs/2103.14030}
296
+ ```
297
+
298
+ **Questionable**:
299
+ ```bibtex
300
+ url = {http://...} % HTTP instead of HTTPS
301
+ url = {file:///...} % Local file path
302
+ url = {bit.ly/...} % URL shortener (not permanent)
303
+ ```
304
+
305
+ ### 5. Duplicate Detection
306
+
307
+ **Purpose**: Find and remove duplicate entries.
308
+
309
+ #### Types of Duplicates
310
+
311
+ **Exact duplicates** (same DOI):
312
+ ```bibtex
313
+ @article{Smith2024a,
314
+ doi = {10.1038/nature12345},
315
+ ...
316
+ }
317
+
318
+ @article{Smith2024b,
319
+ doi = {10.1038/nature12345}, % Same DOI!
320
+ ...
321
+ }
322
+ ```
323
+
324
+ **Near duplicates** (similar title/authors):
325
+ ```bibtex
326
+ @article{Smith2024,
327
+ title = {Machine Learning for Drug Discovery},
328
+ ...
329
+ }
330
+
331
+ @article{Smith2024method,
332
+ title = {Machine learning for drug discovery}, % Same, different case
333
+ ...
334
+ }
335
+ ```
336
+
337
+ **Preprint + Published**:
338
+ ```bibtex
339
+ @misc{Smith2023arxiv,
340
+ title = {AlphaFold Results},
341
+ howpublished = {arXiv},
342
+ ...
343
+ }
344
+
345
+ @article{Smith2024,
346
+ title = {AlphaFold Results}, % Same paper, now published
347
+ journal = {Nature},
348
+ ...
349
+ }
350
+ % Keep published version only
351
+ ```
352
+
353
+ #### Detection Methods
354
+
355
+ **By DOI** (most reliable):
356
+ - Same DOI = exact duplicate
357
+ - Keep one, remove other
358
+
359
+ **By title similarity**:
360
+ - Normalize: lowercase, remove punctuation
361
+ - Calculate similarity (e.g., Levenshtein distance)
362
+ - Flag if >90% similar
363
+
364
+ **By author-year-title**:
365
+ - Same first author + year + similar title
366
+ - Likely duplicate
367
+
368
+ **Automated detection**:
369
+ ```bash
370
+ python scripts/validate_citations.py references.bib --check-duplicates
371
+ ```
372
+
373
+ **Output**:
374
+ ```
375
+ Warning: Possible duplicate entries:
376
+ - Smith2024a (DOI: 10.1038/nature12345)
377
+ - Smith2024b (DOI: 10.1038/nature12345)
378
+ Recommendation: Keep one entry, remove the other.
379
+ ```
380
+
381
+ ### 6. Format and Syntax
382
+
383
+ **Purpose**: Ensure valid BibTeX syntax.
384
+
385
+ #### Common Syntax Errors
386
+
387
+ **Missing commas**:
388
+ ```bibtex
389
+ @article{Smith2024,
390
+ author = {Smith, John} % Missing comma!
391
+ title = {Title}
392
+ }
393
+ % Should be:
394
+ author = {Smith, John}, % Comma after each field
395
+ ```
396
+
397
+ **Unbalanced braces**:
398
+ ```bibtex
399
+ title = {Title with {Protected} Text % Missing closing brace
400
+ % Should be:
401
+ title = {Title with {Protected} Text}
402
+ ```
403
+
404
+ **Missing closing brace for entry**:
405
+ ```bibtex
406
+ @article{Smith2024,
407
+ author = {Smith, John},
408
+ title = {Title}
409
+ % Missing closing brace!
410
+ % Should end with:
411
+ }
412
+ ```
413
+
414
+ **Invalid characters in keys**:
415
+ ```bibtex
416
+ @article{Smith&Doe2024, % & not allowed in key
417
+ ...
418
+ }
419
+ % Use:
420
+ @article{SmithDoe2024,
421
+ ...
422
+ }
423
+ ```
424
+
425
+ #### BibTeX Syntax Rules
426
+
427
+ **Entry structure**:
428
+ ```bibtex
429
+ @TYPE{citationkey,
430
+ field1 = {value1},
431
+ field2 = {value2},
432
+ ...
433
+ fieldN = {valueN}
434
+ }
435
+ ```
436
+
437
+ **Citation keys**:
438
+ - Alphanumeric and some punctuation (-, _, ., :)
439
+ - No spaces
440
+ - Case-sensitive
441
+ - Unique within file
442
+
443
+ **Field values**:
444
+ - Enclosed in {braces} or "quotes"
445
+ - Braces preferred for complex text
446
+ - Numbers can be unquoted: `year = 2024`
447
+
448
+ **Special characters**:
449
+ - `{` and `}` for grouping
450
+ - `\` for LaTeX commands
451
+ - Protect capitalization: `{AlphaFold}`
452
+ - Accents: `{\"u}`, `{\'e}`, `{\aa}`
453
+
454
+ #### Validation
455
+
456
+ ```bash
457
+ python scripts/validate_citations.py references.bib --check-syntax
458
+ ```
459
+
460
+ **Checks**:
461
+ - Valid BibTeX structure
462
+ - Balanced braces
463
+ - Proper commas
464
+ - Valid entry types
465
+ - Unique citation keys
466
+
467
+ ## Validation Workflow
468
+
469
+ ### Step 1: Basic Validation
470
+
471
+ Run comprehensive validation:
472
+
473
+ ```bash
474
+ python scripts/validate_citations.py references.bib
475
+ ```
476
+
477
+ **Checks all**:
478
+ - DOI resolution
479
+ - Required fields
480
+ - Author formatting
481
+ - Data consistency
482
+ - Duplicates
483
+ - Syntax
484
+
485
+ ### Step 2: Review Report
486
+
487
+ Examine validation report:
488
+
489
+ ```json
490
+ {
491
+ "total_entries": 150,
492
+ "valid_entries": 140,
493
+ "errors": [
494
+ {
495
+ "entry": "Smith2024",
496
+ "error": "missing_required_field",
497
+ "field": "journal",
498
+ "severity": "high"
499
+ },
500
+ {
501
+ "entry": "Doe2023",
502
+ "error": "invalid_doi",
503
+ "doi": "10.1038/broken",
504
+ "severity": "high"
505
+ }
506
+ ],
507
+ "warnings": [
508
+ {
509
+ "entry": "Jones2022",
510
+ "warning": "missing_recommended_field",
511
+ "field": "volume",
512
+ "severity": "medium"
513
+ }
514
+ ],
515
+ "duplicates": [
516
+ {
517
+ "entries": ["Smith2024a", "Smith2024b"],
518
+ "reason": "same_doi",
519
+ "doi": "10.1038/nature12345"
520
+ }
521
+ ]
522
+ }
523
+ ```
524
+
525
+ ### Step 3: Fix Issues
526
+
527
+ **High-priority** (errors):
528
+ 1. Add missing required fields
529
+ 2. Fix broken DOIs
530
+ 3. Remove duplicates
531
+ 4. Correct syntax errors
532
+
533
+ **Medium-priority** (warnings):
534
+ 1. Add recommended fields
535
+ 2. Improve author formatting
536
+ 3. Fix page ranges
537
+
538
+ **Low-priority**:
539
+ 1. Standardize formatting
540
+ 2. Add URLs for accessibility
541
+
542
+ ### Step 4: Auto-Fix
543
+
544
+ Use auto-fix for safe corrections:
545
+
546
+ ```bash
547
+ python scripts/validate_citations.py references.bib \
548
+ --auto-fix \
549
+ --output fixed_references.bib
550
+ ```
551
+
552
+ **Auto-fix can**:
553
+ - Fix page range format (- to --)
554
+ - Remove "pp." from pages
555
+ - Standardize author separators
556
+ - Fix common syntax errors
557
+ - Normalize field order
558
+
559
+ **Auto-fix cannot**:
560
+ - Add missing information
561
+ - Find correct DOIs
562
+ - Determine which duplicate to keep
563
+ - Fix semantic errors
564
+
565
+ ### Step 5: Manual Review
566
+
567
+ Review auto-fixed file:
568
+ ```bash
569
+ # Check what changed
570
+ diff references.bib fixed_references.bib
571
+
572
+ # Review specific entries that had errors
573
+ grep -A 10 "Smith2024" fixed_references.bib
574
+ ```
575
+
576
+ ### Step 6: Re-Validate
577
+
578
+ Validate after fixes:
579
+
580
+ ```bash
581
+ python scripts/validate_citations.py fixed_references.bib --verbose
582
+ ```
583
+
584
+ Should show:
585
+ ```
586
+ ✓ All DOIs valid
587
+ ✓ All required fields present
588
+ ✓ No duplicates found
589
+ ✓ Syntax valid
590
+ ✓ 150/150 entries valid
591
+ ```
592
+
593
+ ## Validation Checklist
594
+
595
+ Use this checklist before final submission:
596
+
597
+ ### DOI Validation
598
+ - [ ] All DOIs resolve correctly
599
+ - [ ] Metadata matches between BibTeX and CrossRef
600
+ - [ ] No broken or invalid DOIs
601
+
602
+ ### Completeness
603
+ - [ ] All entries have required fields
604
+ - [ ] Modern papers (2000+) have DOIs
605
+ - [ ] Authors properly formatted
606
+ - [ ] Journals/conferences properly named
607
+
608
+ ### Consistency
609
+ - [ ] Years are 4-digit numbers
610
+ - [ ] Page ranges use -- not -
611
+ - [ ] Volume/number are numeric
612
+ - [ ] URLs are accessible
613
+
614
+ ### Duplicates
615
+ - [ ] No entries with same DOI
616
+ - [ ] No near-duplicate titles
617
+ - [ ] Preprints updated to published versions
618
+
619
+ ### Formatting
620
+ - [ ] Valid BibTeX syntax
621
+ - [ ] Balanced braces
622
+ - [ ] Proper commas
623
+ - [ ] Unique citation keys
624
+
625
+ ### Final Checks
626
+ - [ ] Bibliography compiles without errors
627
+ - [ ] All citations in text appear in bibliography
628
+ - [ ] All bibliography entries cited in text
629
+ - [ ] Citation style matches journal requirements
630
+
631
+ ## Best Practices
632
+
633
+ ### 1. Validate Early and Often
634
+
635
+ ```bash
636
+ # After extraction
637
+ python scripts/extract_metadata.py --doi ... --output refs.bib
638
+ python scripts/validate_citations.py refs.bib
639
+
640
+ # After manual edits
641
+ python scripts/validate_citations.py refs.bib
642
+
643
+ # Before submission
644
+ python scripts/validate_citations.py refs.bib --strict
645
+ ```
646
+
647
+ ### 2. Use Automated Tools
648
+
649
+ Don't validate manually - use scripts:
650
+ - Faster
651
+ - More comprehensive
652
+ - Catches errors humans miss
653
+ - Generates reports
654
+
655
+ ### 3. Keep Backup
656
+
657
+ ```bash
658
+ # Before auto-fix
659
+ cp references.bib references_backup.bib
660
+
661
+ # Run auto-fix
662
+ python scripts/validate_citations.py references.bib \
663
+ --auto-fix \
664
+ --output references_fixed.bib
665
+
666
+ # Review changes
667
+ diff references.bib references_fixed.bib
668
+
669
+ # If satisfied, replace
670
+ mv references_fixed.bib references.bib
671
+ ```
672
+
673
+ ### 4. Fix High-Priority First
674
+
675
+ **Priority order**:
676
+ 1. Syntax errors (prevent compilation)
677
+ 2. Missing required fields (incomplete citations)
678
+ 3. Broken DOIs (broken links)
679
+ 4. Duplicates (confusion, wasted space)
680
+ 5. Missing recommended fields
681
+ 6. Formatting inconsistencies
682
+
683
+ ### 5. Document Exceptions
684
+
685
+ For entries that can't be fixed:
686
+
687
+ ```bibtex
688
+ @article{Old1950,
689
+ author = {Smith, John},
690
+ title = {Title},
691
+ journal = {Obscure Journal},
692
+ year = {1950},
693
+ volume = {12},
694
+ pages = {34--56},
695
+ note = {DOI not available for publications before 2000}
696
+ }
697
+ ```
698
+
699
+ ### 6. Validate Against Journal Requirements
700
+
701
+ Different journals have different requirements:
702
+ - Citation style (numbered, author-year)
703
+ - Abbreviations (journal names)
704
+ - Maximum reference count
705
+ - Format (BibTeX, EndNote, manual)
706
+
707
+ Check journal author guidelines!
708
+
709
+ ## Common Validation Issues
710
+
711
+ ### Issue 1: Metadata Mismatch
712
+
713
+ **Problem**: BibTeX says 2023, CrossRef says 2024.
714
+
715
+ **Cause**:
716
+ - Online-first vs print publication
717
+ - Correction/update
718
+ - Extraction error
719
+
720
+ **Solution**:
721
+ 1. Check actual article
722
+ 2. Use more recent/accurate date
723
+ 3. Update BibTeX entry
724
+ 4. Re-validate
725
+
726
+ ### Issue 2: Special Characters
727
+
728
+ **Problem**: LaTeX compilation fails on special characters.
729
+
730
+ **Cause**:
731
+ - Accented characters (é, ü, ñ)
732
+ - Chemical formulas (H₂O)
733
+ - Math symbols (α, β, ±)
734
+
735
+ **Solution**:
736
+ ```bibtex
737
+ % Use LaTeX commands
738
+ author = {M{\"u}ller, Hans} % Müller
739
+ title = {Study of H\textsubscript{2}O} % H₂O
740
+ % Or use UTF-8 with proper LaTeX packages
741
+ ```
742
+
743
+ ### Issue 3: Incomplete Extraction
744
+
745
+ **Problem**: Extracted metadata missing fields.
746
+
747
+ **Cause**:
748
+ - Source doesn't provide all metadata
749
+ - Extraction error
750
+ - Incomplete record
751
+
752
+ **Solution**:
753
+ 1. Check original article
754
+ 2. Manually add missing fields
755
+ 3. Use alternative source (PubMed vs CrossRef)
756
+
757
+ ### Issue 4: Cannot Find Duplicate
758
+
759
+ **Problem**: Same paper appears twice, not detected.
760
+
761
+ **Cause**:
762
+ - Different DOIs (should be rare)
763
+ - Different titles (abbreviated, typo)
764
+ - Different citation keys
765
+
766
+ **Solution**:
767
+ - Manual search for author + year
768
+ - Check for similar titles
769
+ - Remove manually
770
+
771
+ ## Summary
772
+
773
+ Validation ensures citation quality:
774
+
775
+ ✓ **Accuracy**: DOIs resolve, metadata correct
776
+ ✓ **Completeness**: All required fields present
777
+ ✓ **Consistency**: Proper formatting throughout
778
+ ✓ **No duplicates**: Each paper cited once
779
+ ✓ **Valid syntax**: BibTeX compiles without errors
780
+
781
+ **Always validate** before final submission!
782
+
783
+ Use automated tools:
784
+ ```bash
785
+ python scripts/validate_citations.py references.bib
786
+ ```
787
+
788
+ Follow workflow:
789
+ 1. Extract metadata
790
+ 2. Validate
791
+ 3. Fix errors
792
+ 4. Re-validate
793
+ 5. Submit
794
+