@synsci/cli-darwin-x64 1.1.70 → 1.1.72

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.
Files changed (339) hide show
  1. package/bin/skills/citation-management/SKILL.md +1109 -0
  2. package/bin/skills/citation-management/assets/bibtex_template.bib +264 -0
  3. package/bin/skills/citation-management/assets/citation_checklist.md +386 -0
  4. package/bin/skills/citation-management/references/bibtex_formatting.md +908 -0
  5. package/bin/skills/citation-management/references/citation_validation.md +794 -0
  6. package/bin/skills/citation-management/references/google_scholar_search.md +725 -0
  7. package/bin/skills/citation-management/references/metadata_extraction.md +870 -0
  8. package/bin/skills/citation-management/references/pubmed_search.md +839 -0
  9. package/bin/skills/citation-management/scripts/doi_to_bibtex.py +182 -0
  10. package/bin/skills/citation-management/scripts/extract_metadata.py +570 -0
  11. package/bin/skills/citation-management/scripts/format_bibtex.py +349 -0
  12. package/bin/skills/citation-management/scripts/search_google_scholar.py +251 -0
  13. package/bin/skills/citation-management/scripts/search_pubmed.py +348 -0
  14. package/bin/skills/citation-management/scripts/validate_citations.py +494 -0
  15. package/bin/skills/clinical-decision-support/README.md +129 -0
  16. package/bin/skills/clinical-decision-support/SKILL.md +506 -0
  17. package/bin/skills/clinical-decision-support/assets/biomarker_report_template.tex +380 -0
  18. package/bin/skills/clinical-decision-support/assets/clinical_pathway_template.tex +222 -0
  19. package/bin/skills/clinical-decision-support/assets/cohort_analysis_template.tex +359 -0
  20. package/bin/skills/clinical-decision-support/assets/color_schemes.tex +149 -0
  21. package/bin/skills/clinical-decision-support/assets/example_gbm_cohort.md +208 -0
  22. package/bin/skills/clinical-decision-support/assets/recommendation_strength_guide.md +328 -0
  23. package/bin/skills/clinical-decision-support/assets/treatment_recommendation_template.tex +529 -0
  24. package/bin/skills/clinical-decision-support/references/biomarker_classification.md +719 -0
  25. package/bin/skills/clinical-decision-support/references/clinical_decision_algorithms.md +604 -0
  26. package/bin/skills/clinical-decision-support/references/evidence_synthesis.md +840 -0
  27. package/bin/skills/clinical-decision-support/references/outcome_analysis.md +640 -0
  28. package/bin/skills/clinical-decision-support/references/patient_cohort_analysis.md +427 -0
  29. package/bin/skills/clinical-decision-support/references/treatment_recommendations.md +521 -0
  30. package/bin/skills/clinical-decision-support/scripts/biomarker_classifier.py +383 -0
  31. package/bin/skills/clinical-decision-support/scripts/build_decision_tree.py +417 -0
  32. package/bin/skills/clinical-decision-support/scripts/create_cohort_tables.py +509 -0
  33. package/bin/skills/clinical-decision-support/scripts/generate_survival_analysis.py +441 -0
  34. package/bin/skills/clinical-decision-support/scripts/validate_cds_document.py +326 -0
  35. package/bin/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
  36. package/bin/skills/clinical-reports/README.md +236 -0
  37. package/bin/skills/clinical-reports/SKILL.md +1127 -0
  38. package/bin/skills/clinical-reports/assets/case_report_template.md +352 -0
  39. package/bin/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
  40. package/bin/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
  41. package/bin/skills/clinical-reports/assets/consult_note_template.md +305 -0
  42. package/bin/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
  43. package/bin/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
  44. package/bin/skills/clinical-reports/assets/history_physical_template.md +305 -0
  45. package/bin/skills/clinical-reports/assets/lab_report_template.md +309 -0
  46. package/bin/skills/clinical-reports/assets/pathology_report_template.md +249 -0
  47. package/bin/skills/clinical-reports/assets/quality_checklist.md +338 -0
  48. package/bin/skills/clinical-reports/assets/radiology_report_template.md +318 -0
  49. package/bin/skills/clinical-reports/assets/soap_note_template.md +253 -0
  50. package/bin/skills/clinical-reports/references/case_report_guidelines.md +570 -0
  51. package/bin/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
  52. package/bin/skills/clinical-reports/references/data_presentation.md +530 -0
  53. package/bin/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
  54. package/bin/skills/clinical-reports/references/medical_terminology.md +588 -0
  55. package/bin/skills/clinical-reports/references/patient_documentation.md +744 -0
  56. package/bin/skills/clinical-reports/references/peer_review_standards.md +585 -0
  57. package/bin/skills/clinical-reports/references/regulatory_compliance.md +577 -0
  58. package/bin/skills/clinical-reports/scripts/check_deidentification.py +332 -0
  59. package/bin/skills/clinical-reports/scripts/compliance_checker.py +78 -0
  60. package/bin/skills/clinical-reports/scripts/extract_clinical_data.py +97 -0
  61. package/bin/skills/clinical-reports/scripts/format_adverse_events.py +97 -0
  62. package/bin/skills/clinical-reports/scripts/generate_report_template.py +149 -0
  63. package/bin/skills/clinical-reports/scripts/terminology_validator.py +126 -0
  64. package/bin/skills/clinical-reports/scripts/validate_case_report.py +323 -0
  65. package/bin/skills/clinical-reports/scripts/validate_trial_report.py +88 -0
  66. package/bin/skills/fireworks-ai/SKILL.md +665 -0
  67. package/bin/skills/generate-image/SKILL.md +178 -0
  68. package/bin/skills/generate-image/scripts/generate_image.py +254 -0
  69. package/bin/skills/groq/SKILL.md +347 -0
  70. package/bin/skills/hypothesis-generation/SKILL.md +293 -0
  71. package/bin/skills/hypothesis-generation/assets/FORMATTING_GUIDE.md +672 -0
  72. package/bin/skills/hypothesis-generation/assets/hypothesis_generation.sty +307 -0
  73. package/bin/skills/hypothesis-generation/assets/hypothesis_report_template.tex +572 -0
  74. package/bin/skills/hypothesis-generation/references/experimental_design_patterns.md +329 -0
  75. package/bin/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +198 -0
  76. package/bin/skills/hypothesis-generation/references/literature_search_strategies.md +622 -0
  77. package/bin/skills/latex-posters/README.md +417 -0
  78. package/bin/skills/latex-posters/SKILL.md +1602 -0
  79. package/bin/skills/latex-posters/assets/baposter_template.tex +257 -0
  80. package/bin/skills/latex-posters/assets/beamerposter_template.tex +244 -0
  81. package/bin/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
  82. package/bin/skills/latex-posters/assets/tikzposter_template.tex +251 -0
  83. package/bin/skills/latex-posters/references/latex_poster_packages.md +745 -0
  84. package/bin/skills/latex-posters/references/poster_content_guide.md +748 -0
  85. package/bin/skills/latex-posters/references/poster_design_principles.md +806 -0
  86. package/bin/skills/latex-posters/references/poster_layout_design.md +900 -0
  87. package/bin/skills/latex-posters/scripts/review_poster.sh +214 -0
  88. package/bin/skills/literature-review/SKILL.md +641 -0
  89. package/bin/skills/literature-review/assets/review_template.md +412 -0
  90. package/bin/skills/literature-review/references/citation_styles.md +166 -0
  91. package/bin/skills/literature-review/references/database_strategies.md +455 -0
  92. package/bin/skills/literature-review/scripts/generate_pdf.py +184 -0
  93. package/bin/skills/literature-review/scripts/search_databases.py +310 -0
  94. package/bin/skills/literature-review/scripts/verify_citations.py +218 -0
  95. package/bin/skills/market-research-reports/SKILL.md +904 -0
  96. package/bin/skills/market-research-reports/assets/FORMATTING_GUIDE.md +428 -0
  97. package/bin/skills/market-research-reports/assets/market_report_template.tex +1380 -0
  98. package/bin/skills/market-research-reports/assets/market_research.sty +564 -0
  99. package/bin/skills/market-research-reports/references/data_analysis_patterns.md +548 -0
  100. package/bin/skills/market-research-reports/references/report_structure_guide.md +999 -0
  101. package/bin/skills/market-research-reports/references/visual_generation_guide.md +1077 -0
  102. package/bin/skills/market-research-reports/scripts/generate_market_visuals.py +472 -0
  103. package/bin/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
  104. package/bin/skills/markitdown/LICENSE.txt +22 -0
  105. package/bin/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
  106. package/bin/skills/markitdown/QUICK_REFERENCE.md +309 -0
  107. package/bin/skills/markitdown/README.md +184 -0
  108. package/bin/skills/markitdown/SKILL.md +486 -0
  109. package/bin/skills/markitdown/SKILL_SUMMARY.md +307 -0
  110. package/bin/skills/markitdown/assets/example_usage.md +463 -0
  111. package/bin/skills/markitdown/references/api_reference.md +399 -0
  112. package/bin/skills/markitdown/references/file_formats.md +542 -0
  113. package/bin/skills/markitdown/scripts/batch_convert.py +195 -0
  114. package/bin/skills/markitdown/scripts/convert_literature.py +262 -0
  115. package/bin/skills/markitdown/scripts/convert_with_ai.py +224 -0
  116. package/bin/skills/ml-paper-writing/SKILL.md +937 -0
  117. package/bin/skills/ml-paper-writing/references/checklists.md +361 -0
  118. package/bin/skills/ml-paper-writing/references/citation-workflow.md +562 -0
  119. package/bin/skills/ml-paper-writing/references/reviewer-guidelines.md +367 -0
  120. package/bin/skills/ml-paper-writing/references/sources.md +159 -0
  121. package/bin/skills/ml-paper-writing/references/writing-guide.md +476 -0
  122. package/bin/skills/ml-paper-writing/templates/README.md +251 -0
  123. package/bin/skills/ml-paper-writing/templates/aaai2026/README.md +534 -0
  124. package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  125. package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  126. package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
  127. package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
  128. package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
  129. package/bin/skills/ml-paper-writing/templates/acl/README.md +50 -0
  130. package/bin/skills/ml-paper-writing/templates/acl/acl.sty +312 -0
  131. package/bin/skills/ml-paper-writing/templates/acl/acl_latex.tex +377 -0
  132. package/bin/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +101 -0
  133. package/bin/skills/ml-paper-writing/templates/acl/acl_natbib.bst +1940 -0
  134. package/bin/skills/ml-paper-writing/templates/acl/anthology.bib.txt +26 -0
  135. package/bin/skills/ml-paper-writing/templates/acl/custom.bib +70 -0
  136. package/bin/skills/ml-paper-writing/templates/acl/formatting.md +326 -0
  137. package/bin/skills/ml-paper-writing/templates/colm2025/README.md +3 -0
  138. package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
  139. package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
  140. package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  141. package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
  142. package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
  143. package/bin/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
  144. package/bin/skills/ml-paper-writing/templates/colm2025/math_commands.tex +508 -0
  145. package/bin/skills/ml-paper-writing/templates/colm2025/natbib.sty +1246 -0
  146. package/bin/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
  147. package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
  148. package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
  149. package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  150. package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
  151. package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
  152. package/bin/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +508 -0
  153. package/bin/skills/ml-paper-writing/templates/iclr2026/natbib.sty +1246 -0
  154. package/bin/skills/ml-paper-writing/templates/icml2026/algorithm.sty +79 -0
  155. package/bin/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +201 -0
  156. package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.bib +75 -0
  157. package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
  158. package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.tex +662 -0
  159. package/bin/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
  160. package/bin/skills/ml-paper-writing/templates/icml2026/icml2026.bst +1443 -0
  161. package/bin/skills/ml-paper-writing/templates/icml2026/icml2026.sty +767 -0
  162. package/bin/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  163. package/bin/skills/ml-paper-writing/templates/neurips2025/Makefile +36 -0
  164. package/bin/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
  165. package/bin/skills/ml-paper-writing/templates/neurips2025/main.tex +38 -0
  166. package/bin/skills/ml-paper-writing/templates/neurips2025/neurips.sty +382 -0
  167. package/bin/skills/paper-2-web/SKILL.md +491 -0
  168. package/bin/skills/paper-2-web/references/installation.md +141 -0
  169. package/bin/skills/paper-2-web/references/paper2poster.md +346 -0
  170. package/bin/skills/paper-2-web/references/paper2video.md +305 -0
  171. package/bin/skills/paper-2-web/references/paper2web.md +187 -0
  172. package/bin/skills/paper-2-web/references/usage_examples.md +436 -0
  173. package/bin/skills/peer-review/SKILL.md +702 -0
  174. package/bin/skills/peer-review/references/calibration_guidelines.md +196 -0
  175. package/bin/skills/peer-review/references/common_issues.md +552 -0
  176. package/bin/skills/peer-review/references/paper_mechanics.md +269 -0
  177. package/bin/skills/peer-review/references/reporting_standards.md +290 -0
  178. package/bin/skills/peer-review/references/scoring_rubric.md +239 -0
  179. package/bin/skills/pptx-posters/SKILL.md +410 -0
  180. package/bin/skills/pptx-posters/assets/poster_html_template.html +257 -0
  181. package/bin/skills/pptx-posters/assets/poster_quality_checklist.md +358 -0
  182. package/bin/skills/pptx-posters/references/poster_content_guide.md +748 -0
  183. package/bin/skills/pptx-posters/references/poster_design_principles.md +806 -0
  184. package/bin/skills/pptx-posters/references/poster_layout_design.md +900 -0
  185. package/bin/skills/research-grants/README.md +285 -0
  186. package/bin/skills/research-grants/SKILL.md +938 -0
  187. package/bin/skills/research-grants/assets/budget_justification_template.md +453 -0
  188. package/bin/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
  189. package/bin/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
  190. package/bin/skills/research-grants/references/broader_impacts.md +392 -0
  191. package/bin/skills/research-grants/references/darpa_guidelines.md +636 -0
  192. package/bin/skills/research-grants/references/doe_guidelines.md +586 -0
  193. package/bin/skills/research-grants/references/nih_guidelines.md +851 -0
  194. package/bin/skills/research-grants/references/nsf_guidelines.md +570 -0
  195. package/bin/skills/research-grants/references/specific_aims_guide.md +458 -0
  196. package/bin/skills/research-lookup/README.md +156 -0
  197. package/bin/skills/research-lookup/SKILL.md +606 -0
  198. package/bin/skills/research-lookup/examples.py +174 -0
  199. package/bin/skills/research-lookup/lookup.py +187 -0
  200. package/bin/skills/research-lookup/research_lookup.py +483 -0
  201. package/bin/skills/research-lookup/scripts/research_lookup.py +483 -0
  202. package/bin/skills/scholar-evaluation/SKILL.md +289 -0
  203. package/bin/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
  204. package/bin/skills/scholar-evaluation/scripts/calculate_scores.py +366 -0
  205. package/bin/skills/scientific-critical-thinking/SKILL.md +566 -0
  206. package/bin/skills/scientific-critical-thinking/references/common_biases.md +364 -0
  207. package/bin/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
  208. package/bin/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
  209. package/bin/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
  210. package/bin/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
  211. package/bin/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
  212. package/bin/skills/scientific-schematics/QUICK_REFERENCE.md +207 -0
  213. package/bin/skills/scientific-schematics/README.md +327 -0
  214. package/bin/skills/scientific-schematics/SKILL.md +615 -0
  215. package/bin/skills/scientific-schematics/example_usage.sh +89 -0
  216. package/bin/skills/scientific-schematics/references/best_practices.md +559 -0
  217. package/bin/skills/scientific-schematics/scripts/generate_schematic.py +135 -0
  218. package/bin/skills/scientific-schematics/scripts/generate_schematic_ai.py +807 -0
  219. package/bin/skills/scientific-schematics/test_ai_generation.py +243 -0
  220. package/bin/skills/scientific-slides/SKILL.md +942 -0
  221. package/bin/skills/scientific-slides/assets/timing_guidelines.md +597 -0
  222. package/bin/skills/scientific-slides/references/data_visualization_slides.md +708 -0
  223. package/bin/skills/scientific-slides/references/presentation_structure.md +642 -0
  224. package/bin/skills/scientific-slides/references/slide_design_principles.md +849 -0
  225. package/bin/skills/scientific-slides/references/talk_types_guide.md +687 -0
  226. package/bin/skills/scientific-slides/references/visual_review_workflow.md +775 -0
  227. package/bin/skills/scientific-slides/scripts/generate_slide_image.py +143 -0
  228. package/bin/skills/scientific-slides/scripts/generate_slide_image_ai.py +748 -0
  229. package/bin/skills/scientific-slides/scripts/pdf_to_images.py +201 -0
  230. package/bin/skills/scientific-slides/scripts/slides_to_pdf.py +220 -0
  231. package/bin/skills/scientific-slides/scripts/validate_presentation.py +367 -0
  232. package/bin/skills/scientific-writing/SKILL.md +714 -0
  233. package/bin/skills/scientific-writing/assets/REPORT_FORMATTING_GUIDE.md +574 -0
  234. package/bin/skills/scientific-writing/assets/scientific_report.sty +606 -0
  235. package/bin/skills/scientific-writing/assets/scientific_report_template.tex +449 -0
  236. package/bin/skills/scientific-writing/references/citation_styles.md +720 -0
  237. package/bin/skills/scientific-writing/references/figures_tables.md +806 -0
  238. package/bin/skills/scientific-writing/references/imrad_structure.md +686 -0
  239. package/bin/skills/scientific-writing/references/professional_report_formatting.md +664 -0
  240. package/bin/skills/scientific-writing/references/reporting_guidelines.md +748 -0
  241. package/bin/skills/scientific-writing/references/writing_principles.md +824 -0
  242. package/bin/skills/tinker/SKILL.md +2 -3
  243. package/bin/skills/together-ai/SKILL.md +722 -0
  244. package/bin/skills/treatment-plans/README.md +488 -0
  245. package/bin/skills/treatment-plans/SKILL.md +1579 -0
  246. package/bin/skills/treatment-plans/assets/STYLING_QUICK_REFERENCE.md +185 -0
  247. package/bin/skills/treatment-plans/assets/chronic_disease_management_plan.tex +665 -0
  248. package/bin/skills/treatment-plans/assets/general_medical_treatment_plan.tex +547 -0
  249. package/bin/skills/treatment-plans/assets/medical_treatment_plan.sty +222 -0
  250. package/bin/skills/treatment-plans/assets/mental_health_treatment_plan.tex +774 -0
  251. package/bin/skills/treatment-plans/assets/one_page_treatment_plan.tex +193 -0
  252. package/bin/skills/treatment-plans/assets/pain_management_plan.tex +799 -0
  253. package/bin/skills/treatment-plans/assets/perioperative_care_plan.tex +753 -0
  254. package/bin/skills/treatment-plans/assets/quality_checklist.md +471 -0
  255. package/bin/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +756 -0
  256. package/bin/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
  257. package/bin/skills/treatment-plans/references/intervention_guidelines.md +507 -0
  258. package/bin/skills/treatment-plans/references/regulatory_compliance.md +476 -0
  259. package/bin/skills/treatment-plans/references/specialty_specific_guidelines.md +655 -0
  260. package/bin/skills/treatment-plans/references/treatment_plan_standards.md +485 -0
  261. package/bin/skills/treatment-plans/scripts/check_completeness.py +322 -0
  262. package/bin/skills/treatment-plans/scripts/generate_template.py +233 -0
  263. package/bin/skills/treatment-plans/scripts/timeline_generator.py +385 -0
  264. package/bin/skills/treatment-plans/scripts/validate_treatment_plan.py +369 -0
  265. package/bin/skills/unsloth/SKILL.md +565 -47
  266. package/bin/skills/unsloth/docs/advanced-rl.md +222 -0
  267. package/bin/skills/unsloth/docs/chat-templates.md +141 -0
  268. package/bin/skills/unsloth/docs/datasets.md +489 -0
  269. package/bin/skills/unsloth/docs/docker-extended.md +99 -0
  270. package/bin/skills/unsloth/docs/dynamic-ggufs-2.0.md +116 -0
  271. package/bin/skills/unsloth/docs/dynamic-ggufs-aider.md +118 -0
  272. package/bin/skills/unsloth/docs/faq.md +91 -0
  273. package/bin/skills/unsloth/docs/fp16-vs-bf16.md +61 -0
  274. package/bin/skills/unsloth/docs/fp8-rl.md +224 -0
  275. package/bin/skills/unsloth/docs/glm-4.7-flash.md +997 -0
  276. package/bin/skills/unsloth/docs/inference-deployment-overview.md +17 -0
  277. package/bin/skills/unsloth/docs/inference.md +27 -0
  278. package/bin/skills/unsloth/docs/installation-docker.md +155 -0
  279. package/bin/skills/unsloth/docs/installation-pip.md +148 -0
  280. package/bin/skills/unsloth/docs/kernels-packing.md +190 -0
  281. package/bin/skills/unsloth/docs/kimi-k2.5.md +634 -0
  282. package/bin/skills/unsloth/docs/lm-studio.md +235 -0
  283. package/bin/skills/unsloth/docs/lora-hot-swapping.md +75 -0
  284. package/bin/skills/unsloth/docs/lora-hyperparameters.md +363 -0
  285. package/bin/skills/unsloth/docs/memory-efficient-rl.md +267 -0
  286. package/bin/skills/unsloth/docs/model-selection.md +70 -0
  287. package/bin/skills/unsloth/docs/models.md +532 -0
  288. package/bin/skills/unsloth/docs/multi-gpu-ddp.md +90 -0
  289. package/bin/skills/unsloth/docs/notebooks.md +223 -0
  290. package/bin/skills/unsloth/docs/overview.md +110 -0
  291. package/bin/skills/unsloth/docs/qwen3-coder-next-extended.md +900 -0
  292. package/bin/skills/unsloth/docs/qwen3-coder-next.md +900 -0
  293. package/bin/skills/unsloth/docs/requirements.md +45 -0
  294. package/bin/skills/unsloth/docs/reward-hacking.md +25 -0
  295. package/bin/skills/unsloth/docs/saving-to-gguf.md +138 -0
  296. package/bin/skills/unsloth/docs/saving-to-ollama.md +46 -0
  297. package/bin/skills/unsloth/docs/sglang-guide.md +278 -0
  298. package/bin/skills/unsloth/docs/speculative-decoding.md +70 -0
  299. package/bin/skills/unsloth/docs/tool-calling.md +334 -0
  300. package/bin/skills/unsloth/docs/troubleshooting-faq.md +204 -0
  301. package/bin/skills/unsloth/docs/troubleshooting-inference.md +26 -0
  302. package/bin/skills/unsloth/docs/tts-fine-tuning.md +149 -0
  303. package/bin/skills/unsloth/docs/tutorial-grpo.md +273 -0
  304. package/bin/skills/unsloth/docs/tutorial-llama3-ollama.md +356 -0
  305. package/bin/skills/unsloth/docs/vision-fine-tuning.md +135 -0
  306. package/bin/skills/unsloth/docs/vision-rl.md +170 -0
  307. package/bin/skills/unsloth/docs/vllm-engine-arguments.md +43 -0
  308. package/bin/skills/unsloth/docs/vllm-guide.md +98 -0
  309. package/bin/skills/venue-templates/SKILL.md +686 -0
  310. package/bin/skills/venue-templates/assets/examples/cell_summary_example.md +247 -0
  311. package/bin/skills/venue-templates/assets/examples/medical_structured_abstract.md +313 -0
  312. package/bin/skills/venue-templates/assets/examples/nature_abstract_examples.md +213 -0
  313. package/bin/skills/venue-templates/assets/examples/neurips_introduction_example.md +245 -0
  314. package/bin/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
  315. package/bin/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
  316. package/bin/skills/venue-templates/assets/journals/nature_article.tex +171 -0
  317. package/bin/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
  318. package/bin/skills/venue-templates/assets/journals/plos_one.tex +317 -0
  319. package/bin/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
  320. package/bin/skills/venue-templates/references/cell_press_style.md +483 -0
  321. package/bin/skills/venue-templates/references/conferences_formatting.md +564 -0
  322. package/bin/skills/venue-templates/references/cs_conference_style.md +463 -0
  323. package/bin/skills/venue-templates/references/grants_requirements.md +787 -0
  324. package/bin/skills/venue-templates/references/journals_formatting.md +486 -0
  325. package/bin/skills/venue-templates/references/medical_journal_styles.md +535 -0
  326. package/bin/skills/venue-templates/references/ml_conference_style.md +556 -0
  327. package/bin/skills/venue-templates/references/nature_science_style.md +405 -0
  328. package/bin/skills/venue-templates/references/posters_guidelines.md +628 -0
  329. package/bin/skills/venue-templates/references/reviewer_expectations.md +417 -0
  330. package/bin/skills/venue-templates/references/venue_writing_styles.md +321 -0
  331. package/bin/skills/venue-templates/scripts/customize_template.py +195 -0
  332. package/bin/skills/venue-templates/scripts/query_template.py +266 -0
  333. package/bin/skills/venue-templates/scripts/validate_format.py +250 -0
  334. package/bin/synsc +0 -0
  335. package/package.json +1 -1
  336. package/bin/skills/unsloth/references/index.md +0 -7
  337. package/bin/skills/unsloth/references/llms-full.md +0 -16799
  338. package/bin/skills/unsloth/references/llms-txt.md +0 -12044
  339. package/bin/skills/unsloth/references/llms.md +0 -82
