@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.
- package/bin/skills/citation-management/SKILL.md +1109 -0
- package/bin/skills/citation-management/assets/bibtex_template.bib +264 -0
- package/bin/skills/citation-management/assets/citation_checklist.md +386 -0
- package/bin/skills/citation-management/references/bibtex_formatting.md +908 -0
- package/bin/skills/citation-management/references/citation_validation.md +794 -0
- package/bin/skills/citation-management/references/google_scholar_search.md +725 -0
- package/bin/skills/citation-management/references/metadata_extraction.md +870 -0
- package/bin/skills/citation-management/references/pubmed_search.md +839 -0
- package/bin/skills/citation-management/scripts/doi_to_bibtex.py +182 -0
- package/bin/skills/citation-management/scripts/extract_metadata.py +570 -0
- package/bin/skills/citation-management/scripts/format_bibtex.py +349 -0
- package/bin/skills/citation-management/scripts/search_google_scholar.py +251 -0
- package/bin/skills/citation-management/scripts/search_pubmed.py +348 -0
- package/bin/skills/citation-management/scripts/validate_citations.py +494 -0
- package/bin/skills/clinical-decision-support/README.md +129 -0
- package/bin/skills/clinical-decision-support/SKILL.md +506 -0
- package/bin/skills/clinical-decision-support/assets/biomarker_report_template.tex +380 -0
- package/bin/skills/clinical-decision-support/assets/clinical_pathway_template.tex +222 -0
- package/bin/skills/clinical-decision-support/assets/cohort_analysis_template.tex +359 -0
- package/bin/skills/clinical-decision-support/assets/color_schemes.tex +149 -0
- package/bin/skills/clinical-decision-support/assets/example_gbm_cohort.md +208 -0
- package/bin/skills/clinical-decision-support/assets/recommendation_strength_guide.md +328 -0
- package/bin/skills/clinical-decision-support/assets/treatment_recommendation_template.tex +529 -0
- package/bin/skills/clinical-decision-support/references/biomarker_classification.md +719 -0
- package/bin/skills/clinical-decision-support/references/clinical_decision_algorithms.md +604 -0
- package/bin/skills/clinical-decision-support/references/evidence_synthesis.md +840 -0
- package/bin/skills/clinical-decision-support/references/outcome_analysis.md +640 -0
- package/bin/skills/clinical-decision-support/references/patient_cohort_analysis.md +427 -0
- package/bin/skills/clinical-decision-support/references/treatment_recommendations.md +521 -0
- package/bin/skills/clinical-decision-support/scripts/biomarker_classifier.py +383 -0
- package/bin/skills/clinical-decision-support/scripts/build_decision_tree.py +417 -0
- package/bin/skills/clinical-decision-support/scripts/create_cohort_tables.py +509 -0
- package/bin/skills/clinical-decision-support/scripts/generate_survival_analysis.py +441 -0
- package/bin/skills/clinical-decision-support/scripts/validate_cds_document.py +326 -0
- package/bin/skills/clinical-reports/IMPLEMENTATION_SUMMARY.md +641 -0
- package/bin/skills/clinical-reports/README.md +236 -0
- package/bin/skills/clinical-reports/SKILL.md +1127 -0
- package/bin/skills/clinical-reports/assets/case_report_template.md +352 -0
- package/bin/skills/clinical-reports/assets/clinical_trial_csr_template.md +353 -0
- package/bin/skills/clinical-reports/assets/clinical_trial_sae_template.md +359 -0
- package/bin/skills/clinical-reports/assets/consult_note_template.md +305 -0
- package/bin/skills/clinical-reports/assets/discharge_summary_template.md +453 -0
- package/bin/skills/clinical-reports/assets/hipaa_compliance_checklist.md +395 -0
- package/bin/skills/clinical-reports/assets/history_physical_template.md +305 -0
- package/bin/skills/clinical-reports/assets/lab_report_template.md +309 -0
- package/bin/skills/clinical-reports/assets/pathology_report_template.md +249 -0
- package/bin/skills/clinical-reports/assets/quality_checklist.md +338 -0
- package/bin/skills/clinical-reports/assets/radiology_report_template.md +318 -0
- package/bin/skills/clinical-reports/assets/soap_note_template.md +253 -0
- package/bin/skills/clinical-reports/references/case_report_guidelines.md +570 -0
- package/bin/skills/clinical-reports/references/clinical_trial_reporting.md +693 -0
- package/bin/skills/clinical-reports/references/data_presentation.md +530 -0
- package/bin/skills/clinical-reports/references/diagnostic_reports_standards.md +629 -0
- package/bin/skills/clinical-reports/references/medical_terminology.md +588 -0
- package/bin/skills/clinical-reports/references/patient_documentation.md +744 -0
- package/bin/skills/clinical-reports/references/peer_review_standards.md +585 -0
- package/bin/skills/clinical-reports/references/regulatory_compliance.md +577 -0
- package/bin/skills/clinical-reports/scripts/check_deidentification.py +332 -0
- package/bin/skills/clinical-reports/scripts/compliance_checker.py +78 -0
- package/bin/skills/clinical-reports/scripts/extract_clinical_data.py +97 -0
- package/bin/skills/clinical-reports/scripts/format_adverse_events.py +97 -0
- package/bin/skills/clinical-reports/scripts/generate_report_template.py +149 -0
- package/bin/skills/clinical-reports/scripts/terminology_validator.py +126 -0
- package/bin/skills/clinical-reports/scripts/validate_case_report.py +323 -0
- package/bin/skills/clinical-reports/scripts/validate_trial_report.py +88 -0
- package/bin/skills/fireworks-ai/SKILL.md +665 -0
- package/bin/skills/generate-image/SKILL.md +178 -0
- package/bin/skills/generate-image/scripts/generate_image.py +254 -0
- package/bin/skills/groq/SKILL.md +347 -0
- package/bin/skills/hypothesis-generation/SKILL.md +293 -0
- package/bin/skills/hypothesis-generation/assets/FORMATTING_GUIDE.md +672 -0
- package/bin/skills/hypothesis-generation/assets/hypothesis_generation.sty +307 -0
- package/bin/skills/hypothesis-generation/assets/hypothesis_report_template.tex +572 -0
- package/bin/skills/hypothesis-generation/references/experimental_design_patterns.md +329 -0
- package/bin/skills/hypothesis-generation/references/hypothesis_quality_criteria.md +198 -0
- package/bin/skills/hypothesis-generation/references/literature_search_strategies.md +622 -0
- package/bin/skills/latex-posters/README.md +417 -0
- package/bin/skills/latex-posters/SKILL.md +1602 -0
- package/bin/skills/latex-posters/assets/baposter_template.tex +257 -0
- package/bin/skills/latex-posters/assets/beamerposter_template.tex +244 -0
- package/bin/skills/latex-posters/assets/poster_quality_checklist.md +358 -0
- package/bin/skills/latex-posters/assets/tikzposter_template.tex +251 -0
- package/bin/skills/latex-posters/references/latex_poster_packages.md +745 -0
- package/bin/skills/latex-posters/references/poster_content_guide.md +748 -0
- package/bin/skills/latex-posters/references/poster_design_principles.md +806 -0
- package/bin/skills/latex-posters/references/poster_layout_design.md +900 -0
- package/bin/skills/latex-posters/scripts/review_poster.sh +214 -0
- package/bin/skills/literature-review/SKILL.md +641 -0
- package/bin/skills/literature-review/assets/review_template.md +412 -0
- package/bin/skills/literature-review/references/citation_styles.md +166 -0
- package/bin/skills/literature-review/references/database_strategies.md +455 -0
- package/bin/skills/literature-review/scripts/generate_pdf.py +184 -0
- package/bin/skills/literature-review/scripts/search_databases.py +310 -0
- package/bin/skills/literature-review/scripts/verify_citations.py +218 -0
- package/bin/skills/market-research-reports/SKILL.md +904 -0
- package/bin/skills/market-research-reports/assets/FORMATTING_GUIDE.md +428 -0
- package/bin/skills/market-research-reports/assets/market_report_template.tex +1380 -0
- package/bin/skills/market-research-reports/assets/market_research.sty +564 -0
- package/bin/skills/market-research-reports/references/data_analysis_patterns.md +548 -0
- package/bin/skills/market-research-reports/references/report_structure_guide.md +999 -0
- package/bin/skills/market-research-reports/references/visual_generation_guide.md +1077 -0
- package/bin/skills/market-research-reports/scripts/generate_market_visuals.py +472 -0
- package/bin/skills/markitdown/INSTALLATION_GUIDE.md +318 -0
- package/bin/skills/markitdown/LICENSE.txt +22 -0
- package/bin/skills/markitdown/OPENROUTER_INTEGRATION.md +359 -0
- package/bin/skills/markitdown/QUICK_REFERENCE.md +309 -0
- package/bin/skills/markitdown/README.md +184 -0
- package/bin/skills/markitdown/SKILL.md +486 -0
- package/bin/skills/markitdown/SKILL_SUMMARY.md +307 -0
- package/bin/skills/markitdown/assets/example_usage.md +463 -0
- package/bin/skills/markitdown/references/api_reference.md +399 -0
- package/bin/skills/markitdown/references/file_formats.md +542 -0
- package/bin/skills/markitdown/scripts/batch_convert.py +195 -0
- package/bin/skills/markitdown/scripts/convert_literature.py +262 -0
- package/bin/skills/markitdown/scripts/convert_with_ai.py +224 -0
- package/bin/skills/ml-paper-writing/SKILL.md +937 -0
- package/bin/skills/ml-paper-writing/references/checklists.md +361 -0
- package/bin/skills/ml-paper-writing/references/citation-workflow.md +562 -0
- package/bin/skills/ml-paper-writing/references/reviewer-guidelines.md +367 -0
- package/bin/skills/ml-paper-writing/references/sources.md +159 -0
- package/bin/skills/ml-paper-writing/references/writing-guide.md +476 -0
- package/bin/skills/ml-paper-writing/templates/README.md +251 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/README.md +534 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
- package/bin/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
- package/bin/skills/ml-paper-writing/templates/acl/README.md +50 -0
- package/bin/skills/ml-paper-writing/templates/acl/acl.sty +312 -0
- package/bin/skills/ml-paper-writing/templates/acl/acl_latex.tex +377 -0
- package/bin/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +101 -0
- package/bin/skills/ml-paper-writing/templates/acl/acl_natbib.bst +1940 -0
- package/bin/skills/ml-paper-writing/templates/acl/anthology.bib.txt +26 -0
- package/bin/skills/ml-paper-writing/templates/acl/custom.bib +70 -0
- package/bin/skills/ml-paper-writing/templates/acl/formatting.md +326 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/README.md +3 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/math_commands.tex +508 -0
- package/bin/skills/ml-paper-writing/templates/colm2025/natbib.sty +1246 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +508 -0
- package/bin/skills/ml-paper-writing/templates/iclr2026/natbib.sty +1246 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/algorithm.sty +79 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +201 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.bib +75 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/example_paper.tex +662 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/icml2026.bst +1443 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/icml2026.sty +767 -0
- package/bin/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- package/bin/skills/ml-paper-writing/templates/neurips2025/Makefile +36 -0
- package/bin/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
- package/bin/skills/ml-paper-writing/templates/neurips2025/main.tex +38 -0
- package/bin/skills/ml-paper-writing/templates/neurips2025/neurips.sty +382 -0
- package/bin/skills/paper-2-web/SKILL.md +491 -0
- package/bin/skills/paper-2-web/references/installation.md +141 -0
- package/bin/skills/paper-2-web/references/paper2poster.md +346 -0
- package/bin/skills/paper-2-web/references/paper2video.md +305 -0
- package/bin/skills/paper-2-web/references/paper2web.md +187 -0
- package/bin/skills/paper-2-web/references/usage_examples.md +436 -0
- package/bin/skills/peer-review/SKILL.md +702 -0
- package/bin/skills/peer-review/references/calibration_guidelines.md +196 -0
- package/bin/skills/peer-review/references/common_issues.md +552 -0
- package/bin/skills/peer-review/references/paper_mechanics.md +269 -0
- package/bin/skills/peer-review/references/reporting_standards.md +290 -0
- package/bin/skills/peer-review/references/scoring_rubric.md +239 -0
- package/bin/skills/pptx-posters/SKILL.md +410 -0
- package/bin/skills/pptx-posters/assets/poster_html_template.html +257 -0
- package/bin/skills/pptx-posters/assets/poster_quality_checklist.md +358 -0
- package/bin/skills/pptx-posters/references/poster_content_guide.md +748 -0
- package/bin/skills/pptx-posters/references/poster_design_principles.md +806 -0
- package/bin/skills/pptx-posters/references/poster_layout_design.md +900 -0
- package/bin/skills/research-grants/README.md +285 -0
- package/bin/skills/research-grants/SKILL.md +938 -0
- package/bin/skills/research-grants/assets/budget_justification_template.md +453 -0
- package/bin/skills/research-grants/assets/nih_specific_aims_template.md +166 -0
- package/bin/skills/research-grants/assets/nsf_project_summary_template.md +92 -0
- package/bin/skills/research-grants/references/broader_impacts.md +392 -0
- package/bin/skills/research-grants/references/darpa_guidelines.md +636 -0
- package/bin/skills/research-grants/references/doe_guidelines.md +586 -0
- package/bin/skills/research-grants/references/nih_guidelines.md +851 -0
- package/bin/skills/research-grants/references/nsf_guidelines.md +570 -0
- package/bin/skills/research-grants/references/specific_aims_guide.md +458 -0
- package/bin/skills/research-lookup/README.md +156 -0
- package/bin/skills/research-lookup/SKILL.md +606 -0
- package/bin/skills/research-lookup/examples.py +174 -0
- package/bin/skills/research-lookup/lookup.py +187 -0
- package/bin/skills/research-lookup/research_lookup.py +483 -0
- package/bin/skills/research-lookup/scripts/research_lookup.py +483 -0
- package/bin/skills/scholar-evaluation/SKILL.md +289 -0
- package/bin/skills/scholar-evaluation/references/evaluation_framework.md +663 -0
- package/bin/skills/scholar-evaluation/scripts/calculate_scores.py +366 -0
- package/bin/skills/scientific-critical-thinking/SKILL.md +566 -0
- package/bin/skills/scientific-critical-thinking/references/common_biases.md +364 -0
- package/bin/skills/scientific-critical-thinking/references/evidence_hierarchy.md +484 -0
- package/bin/skills/scientific-critical-thinking/references/experimental_design.md +496 -0
- package/bin/skills/scientific-critical-thinking/references/logical_fallacies.md +478 -0
- package/bin/skills/scientific-critical-thinking/references/scientific_method.md +169 -0
- package/bin/skills/scientific-critical-thinking/references/statistical_pitfalls.md +506 -0
- package/bin/skills/scientific-schematics/QUICK_REFERENCE.md +207 -0
- package/bin/skills/scientific-schematics/README.md +327 -0
- package/bin/skills/scientific-schematics/SKILL.md +615 -0
- package/bin/skills/scientific-schematics/example_usage.sh +89 -0
- package/bin/skills/scientific-schematics/references/best_practices.md +559 -0
- package/bin/skills/scientific-schematics/scripts/generate_schematic.py +135 -0
- package/bin/skills/scientific-schematics/scripts/generate_schematic_ai.py +807 -0
- package/bin/skills/scientific-schematics/test_ai_generation.py +243 -0
- package/bin/skills/scientific-slides/SKILL.md +942 -0
- package/bin/skills/scientific-slides/assets/timing_guidelines.md +597 -0
- package/bin/skills/scientific-slides/references/data_visualization_slides.md +708 -0
- package/bin/skills/scientific-slides/references/presentation_structure.md +642 -0
- package/bin/skills/scientific-slides/references/slide_design_principles.md +849 -0
- package/bin/skills/scientific-slides/references/talk_types_guide.md +687 -0
- package/bin/skills/scientific-slides/references/visual_review_workflow.md +775 -0
- package/bin/skills/scientific-slides/scripts/generate_slide_image.py +143 -0
- package/bin/skills/scientific-slides/scripts/generate_slide_image_ai.py +748 -0
- package/bin/skills/scientific-slides/scripts/pdf_to_images.py +201 -0
- package/bin/skills/scientific-slides/scripts/slides_to_pdf.py +220 -0
- package/bin/skills/scientific-slides/scripts/validate_presentation.py +367 -0
- package/bin/skills/scientific-writing/SKILL.md +714 -0
- package/bin/skills/scientific-writing/assets/REPORT_FORMATTING_GUIDE.md +574 -0
- package/bin/skills/scientific-writing/assets/scientific_report.sty +606 -0
- package/bin/skills/scientific-writing/assets/scientific_report_template.tex +449 -0
- package/bin/skills/scientific-writing/references/citation_styles.md +720 -0
- package/bin/skills/scientific-writing/references/figures_tables.md +806 -0
- package/bin/skills/scientific-writing/references/imrad_structure.md +686 -0
- package/bin/skills/scientific-writing/references/professional_report_formatting.md +664 -0
- package/bin/skills/scientific-writing/references/reporting_guidelines.md +748 -0
- package/bin/skills/scientific-writing/references/writing_principles.md +824 -0
- package/bin/skills/tinker/SKILL.md +2 -3
- package/bin/skills/together-ai/SKILL.md +722 -0
- package/bin/skills/treatment-plans/README.md +488 -0
- package/bin/skills/treatment-plans/SKILL.md +1579 -0
- package/bin/skills/treatment-plans/assets/STYLING_QUICK_REFERENCE.md +185 -0
- package/bin/skills/treatment-plans/assets/chronic_disease_management_plan.tex +665 -0
- package/bin/skills/treatment-plans/assets/general_medical_treatment_plan.tex +547 -0
- package/bin/skills/treatment-plans/assets/medical_treatment_plan.sty +222 -0
- package/bin/skills/treatment-plans/assets/mental_health_treatment_plan.tex +774 -0
- package/bin/skills/treatment-plans/assets/one_page_treatment_plan.tex +193 -0
- package/bin/skills/treatment-plans/assets/pain_management_plan.tex +799 -0
- package/bin/skills/treatment-plans/assets/perioperative_care_plan.tex +753 -0
- package/bin/skills/treatment-plans/assets/quality_checklist.md +471 -0
- package/bin/skills/treatment-plans/assets/rehabilitation_treatment_plan.tex +756 -0
- package/bin/skills/treatment-plans/references/goal_setting_frameworks.md +411 -0
- package/bin/skills/treatment-plans/references/intervention_guidelines.md +507 -0
- package/bin/skills/treatment-plans/references/regulatory_compliance.md +476 -0
- package/bin/skills/treatment-plans/references/specialty_specific_guidelines.md +655 -0
- package/bin/skills/treatment-plans/references/treatment_plan_standards.md +485 -0
- package/bin/skills/treatment-plans/scripts/check_completeness.py +322 -0
- package/bin/skills/treatment-plans/scripts/generate_template.py +233 -0
- package/bin/skills/treatment-plans/scripts/timeline_generator.py +385 -0
- package/bin/skills/treatment-plans/scripts/validate_treatment_plan.py +369 -0
- package/bin/skills/unsloth/SKILL.md +565 -47
- package/bin/skills/unsloth/docs/advanced-rl.md +222 -0
- package/bin/skills/unsloth/docs/chat-templates.md +141 -0
- package/bin/skills/unsloth/docs/datasets.md +489 -0
- package/bin/skills/unsloth/docs/docker-extended.md +99 -0
- package/bin/skills/unsloth/docs/dynamic-ggufs-2.0.md +116 -0
- package/bin/skills/unsloth/docs/dynamic-ggufs-aider.md +118 -0
- package/bin/skills/unsloth/docs/faq.md +91 -0
- package/bin/skills/unsloth/docs/fp16-vs-bf16.md +61 -0
- package/bin/skills/unsloth/docs/fp8-rl.md +224 -0
- package/bin/skills/unsloth/docs/glm-4.7-flash.md +997 -0
- package/bin/skills/unsloth/docs/inference-deployment-overview.md +17 -0
- package/bin/skills/unsloth/docs/inference.md +27 -0
- package/bin/skills/unsloth/docs/installation-docker.md +155 -0
- package/bin/skills/unsloth/docs/installation-pip.md +148 -0
- package/bin/skills/unsloth/docs/kernels-packing.md +190 -0
- package/bin/skills/unsloth/docs/kimi-k2.5.md +634 -0
- package/bin/skills/unsloth/docs/lm-studio.md +235 -0
- package/bin/skills/unsloth/docs/lora-hot-swapping.md +75 -0
- package/bin/skills/unsloth/docs/lora-hyperparameters.md +363 -0
- package/bin/skills/unsloth/docs/memory-efficient-rl.md +267 -0
- package/bin/skills/unsloth/docs/model-selection.md +70 -0
- package/bin/skills/unsloth/docs/models.md +532 -0
- package/bin/skills/unsloth/docs/multi-gpu-ddp.md +90 -0
- package/bin/skills/unsloth/docs/notebooks.md +223 -0
- package/bin/skills/unsloth/docs/overview.md +110 -0
- package/bin/skills/unsloth/docs/qwen3-coder-next-extended.md +900 -0
- package/bin/skills/unsloth/docs/qwen3-coder-next.md +900 -0
- package/bin/skills/unsloth/docs/requirements.md +45 -0
- package/bin/skills/unsloth/docs/reward-hacking.md +25 -0
- package/bin/skills/unsloth/docs/saving-to-gguf.md +138 -0
- package/bin/skills/unsloth/docs/saving-to-ollama.md +46 -0
- package/bin/skills/unsloth/docs/sglang-guide.md +278 -0
- package/bin/skills/unsloth/docs/speculative-decoding.md +70 -0
- package/bin/skills/unsloth/docs/tool-calling.md +334 -0
- package/bin/skills/unsloth/docs/troubleshooting-faq.md +204 -0
- package/bin/skills/unsloth/docs/troubleshooting-inference.md +26 -0
- package/bin/skills/unsloth/docs/tts-fine-tuning.md +149 -0
- package/bin/skills/unsloth/docs/tutorial-grpo.md +273 -0
- package/bin/skills/unsloth/docs/tutorial-llama3-ollama.md +356 -0
- package/bin/skills/unsloth/docs/vision-fine-tuning.md +135 -0
- package/bin/skills/unsloth/docs/vision-rl.md +170 -0
- package/bin/skills/unsloth/docs/vllm-engine-arguments.md +43 -0
- package/bin/skills/unsloth/docs/vllm-guide.md +98 -0
- package/bin/skills/venue-templates/SKILL.md +686 -0
- package/bin/skills/venue-templates/assets/examples/cell_summary_example.md +247 -0
- package/bin/skills/venue-templates/assets/examples/medical_structured_abstract.md +313 -0
- package/bin/skills/venue-templates/assets/examples/nature_abstract_examples.md +213 -0
- package/bin/skills/venue-templates/assets/examples/neurips_introduction_example.md +245 -0
- package/bin/skills/venue-templates/assets/grants/nih_specific_aims.tex +235 -0
- package/bin/skills/venue-templates/assets/grants/nsf_proposal_template.tex +375 -0
- package/bin/skills/venue-templates/assets/journals/nature_article.tex +171 -0
- package/bin/skills/venue-templates/assets/journals/neurips_article.tex +283 -0
- package/bin/skills/venue-templates/assets/journals/plos_one.tex +317 -0
- package/bin/skills/venue-templates/assets/posters/beamerposter_academic.tex +311 -0
- package/bin/skills/venue-templates/references/cell_press_style.md +483 -0
- package/bin/skills/venue-templates/references/conferences_formatting.md +564 -0
- package/bin/skills/venue-templates/references/cs_conference_style.md +463 -0
- package/bin/skills/venue-templates/references/grants_requirements.md +787 -0
- package/bin/skills/venue-templates/references/journals_formatting.md +486 -0
- package/bin/skills/venue-templates/references/medical_journal_styles.md +535 -0
- package/bin/skills/venue-templates/references/ml_conference_style.md +556 -0
- package/bin/skills/venue-templates/references/nature_science_style.md +405 -0
- package/bin/skills/venue-templates/references/posters_guidelines.md +628 -0
- package/bin/skills/venue-templates/references/reviewer_expectations.md +417 -0
- package/bin/skills/venue-templates/references/venue_writing_styles.md +321 -0
- package/bin/skills/venue-templates/scripts/customize_template.py +195 -0
- package/bin/skills/venue-templates/scripts/query_template.py +266 -0
- package/bin/skills/venue-templates/scripts/validate_format.py +250 -0
- package/bin/synsc +0 -0
- package/package.json +1 -1
- package/bin/skills/unsloth/references/index.md +0 -7
- package/bin/skills/unsloth/references/llms-full.md +0 -16799
- package/bin/skills/unsloth/references/llms-txt.md +0 -12044
- package/bin/skills/unsloth/references/llms.md +0 -82
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
PDF to Images Converter for Presentations
|
|
4
|
+
|
|
5
|
+
Converts presentation PDFs to images for visual inspection and review.
|
|
6
|
+
Supports multiple output formats and resolutions.
|
|
7
|
+
|
|
8
|
+
Uses PyMuPDF (fitz) as the primary conversion method - no external
|
|
9
|
+
dependencies required (no poppler, ghostscript, or ImageMagick needed).
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import argparse
|
|
13
|
+
import sys
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
from typing import List, Optional
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Try to import pymupdf (preferred - no external dependencies)
|
|
19
|
+
try:
|
|
20
|
+
import fitz # PyMuPDF
|
|
21
|
+
|
|
22
|
+
HAS_PYMUPDF = True
|
|
23
|
+
except ImportError:
|
|
24
|
+
HAS_PYMUPDF = False
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class PDFToImagesConverter:
|
|
28
|
+
"""Converts PDF presentations to images."""
|
|
29
|
+
|
|
30
|
+
def __init__(
|
|
31
|
+
self,
|
|
32
|
+
pdf_path: str,
|
|
33
|
+
output_prefix: str,
|
|
34
|
+
dpi: int = 150,
|
|
35
|
+
format: str = 'jpg',
|
|
36
|
+
first_page: Optional[int] = None,
|
|
37
|
+
last_page: Optional[int] = None,
|
|
38
|
+
):
|
|
39
|
+
self.pdf_path = Path(pdf_path)
|
|
40
|
+
self.output_prefix = output_prefix
|
|
41
|
+
self.dpi = dpi
|
|
42
|
+
self.format = format.lower()
|
|
43
|
+
self.first_page = first_page
|
|
44
|
+
self.last_page = last_page
|
|
45
|
+
|
|
46
|
+
# Validate format
|
|
47
|
+
if self.format not in ['jpg', 'jpeg', 'png']:
|
|
48
|
+
raise ValueError(f"Unsupported format: {format}. Use jpg or png.")
|
|
49
|
+
|
|
50
|
+
def convert(self) -> List[Path]:
|
|
51
|
+
"""Convert PDF to images using PyMuPDF."""
|
|
52
|
+
if not self.pdf_path.exists():
|
|
53
|
+
raise FileNotFoundError(f"PDF not found: {self.pdf_path}")
|
|
54
|
+
|
|
55
|
+
print(f"Converting: {self.pdf_path.name}")
|
|
56
|
+
print(f"Output prefix: {self.output_prefix}")
|
|
57
|
+
print(f"DPI: {self.dpi}")
|
|
58
|
+
print(f"Format: {self.format}")
|
|
59
|
+
|
|
60
|
+
if HAS_PYMUPDF:
|
|
61
|
+
return self._convert_with_pymupdf()
|
|
62
|
+
else:
|
|
63
|
+
raise RuntimeError(
|
|
64
|
+
"PyMuPDF not installed. Install it with:\n"
|
|
65
|
+
" pip install pymupdf\n\n"
|
|
66
|
+
"PyMuPDF is a self-contained library - no external dependencies needed."
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def _convert_with_pymupdf(self) -> List[Path]:
|
|
70
|
+
"""Convert using PyMuPDF library (no external dependencies)."""
|
|
71
|
+
print("Using PyMuPDF (no external dependencies required)...")
|
|
72
|
+
|
|
73
|
+
# Open the PDF
|
|
74
|
+
doc = fitz.open(self.pdf_path)
|
|
75
|
+
|
|
76
|
+
# Determine page range
|
|
77
|
+
start_page = (self.first_page - 1) if self.first_page else 0
|
|
78
|
+
end_page = self.last_page if self.last_page else doc.page_count
|
|
79
|
+
|
|
80
|
+
# Calculate zoom factor from DPI (72 DPI is the base)
|
|
81
|
+
zoom = self.dpi / 72
|
|
82
|
+
matrix = fitz.Matrix(zoom, zoom)
|
|
83
|
+
|
|
84
|
+
output_files = []
|
|
85
|
+
output_dir = Path(self.output_prefix).parent
|
|
86
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
87
|
+
|
|
88
|
+
for page_num in range(start_page, end_page):
|
|
89
|
+
page = doc[page_num]
|
|
90
|
+
|
|
91
|
+
# Render page to pixmap
|
|
92
|
+
pixmap = page.get_pixmap(matrix=matrix)
|
|
93
|
+
|
|
94
|
+
# Determine output path
|
|
95
|
+
output_path = Path(f"{self.output_prefix}-{page_num + 1:03d}.{self.format}")
|
|
96
|
+
|
|
97
|
+
# Save the image
|
|
98
|
+
if self.format in ['jpg', 'jpeg']:
|
|
99
|
+
pixmap.save(str(output_path), output="jpeg")
|
|
100
|
+
else:
|
|
101
|
+
pixmap.save(str(output_path), output="png")
|
|
102
|
+
|
|
103
|
+
output_files.append(output_path)
|
|
104
|
+
print(f" Created: {output_path.name}")
|
|
105
|
+
|
|
106
|
+
doc.close()
|
|
107
|
+
return output_files
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def main():
|
|
111
|
+
parser = argparse.ArgumentParser(
|
|
112
|
+
description='Convert presentation PDFs to images',
|
|
113
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
114
|
+
epilog="""
|
|
115
|
+
Examples:
|
|
116
|
+
%(prog)s presentation.pdf slides
|
|
117
|
+
→ Creates slides-001.jpg, slides-002.jpg, ...
|
|
118
|
+
|
|
119
|
+
%(prog)s presentation.pdf output/slide --dpi 300 --format png
|
|
120
|
+
→ Creates output/slide-001.png, slide-002.png, ... at high resolution
|
|
121
|
+
|
|
122
|
+
%(prog)s presentation.pdf review/s --first 5 --last 10
|
|
123
|
+
→ Converts only slides 5-10
|
|
124
|
+
|
|
125
|
+
Output:
|
|
126
|
+
Images are named: PREFIX-001.FORMAT, PREFIX-002.FORMAT, etc.
|
|
127
|
+
|
|
128
|
+
Resolution:
|
|
129
|
+
- 150 DPI: Good for screen review (default)
|
|
130
|
+
- 200 DPI: Higher quality for detailed inspection
|
|
131
|
+
- 300 DPI: Print quality (larger files)
|
|
132
|
+
|
|
133
|
+
Requirements:
|
|
134
|
+
Install PyMuPDF (no external dependencies needed):
|
|
135
|
+
pip install pymupdf
|
|
136
|
+
""",
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
parser.add_argument('pdf_path', help='Path to PDF presentation')
|
|
140
|
+
|
|
141
|
+
parser.add_argument('output_prefix', help='Output filename prefix (e.g., "slides" or "output/slide")')
|
|
142
|
+
|
|
143
|
+
parser.add_argument('--dpi', '-r', type=int, default=150, help='Resolution in DPI (default: 150)')
|
|
144
|
+
|
|
145
|
+
parser.add_argument(
|
|
146
|
+
'--format', '-f', choices=['jpg', 'jpeg', 'png'], default='jpg', help='Output format (default: jpg)'
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
parser.add_argument('--first', type=int, help='First page to convert (1-indexed)')
|
|
150
|
+
|
|
151
|
+
parser.add_argument('--last', type=int, help='Last page to convert (1-indexed)')
|
|
152
|
+
|
|
153
|
+
args = parser.parse_args()
|
|
154
|
+
|
|
155
|
+
# Create output directory if needed
|
|
156
|
+
output_dir = Path(args.output_prefix).parent
|
|
157
|
+
if output_dir != Path('.'):
|
|
158
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
159
|
+
|
|
160
|
+
# Convert
|
|
161
|
+
try:
|
|
162
|
+
converter = PDFToImagesConverter(
|
|
163
|
+
pdf_path=args.pdf_path,
|
|
164
|
+
output_prefix=args.output_prefix,
|
|
165
|
+
dpi=args.dpi,
|
|
166
|
+
format=args.format,
|
|
167
|
+
first_page=args.first,
|
|
168
|
+
last_page=args.last,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
output_files = converter.convert()
|
|
172
|
+
|
|
173
|
+
print()
|
|
174
|
+
print("=" * 60)
|
|
175
|
+
print(f"✅ Success! Created {len(output_files)} image(s)")
|
|
176
|
+
print("=" * 60)
|
|
177
|
+
|
|
178
|
+
if output_files:
|
|
179
|
+
print(f"\nFirst image: {output_files[0]}")
|
|
180
|
+
print(f"Last image: {output_files[-1]}")
|
|
181
|
+
|
|
182
|
+
# Calculate total size
|
|
183
|
+
total_size = sum(f.stat().st_size for f in output_files)
|
|
184
|
+
size_mb = total_size / (1024 * 1024)
|
|
185
|
+
print(f"Total size: {size_mb:.2f} MB")
|
|
186
|
+
|
|
187
|
+
print("\nNext steps:")
|
|
188
|
+
print(" 1. Review images for layout issues")
|
|
189
|
+
print(" 2. Check for text overflow or element overlap")
|
|
190
|
+
print(" 3. Verify readability from distance")
|
|
191
|
+
print(" 4. Document issues with slide numbers")
|
|
192
|
+
|
|
193
|
+
sys.exit(0)
|
|
194
|
+
|
|
195
|
+
except Exception as e:
|
|
196
|
+
print(f"\n❌ Error: {str(e)}", file=sys.stderr)
|
|
197
|
+
sys.exit(1)
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
if __name__ == '__main__':
|
|
201
|
+
main()
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Combine slide images into a single PDF presentation.
|
|
4
|
+
|
|
5
|
+
This script takes multiple slide images (PNG, JPG) and combines them
|
|
6
|
+
into a single PDF file, maintaining aspect ratio and quality.
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
# Combine all PNG files in a directory
|
|
10
|
+
python slides_to_pdf.py slides/*.png -o presentation.pdf
|
|
11
|
+
|
|
12
|
+
# Combine specific files in order
|
|
13
|
+
python slides_to_pdf.py slide_01.png slide_02.png slide_03.png -o presentation.pdf
|
|
14
|
+
|
|
15
|
+
# From a directory (sorted by filename)
|
|
16
|
+
python slides_to_pdf.py slides/ -o presentation.pdf
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
import argparse
|
|
20
|
+
import sys
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
from typing import List
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
try:
|
|
26
|
+
from PIL import Image
|
|
27
|
+
except ImportError:
|
|
28
|
+
print("Error: Pillow library not found. Install with: pip install Pillow")
|
|
29
|
+
sys.exit(1)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def get_image_files(paths: List[str]) -> List[Path]:
|
|
33
|
+
"""
|
|
34
|
+
Get list of image files from paths (files or directories).
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
paths: List of file paths or directory paths
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
Sorted list of image file paths
|
|
41
|
+
"""
|
|
42
|
+
image_extensions = {'.png', '.jpg', '.jpeg', '.gif', '.webp', '.bmp'}
|
|
43
|
+
image_files = []
|
|
44
|
+
|
|
45
|
+
for path_str in paths:
|
|
46
|
+
path = Path(path_str)
|
|
47
|
+
|
|
48
|
+
if path.is_file():
|
|
49
|
+
if path.suffix.lower() in image_extensions:
|
|
50
|
+
image_files.append(path)
|
|
51
|
+
else:
|
|
52
|
+
print(f"Warning: Skipping non-image file: {path}")
|
|
53
|
+
elif path.is_dir():
|
|
54
|
+
# Get all images in directory
|
|
55
|
+
for ext in image_extensions:
|
|
56
|
+
image_files.extend(path.glob(f"*{ext}"))
|
|
57
|
+
image_files.extend(path.glob(f"*{ext.upper()}"))
|
|
58
|
+
else:
|
|
59
|
+
# Try glob pattern
|
|
60
|
+
parent = path.parent
|
|
61
|
+
pattern = path.name
|
|
62
|
+
if parent.exists():
|
|
63
|
+
matches = list(parent.glob(pattern))
|
|
64
|
+
for match in matches:
|
|
65
|
+
if match.suffix.lower() in image_extensions:
|
|
66
|
+
image_files.append(match)
|
|
67
|
+
|
|
68
|
+
# Remove duplicates and sort
|
|
69
|
+
image_files = list(set(image_files))
|
|
70
|
+
image_files.sort(key=lambda x: x.name)
|
|
71
|
+
|
|
72
|
+
return image_files
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def combine_images_to_pdf(image_paths: List[Path], output_path: Path, dpi: int = 150, verbose: bool = False) -> bool:
|
|
76
|
+
"""
|
|
77
|
+
Combine multiple images into a single PDF.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
image_paths: List of image file paths
|
|
81
|
+
output_path: Output PDF path
|
|
82
|
+
dpi: Resolution for the PDF (default: 150)
|
|
83
|
+
verbose: Print progress information
|
|
84
|
+
|
|
85
|
+
Returns:
|
|
86
|
+
True if successful, False otherwise
|
|
87
|
+
"""
|
|
88
|
+
if not image_paths:
|
|
89
|
+
print("Error: No image files found")
|
|
90
|
+
return False
|
|
91
|
+
|
|
92
|
+
if verbose:
|
|
93
|
+
print(f"Combining {len(image_paths)} images into PDF...")
|
|
94
|
+
|
|
95
|
+
# Load all images
|
|
96
|
+
images = []
|
|
97
|
+
for i, img_path in enumerate(image_paths):
|
|
98
|
+
try:
|
|
99
|
+
img = Image.open(img_path)
|
|
100
|
+
# Convert to RGB if necessary (PDF doesn't support RGBA)
|
|
101
|
+
if img.mode in ('RGBA', 'P'):
|
|
102
|
+
# Create white background
|
|
103
|
+
background = Image.new('RGB', img.size, (255, 255, 255))
|
|
104
|
+
if img.mode == 'P':
|
|
105
|
+
img = img.convert('RGBA')
|
|
106
|
+
background.paste(img, mask=img.split()[-1] if img.mode == 'RGBA' else None)
|
|
107
|
+
img = background
|
|
108
|
+
elif img.mode != 'RGB':
|
|
109
|
+
img = img.convert('RGB')
|
|
110
|
+
|
|
111
|
+
images.append(img)
|
|
112
|
+
|
|
113
|
+
if verbose:
|
|
114
|
+
print(f" [{i + 1}/{len(image_paths)}] Loaded: {img_path.name} ({img.size[0]}x{img.size[1]})")
|
|
115
|
+
except Exception as e:
|
|
116
|
+
print(f"Error loading {img_path}: {e}")
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
if not images:
|
|
120
|
+
print("Error: No images could be loaded")
|
|
121
|
+
return False
|
|
122
|
+
|
|
123
|
+
# Create output directory if needed
|
|
124
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
125
|
+
|
|
126
|
+
# Save as PDF
|
|
127
|
+
try:
|
|
128
|
+
# First image
|
|
129
|
+
first_image = images[0]
|
|
130
|
+
|
|
131
|
+
# Remaining images (if any)
|
|
132
|
+
remaining_images = images[1:] if len(images) > 1 else []
|
|
133
|
+
|
|
134
|
+
# Save to PDF
|
|
135
|
+
first_image.save(output_path, "PDF", resolution=dpi, save_all=True, append_images=remaining_images)
|
|
136
|
+
|
|
137
|
+
if verbose:
|
|
138
|
+
print(f"\n✓ PDF created: {output_path}")
|
|
139
|
+
print(f" Total slides: {len(images)}")
|
|
140
|
+
file_size = output_path.stat().st_size
|
|
141
|
+
if file_size > 1024 * 1024:
|
|
142
|
+
print(f" File size: {file_size / (1024 * 1024):.1f} MB")
|
|
143
|
+
else:
|
|
144
|
+
print(f" File size: {file_size / 1024:.1f} KB")
|
|
145
|
+
|
|
146
|
+
return True
|
|
147
|
+
except Exception as e:
|
|
148
|
+
print(f"Error creating PDF: {e}")
|
|
149
|
+
return False
|
|
150
|
+
finally:
|
|
151
|
+
# Close all images
|
|
152
|
+
for img in images:
|
|
153
|
+
img.close()
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def main():
|
|
157
|
+
"""Command-line interface."""
|
|
158
|
+
parser = argparse.ArgumentParser(
|
|
159
|
+
description="Combine slide images into a single PDF presentation",
|
|
160
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
161
|
+
epilog="""
|
|
162
|
+
Examples:
|
|
163
|
+
# Combine PNG files using glob pattern
|
|
164
|
+
python slides_to_pdf.py slides/*.png -o presentation.pdf
|
|
165
|
+
|
|
166
|
+
# Combine specific files in order
|
|
167
|
+
python slides_to_pdf.py title.png intro.png methods.png results.png -o talk.pdf
|
|
168
|
+
|
|
169
|
+
# Combine all images from a directory (sorted by filename)
|
|
170
|
+
python slides_to_pdf.py slides/ -o presentation.pdf
|
|
171
|
+
|
|
172
|
+
# With custom DPI and verbose output
|
|
173
|
+
python slides_to_pdf.py slides/*.png -o presentation.pdf --dpi 200 -v
|
|
174
|
+
|
|
175
|
+
Supported formats: PNG, JPG, JPEG, GIF, WEBP, BMP
|
|
176
|
+
|
|
177
|
+
Tips:
|
|
178
|
+
- Name your slide images with numbers for correct ordering:
|
|
179
|
+
01_title.png, 02_intro.png, 03_methods.png, etc.
|
|
180
|
+
- Use the generate_slide_image.py script to create slides first
|
|
181
|
+
- Standard presentation aspect ratio is 16:9 (1920x1080 or 1280x720)
|
|
182
|
+
""",
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
parser.add_argument("images", nargs="+", help="Image files, directories, or glob patterns")
|
|
186
|
+
parser.add_argument("-o", "--output", required=True, help="Output PDF file path")
|
|
187
|
+
parser.add_argument("--dpi", type=int, default=150, help="PDF resolution in DPI (default: 150)")
|
|
188
|
+
parser.add_argument("-v", "--verbose", action="store_true", help="Verbose output")
|
|
189
|
+
|
|
190
|
+
args = parser.parse_args()
|
|
191
|
+
|
|
192
|
+
# Get image files
|
|
193
|
+
image_files = get_image_files(args.images)
|
|
194
|
+
|
|
195
|
+
if not image_files:
|
|
196
|
+
print("Error: No image files found matching the specified paths")
|
|
197
|
+
print("\nUsage examples:")
|
|
198
|
+
print(" python slides_to_pdf.py slides/*.png -o presentation.pdf")
|
|
199
|
+
print(" python slides_to_pdf.py slide1.png slide2.png -o presentation.pdf")
|
|
200
|
+
sys.exit(1)
|
|
201
|
+
|
|
202
|
+
print(f"Found {len(image_files)} image(s)")
|
|
203
|
+
if args.verbose:
|
|
204
|
+
for f in image_files:
|
|
205
|
+
print(f" - {f}")
|
|
206
|
+
|
|
207
|
+
# Combine into PDF
|
|
208
|
+
output_path = Path(args.output)
|
|
209
|
+
success = combine_images_to_pdf(image_files, output_path, dpi=args.dpi, verbose=args.verbose)
|
|
210
|
+
|
|
211
|
+
if success:
|
|
212
|
+
print(f"\n✓ PDF created: {output_path}")
|
|
213
|
+
sys.exit(0)
|
|
214
|
+
else:
|
|
215
|
+
print("\n✗ Failed to create PDF")
|
|
216
|
+
sys.exit(1)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
if __name__ == "__main__":
|
|
220
|
+
main()
|