@@ -0,0 +1,322 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Check Treatment Plan Completeness
4
+ Validates that all required sections are present in a treatment plan.
5
+ """
6
+
7
+ import argparse
8
+ import re
9
+ import sys
10
+ from pathlib import Path
11
+ from typing import List, Tuple
12
+
13
+
14
+ # Required sections for all treatment plans
15
+ REQUIRED_SECTIONS = [
16
+ r'\\section\*\{.*Patient Information',
17
+ r'\\section\*\{.*Diagnosis.*Assessment',
18
+ r'\\section\*\{.*Goals',
19
+ r'\\section\*\{.*Interventions',
20
+ r'\\section\*\{.*Timeline.*Schedule',
21
+ r'\\section\*\{.*Monitoring',
22
+ r'\\section\*\{.*Outcomes',
23
+ r'\\section\*\{.*Follow[- ]?up',
24
+ r'\\section\*\{.*Education',
25
+ r'\\section\*\{.*Risk.*Safety',
26
+ ]
27
+
28
+ # Section descriptions for user-friendly output
29
+ SECTION_DESCRIPTIONS = {
30
+ 0: 'Patient Information (de-identified)',
31
+ 1: 'Diagnosis and Assessment',
32
+ 2: 'Treatment Goals (SMART format)',
33
+ 3: 'Interventions (pharmacological, non-pharmacological, procedural)',
34
+ 4: 'Timeline and Schedule',
35
+ 5: 'Monitoring Parameters',
36
+ 6: 'Expected Outcomes',
37
+ 7: 'Follow-up Plan',
38
+ 8: 'Patient Education',
39
+ 9: 'Risk Mitigation and Safety',
40
+ }
41
+
42
+
43
+ def read_file(filepath: Path) -> str:
44
+ """Read and return file contents."""
45
+ try:
46
+ with open(filepath, 'r', encoding='utf-8') as f:
47
+ return f.read()
48
+ except FileNotFoundError:
49
+ print(f"Error: File not found: {filepath}", file=sys.stderr)
50
+ sys.exit(1)
51
+ except Exception as e:
52
+ print(f"Error reading file: {e}", file=sys.stderr)
53
+ sys.exit(1)
54
+
55
+
56
+ def check_sections(content: str) -> Tuple[List[bool], List[str]]:
57
+ """
58
+ Check which required sections are present.
59
+ Returns tuple of (checklist, missing_sections).
60
+ """
61
+ checklist = []
62
+ missing = []
63
+
64
+ for i, pattern in enumerate(REQUIRED_SECTIONS):
65
+ if re.search(pattern, content, re.IGNORECASE):
66
+ checklist.append(True)
67
+ else:
68
+ checklist.append(False)
69
+ missing.append(SECTION_DESCRIPTIONS[i])
70
+
71
+ return checklist, missing
72
+
73
+
74
+ def check_smart_goals(content: str) -> Tuple[bool, List[str]]:
75
+ """
76
+ Check if SMART goal criteria are mentioned.
77
+ Returns (has_smart, missing_criteria).
78
+ """
79
+ smart_criteria = {
80
+ 'Specific': r'\bspecific\b',
81
+ 'Measurable': r'\bmeasurable\b',
82
+ 'Achievable': r'\bachievable\b',
83
+ 'Relevant': r'\brelevant\b',
84
+ 'Time-bound': r'\btime[- ]?bound\b',
85
+ }
86
+
87
+ missing = []
88
+ for criterion, pattern in smart_criteria.items():
89
+ if not re.search(pattern, content, re.IGNORECASE):
90
+ missing.append(criterion)
91
+
92
+ has_smart = len(missing) == 0
93
+ return has_smart, missing
94
+
95
+
96
+ def check_hipaa_notice(content: str) -> bool:
97
+ """Check if HIPAA de-identification notice is present."""
98
+ pattern = r'HIPAA|de-identif|protected health information|PHI'
99
+ return bool(re.search(pattern, content, re.IGNORECASE))
100
+
101
+
102
+ def check_provider_signature(content: str) -> bool:
103
+ """Check if provider signature section is present."""
104
+ pattern = r'\\section\*\{.*Signature|Provider Signature|Signature'
105
+ return bool(re.search(pattern, content, re.IGNORECASE))
106
+
107
+
108
+ def check_placeholders_remaining(content: str) -> Tuple[int, List[str]]:
109
+ """
110
+ Check for uncustomized placeholders [like this].
111
+ Returns (count, sample_placeholders).
112
+ """
113
+ placeholders = re.findall(r'\[([^\]]+)\]', content)
114
+
115
+ # Filter out LaTeX commands and references
116
+ filtered = []
117
+ for p in placeholders:
118
+ # Skip if it's a LaTeX command, number, or citation
119
+ if not (p.startswith('\\') or p.isdigit() or 'cite' in p.lower() or 'ref' in p.lower()):
120
+ filtered.append(p)
121
+
122
+ count = len(filtered)
123
+ samples = filtered[:5] # Return up to 5 examples
124
+
125
+ return count, samples
126
+
127
+
128
+ def display_results(
129
+ filepath: Path,
130
+ checklist: List[bool],
131
+ missing: List[str],
132
+ smart_complete: bool,
133
+ smart_missing: List[str],
134
+ has_hipaa: bool,
135
+ has_signature: bool,
136
+ placeholder_count: int,
137
+ placeholder_samples: List[str],
138
+ ):
139
+ """Display completeness check results."""
140
+
141
+ total_sections = len(REQUIRED_SECTIONS)
142
+ present_count = sum(checklist)
143
+ completeness_pct = (present_count / total_sections) * 100
144
+
145
+ print("\n" + "=" * 70)
146
+ print("TREATMENT PLAN COMPLETENESS CHECK")
147
+ print("=" * 70)
148
+ print(f"\nFile: {filepath}")
149
+ print(f"File size: {filepath.stat().st_size:,} bytes")
150
+
151
+ # Overall completeness
152
+ print("\n" + "-" * 70)
153
+ print("OVERALL COMPLETENESS")
154
+ print("-" * 70)
155
+ print(f"Required sections present: {present_count}/{total_sections} ({completeness_pct:.0f}%)")
156
+
157
+ if completeness_pct == 100:
158
+ print("✓ All required sections present")
159
+ else:
160
+ print(f"✗ {len(missing)} section(s) missing")
161
+
162
+ # Section details
163
+ print("\n" + "-" * 70)
164
+ print("SECTION CHECKLIST")
165
+ print("-" * 70)
166
+
167
+ for i, (present, desc) in enumerate(zip(checklist, SECTION_DESCRIPTIONS.values())):
168
+ status = "✓" if present else "✗"
169
+ print(f"{status} {desc}")
170
+
171
+ # Missing sections
172
+ if missing:
173
+ print("\n" + "-" * 70)
174
+ print("MISSING SECTIONS")
175
+ print("-" * 70)
176
+ for section in missing:
177
+ print(f" • {section}")
178
+
179
+ # SMART goals
180
+ print("\n" + "-" * 70)
181
+ print("SMART GOALS CHECK")
182
+ print("-" * 70)
183
+
184
+ if smart_complete:
185
+ print("✓ All SMART criteria mentioned in document")
186
+ else:
187
+ print(f"✗ {len(smart_missing)} SMART criterion/criteria not found:")
188
+ for criterion in smart_missing:
189
+ print(f" • {criterion}")
190
+ print("\nNote: Goals should be Specific, Measurable, Achievable, Relevant, Time-bound")
191
+
192
+ # HIPAA notice
193
+ print("\n" + "-" * 70)
194
+ print("PRIVACY AND COMPLIANCE")
195
+ print("-" * 70)
196
+
197
+ if has_hipaa:
198
+ print("✓ HIPAA/de-identification notice present")
199
+ else:
200
+ print("✗ HIPAA de-identification notice not found")
201
+ print(" Recommendation: Include HIPAA Safe Harbor de-identification guidance")
202
+
203
+ if has_signature:
204
+ print("✓ Provider signature section present")
205
+ else:
206
+ print("✗ Provider signature section not found")
207
+
208
+ # Placeholders
209
+ print("\n" + "-" * 70)
210
+ print("CUSTOMIZATION STATUS")
211
+ print("-" * 70)
212
+
213
+ if placeholder_count == 0:
214
+ print("✓ No uncustomized placeholders detected")
215
+ else:
216
+ print(f"⚠ {placeholder_count} placeholder(s) may need customization")
217
+ print("\nExamples:")
218
+ for sample in placeholder_samples:
219
+ print(f" • [{sample}]")
220
+ print("\nRecommendation: Replace all [bracketed placeholders] with patient-specific information")
221
+
222
+ # Summary
223
+ print("\n" + "=" * 70)
224
+ print("SUMMARY")
225
+ print("=" * 70)
226
+
227
+ # Calculate overall score
228
+ score_components = [
229
+ completeness_pct / 100, # Section completeness (0-1)
230
+ 1.0 if smart_complete else 0.6, # SMART goals (full or partial credit)
231
+ 1.0 if has_hipaa else 0.0, # HIPAA notice (binary)
232
+ 1.0 if has_signature else 0.0, # Signature (binary)
233
+ 1.0 if placeholder_count == 0 else 0.5, # Customization (full or partial)
234
+ ]
235
+
236
+ overall_score = (sum(score_components) / len(score_components)) * 100
237
+
238
+ print(f"\nOverall completeness score: {overall_score:.0f}%")
239
+
240
+ if overall_score >= 90:
241
+ print("Status: ✓ EXCELLENT - Treatment plan is comprehensive")
242
+ elif overall_score >= 75:
243
+ print("Status: ✓ GOOD - Minor improvements needed")
244
+ elif overall_score >= 60:
245
+ print("Status: ⚠ FAIR - Several sections need attention")
246
+ else:
247
+ print("Status: ✗ INCOMPLETE - Significant work needed")
248
+
249
+ print("\n" + "=" * 70)
250
+
251
+ # Return exit code based on completeness
252
+ return 0 if completeness_pct >= 80 else 1
253
+
254
+
255
+ def main():
256
+ parser = argparse.ArgumentParser(
257
+ description='Check treatment plan completeness',
258
+ formatter_class=argparse.RawDescriptionHelpFormatter,
259
+ epilog="""
260
+ Examples:
261
+ # Check a treatment plan file
262
+ python check_completeness.py my_treatment_plan.tex
263
+
264
+ # Check and exit with error code if incomplete (for CI/CD)
265
+ python check_completeness.py plan.tex && echo "Complete"
266
+
267
+ This script checks for:
268
+ - All required sections (10 core sections)
269
+ - SMART goal criteria
270
+ - HIPAA de-identification notice
271
+ - Provider signature section
272
+ - Uncustomized placeholders
273
+
274
+ Exit codes:
275
+ 0 - All required sections present (≥80% complete)
276
+ 1 - Missing required sections (<80% complete)
277
+ 2 - File error or invalid arguments
278
+ """,
279
+ )
280
+
281
+ parser.add_argument('file', type=Path, help='Treatment plan file to check (.tex format)')
282
+
283
+ parser.add_argument('-v', '--verbose', action='store_true', help='Show detailed output')
284
+
285
+ args = parser.parse_args()
286
+
287
+ # Check file exists and is .tex
288
+ if not args.file.exists():
289
+ print(f"Error: File not found: {args.file}", file=sys.stderr)
290
+ sys.exit(2)
291
+
292
+ if args.file.suffix.lower() not in ['.tex', '.txt']:
293
+ print(f"Warning: Expected .tex file, got {args.file.suffix}", file=sys.stderr)
294
+
295
+ # Read file
296
+ content = read_file(args.file)
297
+
298
+ # Perform checks
299
+ checklist, missing = check_sections(content)
300
+ smart_complete, smart_missing = check_smart_goals(content)
301
+ has_hipaa = check_hipaa_notice(content)
302
+ has_signature = check_provider_signature(content)
303
+ placeholder_count, placeholder_samples = check_placeholders_remaining(content)
304
+
305
+ # Display results
306
+ exit_code = display_results(
307
+ args.file,
308
+ checklist,
309
+ missing,
310
+ smart_complete,
311
+ smart_missing,
312
+ has_hipaa,
313
+ has_signature,
314
+ placeholder_count,
315
+ placeholder_samples,
316
+ )
317
+
318
+ sys.exit(exit_code)
319
+
320
+
321
+ if __name__ == '__main__':
322
+ main()
@@ -0,0 +1,233 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Generate Treatment Plan Template
4
+ Interactive script to select and generate treatment plan templates.
5
+ """
6
+
7
+ import argparse
8
+ import os
9
+ import shutil
10
+ import sys
11
+ from datetime import datetime
12
+ from pathlib import Path
13
+
14
+
15
+ # Template types and descriptions
16
+ TEMPLATES = {
17
+ 'general_medical': {
18
+ 'name': 'General Medical Treatment Plan',
19
+ 'file': 'general_medical_treatment_plan.tex',
20
+ 'description': 'For primary care and chronic disease management (diabetes, hypertension, etc.)',
21
+ },
22
+ 'rehabilitation': {
23
+ 'name': 'Rehabilitation Treatment Plan',
24
+ 'file': 'rehabilitation_treatment_plan.tex',
25
+ 'description': 'For physical therapy, occupational therapy, and rehabilitation services',
26
+ },
27
+ 'mental_health': {
28
+ 'name': 'Mental Health Treatment Plan',
29
+ 'file': 'mental_health_treatment_plan.tex',
30
+ 'description': 'For psychiatric and behavioral health treatment',
31
+ },
32
+ 'chronic_disease': {
33
+ 'name': 'Chronic Disease Management Plan',
34
+ 'file': 'chronic_disease_management_plan.tex',
35
+ 'description': 'For complex multimorbidity and long-term care coordination',
36
+ },
37
+ 'perioperative': {
38
+ 'name': 'Perioperative Care Plan',
39
+ 'file': 'perioperative_care_plan.tex',
40
+ 'description': 'For surgical and procedural patient management',
41
+ },
42
+ 'pain_management': {
43
+ 'name': 'Pain Management Plan',
44
+ 'file': 'pain_management_plan.tex',
45
+ 'description': 'For acute and chronic pain treatment (multimodal approach)',
46
+ },
47
+ }
48
+
49
+
50
+ def get_templates_dir():
51
+ """Get the path to the templates directory."""
52
+ # Assume script is in .claude/skills/treatment-plans/scripts/
53
+ script_dir = Path(__file__).parent
54
+ templates_dir = script_dir.parent / 'assets'
55
+ return templates_dir
56
+
57
+
58
+ def list_templates():
59
+ """Display available templates."""
60
+ print("\n" + "=" * 70)
61
+ print("AVAILABLE TREATMENT PLAN TEMPLATES")
62
+ print("=" * 70)
63
+
64
+ for i, (key, info) in enumerate(TEMPLATES.items(), 1):
65
+ print(f"\n{i}. {info['name']}")
66
+ print(f" Type: {key}")
67
+ print(f" File: {info['file']}")
68
+ print(f" Description: {info['description']}")
69
+
70
+ print("\n" + "=" * 70)
71
+
72
+
73
+ def interactive_selection():
74
+ """Interactive template selection."""
75
+ list_templates()
76
+
77
+ while True:
78
+ try:
79
+ choice = input("\nSelect template number (1-6) or 'q' to quit: ").strip().lower()
80
+
81
+ if choice == 'q':
82
+ print("Exiting...")
83
+ sys.exit(0)
84
+
85
+ choice_num = int(choice)
86
+
87
+ if 1 <= choice_num <= len(TEMPLATES):
88
+ template_key = list(TEMPLATES.keys())[choice_num - 1]
89
+ return template_key
90
+ else:
91
+ print(f"Please enter a number between 1 and {len(TEMPLATES)}.")
92
+ except ValueError:
93
+ print("Invalid input. Please enter a number or 'q' to quit.")
94
+
95
+
96
+ def get_output_filename(template_key, custom_name=None):
97
+ """Generate output filename."""
98
+ if custom_name:
99
+ # Ensure .tex extension
100
+ if not custom_name.endswith('.tex'):
101
+ custom_name += '.tex'
102
+ return custom_name
103
+
104
+ # Default: template_key_YYYYMMDD.tex
105
+ timestamp = datetime.now().strftime('%Y%m%d')
106
+ return f"{template_key}_plan_{timestamp}.tex"
107
+
108
+
109
+ def copy_template(template_key, output_path):
110
+ """Copy template to output location."""
111
+ templates_dir = get_templates_dir()
112
+ template_file = TEMPLATES[template_key]['file']
113
+ source_path = templates_dir / template_file
114
+
115
+ if not source_path.exists():
116
+ raise FileNotFoundError(f"Template not found: {source_path}")
117
+
118
+ # Create output directory if it doesn't exist
119
+ output_path = Path(output_path)
120
+ output_path.parent.mkdir(parents=True, exist_ok=True)
121
+
122
+ # Copy template
123
+ shutil.copy2(source_path, output_path)
124
+
125
+ return output_path
126
+
127
+
128
+ def display_success(output_path, template_key):
129
+ """Display success message with next steps."""
130
+ template_info = TEMPLATES[template_key]
131
+
132
+ print("\n" + "=" * 70)
133
+ print("✓ TEMPLATE GENERATED SUCCESSFULLY")
134
+ print("=" * 70)
135
+ print(f"\nTemplate: {template_info['name']}")
136
+ print(f"Output file: {output_path}")
137
+ print(f"File size: {os.path.getsize(output_path):,} bytes")
138
+
139
+ print("\n" + "-" * 70)
140
+ print("NEXT STEPS:")
141
+ print("-" * 70)
142
+
143
+ print("\n1. CUSTOMIZE THE TEMPLATE:")
144
+ print(" - Open the .tex file in your LaTeX editor")
145
+ print(" - Replace all [bracketed placeholders] with patient-specific information")
146
+ print(" - Remove or modify sections as appropriate for your patient")
147
+
148
+ print("\n2. COMPILE TO PDF:")
149
+ print(f" $ pdflatex {output_path.name}")
150
+
151
+ print("\n3. VALIDATE (optional):")
152
+ print(f" $ python check_completeness.py {output_path.name}")
153
+ print(f" $ python validate_treatment_plan.py {output_path.name}")
154
+
155
+ print("\n4. DE-IDENTIFY BEFORE SHARING:")
156
+ print(" - Remove all HIPAA identifiers (18 identifiers)")
157
+ print(" - See regulatory_compliance.md reference for details")
158
+
159
+ print("\n" + "=" * 70)
160
+
161
+
162
+ def main():
163
+ parser = argparse.ArgumentParser(
164
+ description='Generate treatment plan template',
165
+ formatter_class=argparse.RawDescriptionHelpFormatter,
166
+ epilog="""
167
+ Examples:
168
+ # Interactive mode (recommended for first-time users)
169
+ python generate_template.py
170
+
171
+ # Direct generation with type specification
172
+ python generate_template.py --type general_medical --output diabetes_plan.tex
173
+
174
+ # Generate with default filename
175
+ python generate_template.py --type mental_health
176
+
177
+ # List available templates
178
+ python generate_template.py --list
179
+
180
+ Available template types:
181
+ general_medical, rehabilitation, mental_health, chronic_disease,
182
+ perioperative, pain_management
183
+ """,
184
+ )
185
+
186
+ parser.add_argument('--type', choices=list(TEMPLATES.keys()), help='Template type to generate')
187
+
188
+ parser.add_argument('--output', help='Output filename (default: auto-generated with timestamp)')
189
+
190
+ parser.add_argument('--list', action='store_true', help='List available templates and exit')
191
+
192
+ args = parser.parse_args()
193
+
194
+ # List templates and exit
195
+ if args.list:
196
+ list_templates()
197
+ return
198
+
199
+ # Determine template type
200
+ if args.type:
201
+ template_key = args.type
202
+ print(f"\nGenerating template: {TEMPLATES[template_key]['name']}")
203
+ else:
204
+ # Interactive mode
205
+ template_key = interactive_selection()
206
+
207
+ # Determine output filename
208
+ if args.output:
209
+ output_filename = args.output
210
+ else:
211
+ output_filename = get_output_filename(template_key)
212
+
213
+ # Default output to current directory
214
+ output_path = Path.cwd() / output_filename
215
+
216
+ # Confirm overwrite if file exists
217
+ if output_path.exists():
218
+ response = input(f"\nFile {output_filename} already exists. Overwrite? (y/n): ").strip().lower()
219
+ if response != 'y':
220
+ print("Cancelled.")
221
+ return
222
+
223
+ # Copy template
224
+ try:
225
+ output_path = copy_template(template_key, output_path)
226
+ display_success(output_path, template_key)
227
+ except Exception as e:
228
+ print(f"\n✗ ERROR: {e}", file=sys.stderr)
229
+ sys.exit(1)
230
+
231
+
232
+ if __name__ == '__main__':
233
+ main()