@wentorai/research-plugins 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -22
- package/curated/analysis/README.md +82 -56
- package/curated/domains/README.md +225 -69
- package/curated/literature/README.md +115 -46
- package/curated/research/README.md +106 -58
- package/curated/tools/README.md +107 -87
- package/curated/writing/README.md +92 -45
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
- package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
- package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
- package/mcp-configs/communication/discord-mcp.json +29 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/communication/slack-mcp.json +29 -0
- package/mcp-configs/communication/telegram-mcp.json +28 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/database/neo4j-mcp.json +37 -0
- package/mcp-configs/database/postgres-mcp.json +28 -0
- package/mcp-configs/database/sqlite-mcp.json +29 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/github-mcp.json +31 -0
- package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/email/email-mcp.json +40 -0
- package/mcp-configs/email/gmail-mcp.json +37 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/mcp-configs/registry.json +178 -149
- package/mcp-configs/repository/dataverse-mcp.json +33 -0
- package/mcp-configs/repository/huggingface-mcp.json +29 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
- package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
- package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
- package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
- package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
- package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
- package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
- package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
- package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
- package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
- package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
- package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
- package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
- package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
- package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
- package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
- package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
- package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
- package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
- package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
- package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
- package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
- package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
- package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
- package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
- package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
- package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
- package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
- package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
- package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
- package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
- package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
- package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
- package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
- package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
- package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
- package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
- package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
- package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
- package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
- package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
- package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
- package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
- package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
- package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
- package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
- package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
- package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
- package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
- package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
- package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
- package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
- package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
- package/skills/tools/document/large-document-reader/SKILL.md +202 -0
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
- package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
- package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
- package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
- package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
- package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
- package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
- package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
- package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
- package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
- package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
- package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
- package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
- package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
- package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
- package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: innovation-management-guide
|
|
3
|
+
description: "Innovation metrics, R&D management research, and technology forecasting"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "light-bulb"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "business"
|
|
9
|
+
keywords: ["innovation", "r-and-d", "technology-management", "bibliometrics", "diffusion", "strategy"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Innovation Management Guide
|
|
14
|
+
|
|
15
|
+
A skill for conducting research on innovation management, technology strategy, and R&D performance. Covers innovation measurement, technology forecasting, diffusion modeling, patent-publication linkage, and bibliometric analysis of research portfolios.
|
|
16
|
+
|
|
17
|
+
## Innovation Measurement
|
|
18
|
+
|
|
19
|
+
### Key Innovation Metrics
|
|
20
|
+
|
|
21
|
+
| Metric | Definition | Data Source |
|
|
22
|
+
|--------|-----------|-------------|
|
|
23
|
+
| R&D intensity | R&D spending / Revenue | Annual reports, Compustat |
|
|
24
|
+
| Patent count | Granted patents per year | USPTO, EPO |
|
|
25
|
+
| Citation-weighted patents | Patents weighted by forward citations | PatentsView |
|
|
26
|
+
| New product revenue share | Revenue from products < 3 years old | Internal data |
|
|
27
|
+
| Time to market | Concept to commercial launch | Project records |
|
|
28
|
+
| Innovation efficiency | Revenue from new products / R&D spend | Combined internal data |
|
|
29
|
+
|
|
30
|
+
### Building an Innovation Scorecard
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
import pandas as pd
|
|
34
|
+
import numpy as np
|
|
35
|
+
|
|
36
|
+
def compute_innovation_scorecard(firm_data: pd.DataFrame) -> pd.DataFrame:
|
|
37
|
+
"""
|
|
38
|
+
Compute a multi-dimensional innovation scorecard for firms.
|
|
39
|
+
firm_data columns: firm_id, rd_spend, revenue, patents_filed,
|
|
40
|
+
patents_granted, citation_count, new_product_revenue, employees
|
|
41
|
+
"""
|
|
42
|
+
scorecard = pd.DataFrame()
|
|
43
|
+
scorecard["firm_id"] = firm_data["firm_id"]
|
|
44
|
+
|
|
45
|
+
# Input metrics
|
|
46
|
+
scorecard["rd_intensity"] = firm_data["rd_spend"] / firm_data["revenue"]
|
|
47
|
+
scorecard["rd_per_employee"] = firm_data["rd_spend"] / firm_data["employees"]
|
|
48
|
+
|
|
49
|
+
# Output metrics
|
|
50
|
+
scorecard["patent_yield"] = (
|
|
51
|
+
firm_data["patents_granted"] / (firm_data["rd_spend"] / 1e6)
|
|
52
|
+
)
|
|
53
|
+
scorecard["citation_impact"] = (
|
|
54
|
+
firm_data["citation_count"] / firm_data["patents_granted"].clip(lower=1)
|
|
55
|
+
)
|
|
56
|
+
scorecard["new_product_share"] = (
|
|
57
|
+
firm_data["new_product_revenue"] / firm_data["revenue"]
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# Efficiency
|
|
61
|
+
scorecard["innovation_efficiency"] = (
|
|
62
|
+
firm_data["new_product_revenue"] / firm_data["rd_spend"]
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# Normalize to percentile ranks within the sample
|
|
66
|
+
for col in scorecard.columns[1:]:
|
|
67
|
+
scorecard[f"{col}_rank"] = scorecard[col].rank(pct=True)
|
|
68
|
+
|
|
69
|
+
# Composite score (equal weights)
|
|
70
|
+
rank_cols = [c for c in scorecard.columns if c.endswith("_rank")]
|
|
71
|
+
scorecard["composite_score"] = scorecard[rank_cols].mean(axis=1)
|
|
72
|
+
|
|
73
|
+
return scorecard.sort_values("composite_score", ascending=False)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Technology Diffusion Models
|
|
77
|
+
|
|
78
|
+
### Bass Diffusion Model
|
|
79
|
+
|
|
80
|
+
The Bass model is the foundational framework for forecasting technology adoption:
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
from scipy.optimize import curve_fit
|
|
84
|
+
|
|
85
|
+
def bass_model(t: np.ndarray, p: float, q: float, m: float) -> np.ndarray:
|
|
86
|
+
"""
|
|
87
|
+
Bass diffusion model for cumulative adoption.
|
|
88
|
+
t: time periods (0, 1, 2, ...)
|
|
89
|
+
p: coefficient of innovation (external influence)
|
|
90
|
+
q: coefficient of imitation (internal influence)
|
|
91
|
+
m: market potential (total eventual adopters)
|
|
92
|
+
Returns cumulative adoption at each time period.
|
|
93
|
+
"""
|
|
94
|
+
return m * (1 - np.exp(-(p + q) * t)) / (1 + (q / p) * np.exp(-(p + q) * t))
|
|
95
|
+
|
|
96
|
+
def bass_incremental(t: np.ndarray, p: float, q: float, m: float) -> np.ndarray:
|
|
97
|
+
"""Bass model incremental (new adopters per period)."""
|
|
98
|
+
F = bass_model(t, p, q, m) / m
|
|
99
|
+
f = (p + q * F) * (1 - F)
|
|
100
|
+
return m * f
|
|
101
|
+
|
|
102
|
+
def fit_bass_model(adoption_data: np.ndarray) -> dict:
|
|
103
|
+
"""
|
|
104
|
+
Fit Bass diffusion parameters to observed adoption data.
|
|
105
|
+
adoption_data: cumulative adoption counts per period.
|
|
106
|
+
"""
|
|
107
|
+
t = np.arange(len(adoption_data))
|
|
108
|
+
try:
|
|
109
|
+
popt, pcov = curve_fit(
|
|
110
|
+
bass_model, t, adoption_data,
|
|
111
|
+
p0=[0.01, 0.3, adoption_data[-1] * 2],
|
|
112
|
+
bounds=([0, 0, adoption_data[-1]], [1, 2, adoption_data[-1] * 10]),
|
|
113
|
+
maxfev=10000,
|
|
114
|
+
)
|
|
115
|
+
return {
|
|
116
|
+
"p_innovation": round(popt[0], 6),
|
|
117
|
+
"q_imitation": round(popt[1], 6),
|
|
118
|
+
"m_potential": round(popt[2], 0),
|
|
119
|
+
"peak_period": round(np.log(popt[1] / popt[0]) / (popt[0] + popt[1]), 1),
|
|
120
|
+
"q_p_ratio": round(popt[1] / popt[0], 2),
|
|
121
|
+
}
|
|
122
|
+
except RuntimeError:
|
|
123
|
+
return {"error": "convergence_failed"}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Typical Bass Parameters by Technology Category
|
|
127
|
+
|
|
128
|
+
| Technology | p (innovation) | q (imitation) | q/p ratio |
|
|
129
|
+
|-----------|---------------|---------------|-----------|
|
|
130
|
+
| Consumer electronics | 0.01-0.03 | 0.3-0.5 | 10-50 |
|
|
131
|
+
| Enterprise software | 0.005-0.02 | 0.2-0.4 | 10-80 |
|
|
132
|
+
| Medical devices | 0.001-0.01 | 0.1-0.3 | 10-300 |
|
|
133
|
+
| Social media platforms | 0.03-0.10 | 0.5-0.8 | 5-25 |
|
|
134
|
+
|
|
135
|
+
## Bibliometric Analysis of R&D Portfolios
|
|
136
|
+
|
|
137
|
+
### Publication Portfolio Analysis
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
def analyze_research_portfolio(publications: pd.DataFrame) -> dict:
|
|
141
|
+
"""
|
|
142
|
+
Bibliometric analysis of an organization's research portfolio.
|
|
143
|
+
publications columns: doi, title, year, journal, citations,
|
|
144
|
+
fields (list), authors (list), affiliations (list)
|
|
145
|
+
"""
|
|
146
|
+
# Publication trend
|
|
147
|
+
annual_pubs = publications.groupby("year").size()
|
|
148
|
+
|
|
149
|
+
# Citation impact
|
|
150
|
+
citation_stats = {
|
|
151
|
+
"total_citations": publications.citations.sum(),
|
|
152
|
+
"mean_citations": publications.citations.mean(),
|
|
153
|
+
"median_citations": publications.citations.median(),
|
|
154
|
+
"h_index": compute_h_index(publications.citations.values),
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
# Research field distribution
|
|
158
|
+
all_fields = []
|
|
159
|
+
for fields in publications.fields:
|
|
160
|
+
all_fields.extend(fields)
|
|
161
|
+
field_dist = pd.Series(all_fields).value_counts().head(20)
|
|
162
|
+
|
|
163
|
+
# Collaboration patterns
|
|
164
|
+
collab_rate = publications.affiliations.apply(
|
|
165
|
+
lambda x: len(set(x)) > 1
|
|
166
|
+
).mean()
|
|
167
|
+
|
|
168
|
+
return {
|
|
169
|
+
"total_publications": len(publications),
|
|
170
|
+
"annual_trend": annual_pubs.to_dict(),
|
|
171
|
+
"citation_impact": citation_stats,
|
|
172
|
+
"top_fields": field_dist.to_dict(),
|
|
173
|
+
"collaboration_rate": round(collab_rate, 3),
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
def compute_h_index(citations: np.ndarray) -> int:
|
|
177
|
+
"""Compute h-index from an array of citation counts."""
|
|
178
|
+
sorted_cites = np.sort(citations)[::-1]
|
|
179
|
+
h = 0
|
|
180
|
+
for i, c in enumerate(sorted_cites):
|
|
181
|
+
if c >= i + 1:
|
|
182
|
+
h = i + 1
|
|
183
|
+
else:
|
|
184
|
+
break
|
|
185
|
+
return h
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Technology Forecasting Methods
|
|
189
|
+
|
|
190
|
+
### S-Curve Analysis
|
|
191
|
+
|
|
192
|
+
Technology performance typically follows an S-curve pattern:
|
|
193
|
+
|
|
194
|
+
1. **Emergence phase**: Slow initial growth, high uncertainty
|
|
195
|
+
2. **Growth phase**: Rapid performance improvement, competitive investment
|
|
196
|
+
3. **Maturity phase**: Diminishing returns, incremental improvement
|
|
197
|
+
4. **Saturation/decline**: Physical or market limits reached
|
|
198
|
+
|
|
199
|
+
### Forecasting Approaches
|
|
200
|
+
|
|
201
|
+
| Method | Time Horizon | Data Requirements | Best For |
|
|
202
|
+
|--------|-------------|-------------------|----------|
|
|
203
|
+
| Delphi method | 5-30 years | Expert panels | Emerging technologies |
|
|
204
|
+
| Trend extrapolation | 2-10 years | Historical time series | Incremental innovation |
|
|
205
|
+
| Scenario planning | 5-20 years | Qualitative analysis | Strategic uncertainty |
|
|
206
|
+
| Patent analysis | 3-10 years | Patent databases | Technology landscape |
|
|
207
|
+
| Bibliometric mapping | 2-5 years | Publication data | Research front detection |
|
|
208
|
+
|
|
209
|
+
## Open Innovation Research
|
|
210
|
+
|
|
211
|
+
### Measuring Open Innovation
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
def open_innovation_metrics(firm_patents: pd.DataFrame,
|
|
215
|
+
firm_publications: pd.DataFrame,
|
|
216
|
+
alliances: pd.DataFrame) -> dict:
|
|
217
|
+
"""
|
|
218
|
+
Compute open innovation indicators for a firm.
|
|
219
|
+
"""
|
|
220
|
+
# Inbound openness: external knowledge sourcing
|
|
221
|
+
external_collab_pubs = firm_publications[
|
|
222
|
+
firm_publications.external_coauthors > 0
|
|
223
|
+
]
|
|
224
|
+
inbound_ratio = len(external_collab_pubs) / max(len(firm_publications), 1)
|
|
225
|
+
|
|
226
|
+
# Outbound openness: technology licensing, spin-offs
|
|
227
|
+
licensed_patents = firm_patents[firm_patents.licensed == True]
|
|
228
|
+
outbound_ratio = len(licensed_patents) / max(len(firm_patents), 1)
|
|
229
|
+
|
|
230
|
+
# Network diversity (alliance partner variety)
|
|
231
|
+
partner_industries = alliances.partner_industry.nunique()
|
|
232
|
+
|
|
233
|
+
return {
|
|
234
|
+
"inbound_openness": round(inbound_ratio, 3),
|
|
235
|
+
"outbound_openness": round(outbound_ratio, 3),
|
|
236
|
+
"alliance_count": len(alliances),
|
|
237
|
+
"partner_diversity": partner_industries,
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Key Journals and Conferences
|
|
242
|
+
|
|
243
|
+
- *Research Policy*
|
|
244
|
+
- *Technovation*
|
|
245
|
+
- *Journal of Product Innovation Management*
|
|
246
|
+
- *R&D Management*
|
|
247
|
+
- *Strategic Management Journal*
|
|
248
|
+
- *Academy of Management Conference (TIM division)*
|
|
249
|
+
|
|
250
|
+
## Tools and Resources
|
|
251
|
+
|
|
252
|
+
- **Compustat / WRDS**: Financial data including R&D expenditure
|
|
253
|
+
- **Web of Science / Scopus**: Bibliometric data for publication analysis
|
|
254
|
+
- **PatentsView**: Patent data with inventor and assignee disambiguation
|
|
255
|
+
- **VOSviewer**: Bibliometric network visualization
|
|
256
|
+
- **Gephi**: Network analysis and visualization
|
|
257
|
+
- **Bass forecasting tools**: R diffusion package, Python implementations
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: operations-research-guide
|
|
3
|
+
description: "Optimization and operations research methods for business and logistics"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "gear"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "business"
|
|
9
|
+
keywords: ["optimization", "operations-research", "linear-programming", "scheduling", "supply-chain", "simulation"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Operations Research Guide
|
|
14
|
+
|
|
15
|
+
A skill for applying operations research (OR) methods to business, logistics, and resource allocation problems. Covers linear programming, integer programming, scheduling, network optimization, simulation, and decision analysis using Python optimization libraries.
|
|
16
|
+
|
|
17
|
+
## Linear Programming
|
|
18
|
+
|
|
19
|
+
### Problem Formulation and Solving
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from scipy.optimize import linprog
|
|
23
|
+
import numpy as np
|
|
24
|
+
|
|
25
|
+
def solve_production_planning():
|
|
26
|
+
"""
|
|
27
|
+
Example: A factory produces two products (A and B).
|
|
28
|
+
Product A: profit $40, uses 2h labor + 1kg material
|
|
29
|
+
Product B: profit $30, uses 1h labor + 2kg material
|
|
30
|
+
Constraints: 100h labor available, 80kg material available
|
|
31
|
+
Maximize total profit.
|
|
32
|
+
"""
|
|
33
|
+
# linprog minimizes, so negate for maximization
|
|
34
|
+
c = [-40, -30] # objective coefficients (negated)
|
|
35
|
+
|
|
36
|
+
# Inequality constraints: A_ub @ x <= b_ub
|
|
37
|
+
A_ub = [
|
|
38
|
+
[2, 1], # labor constraint
|
|
39
|
+
[1, 2], # material constraint
|
|
40
|
+
]
|
|
41
|
+
b_ub = [100, 80]
|
|
42
|
+
|
|
43
|
+
# Non-negativity bounds
|
|
44
|
+
bounds = [(0, None), (0, None)]
|
|
45
|
+
|
|
46
|
+
result = linprog(c, A_ub=A_ub, b_ub=b_ub, bounds=bounds, method="highs")
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
"product_A": result.x[0],
|
|
50
|
+
"product_B": result.x[1],
|
|
51
|
+
"max_profit": -result.fun,
|
|
52
|
+
"status": "optimal" if result.success else "infeasible",
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Using PuLP for Readable Models
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from pulp import LpProblem, LpMaximize, LpVariable, lpSum, value
|
|
60
|
+
|
|
61
|
+
def workforce_scheduling():
|
|
62
|
+
"""
|
|
63
|
+
Workforce scheduling: minimize staffing cost while meeting
|
|
64
|
+
demand for each day of the week. Workers work 5 consecutive days.
|
|
65
|
+
"""
|
|
66
|
+
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
|
|
67
|
+
demand = [17, 13, 15, 19, 14, 16, 11]
|
|
68
|
+
cost_per_worker = 1 # uniform cost
|
|
69
|
+
|
|
70
|
+
prob = LpProblem("workforce_scheduling", LpMaximize)
|
|
71
|
+
|
|
72
|
+
# x[i] = number of workers starting on day i
|
|
73
|
+
x = {i: LpVariable(f"start_{days[i]}", lowBound=0, cat="Integer")
|
|
74
|
+
for i in range(7)}
|
|
75
|
+
|
|
76
|
+
# Minimize total workers
|
|
77
|
+
prob += -lpSum(x[i] for i in range(7))
|
|
78
|
+
|
|
79
|
+
# Each day, workers starting on days [d-4, d-3, ..., d] are available
|
|
80
|
+
for d in range(7):
|
|
81
|
+
workers_available = lpSum(x[(d - j) % 7] for j in range(5))
|
|
82
|
+
prob += workers_available >= demand[d], f"demand_{days[d]}"
|
|
83
|
+
|
|
84
|
+
prob.solve()
|
|
85
|
+
|
|
86
|
+
return {
|
|
87
|
+
"status": prob.status,
|
|
88
|
+
"schedule": {days[i]: int(value(x[i])) for i in range(7)},
|
|
89
|
+
"total_workers": int(sum(value(x[i]) for i in range(7))),
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Integer and Mixed-Integer Programming
|
|
94
|
+
|
|
95
|
+
### Vehicle Routing Problem
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
from itertools import combinations
|
|
99
|
+
|
|
100
|
+
def solve_tsp_mtz(distances: np.ndarray) -> dict:
|
|
101
|
+
"""
|
|
102
|
+
Solve the Traveling Salesman Problem using Miller-Tucker-Zemlin formulation.
|
|
103
|
+
distances: n x n distance matrix
|
|
104
|
+
Returns optimal tour and total distance.
|
|
105
|
+
"""
|
|
106
|
+
from pulp import LpProblem, LpMinimize, LpVariable, LpBinary, lpSum, value
|
|
107
|
+
|
|
108
|
+
n = len(distances)
|
|
109
|
+
prob = LpProblem("TSP", LpMinimize)
|
|
110
|
+
|
|
111
|
+
# Binary variables: x[i][j] = 1 if edge (i,j) in tour
|
|
112
|
+
x = {(i, j): LpVariable(f"x_{i}_{j}", cat=LpBinary)
|
|
113
|
+
for i in range(n) for j in range(n) if i != j}
|
|
114
|
+
|
|
115
|
+
# Subtour elimination variables
|
|
116
|
+
u = {i: LpVariable(f"u_{i}", lowBound=1, upBound=n - 1)
|
|
117
|
+
for i in range(1, n)}
|
|
118
|
+
|
|
119
|
+
# Objective: minimize total distance
|
|
120
|
+
prob += lpSum(distances[i][j] * x[i, j] for i, j in x)
|
|
121
|
+
|
|
122
|
+
# Each city visited exactly once
|
|
123
|
+
for i in range(n):
|
|
124
|
+
prob += lpSum(x[i, j] for j in range(n) if j != i) == 1
|
|
125
|
+
prob += lpSum(x[j, i] for j in range(n) if j != i) == 1
|
|
126
|
+
|
|
127
|
+
# MTZ subtour elimination
|
|
128
|
+
for i in range(1, n):
|
|
129
|
+
for j in range(1, n):
|
|
130
|
+
if i != j:
|
|
131
|
+
prob += u[i] - u[j] + (n - 1) * x[i, j] <= n - 2
|
|
132
|
+
|
|
133
|
+
prob.solve()
|
|
134
|
+
|
|
135
|
+
# Extract tour
|
|
136
|
+
tour = [0]
|
|
137
|
+
current = 0
|
|
138
|
+
for _ in range(n - 1):
|
|
139
|
+
for j in range(n):
|
|
140
|
+
if j != current and (current, j) in x and value(x[current, j]) > 0.5:
|
|
141
|
+
tour.append(j)
|
|
142
|
+
current = j
|
|
143
|
+
break
|
|
144
|
+
|
|
145
|
+
return {
|
|
146
|
+
"tour": tour,
|
|
147
|
+
"total_distance": value(prob.objective),
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Queuing Theory
|
|
152
|
+
|
|
153
|
+
### M/M/c Queue Analysis
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
from math import factorial, exp
|
|
157
|
+
|
|
158
|
+
def mmc_queue(arrival_rate: float, service_rate: float,
|
|
159
|
+
n_servers: int) -> dict:
|
|
160
|
+
"""
|
|
161
|
+
Analyze an M/M/c queue (Poisson arrivals, exponential service, c servers).
|
|
162
|
+
arrival_rate: lambda (customers per unit time)
|
|
163
|
+
service_rate: mu (customers served per unit time per server)
|
|
164
|
+
n_servers: c (number of parallel servers)
|
|
165
|
+
"""
|
|
166
|
+
rho = arrival_rate / (n_servers * service_rate)
|
|
167
|
+
|
|
168
|
+
if rho >= 1:
|
|
169
|
+
return {"stable": False, "utilization": rho}
|
|
170
|
+
|
|
171
|
+
# Erlang C formula: probability of waiting
|
|
172
|
+
a = arrival_rate / service_rate
|
|
173
|
+
sum_terms = sum(a ** k / factorial(k) for k in range(n_servers))
|
|
174
|
+
erlang_c = (a ** n_servers / factorial(n_servers)) / (
|
|
175
|
+
(a ** n_servers / factorial(n_servers)) + (1 - rho) * sum_terms
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
# Performance metrics
|
|
179
|
+
Lq = erlang_c * rho / (1 - rho) # avg queue length
|
|
180
|
+
Wq = Lq / arrival_rate # avg wait time
|
|
181
|
+
W = Wq + 1 / service_rate # avg time in system
|
|
182
|
+
L = arrival_rate * W # avg number in system
|
|
183
|
+
|
|
184
|
+
return {
|
|
185
|
+
"stable": True,
|
|
186
|
+
"utilization": round(rho, 4),
|
|
187
|
+
"prob_wait": round(erlang_c, 4),
|
|
188
|
+
"avg_queue_length": round(Lq, 4),
|
|
189
|
+
"avg_wait_time": round(Wq, 4),
|
|
190
|
+
"avg_system_time": round(W, 4),
|
|
191
|
+
"avg_in_system": round(L, 4),
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Simulation Methods
|
|
196
|
+
|
|
197
|
+
### Discrete-Event Simulation
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
import simpy
|
|
201
|
+
import random
|
|
202
|
+
|
|
203
|
+
def simulate_service_center(n_servers: int, arrival_rate: float,
|
|
204
|
+
service_rate: float, sim_time: float = 480):
|
|
205
|
+
"""
|
|
206
|
+
Discrete-event simulation of a service center using SimPy.
|
|
207
|
+
sim_time: simulation duration in minutes (default 8-hour day).
|
|
208
|
+
"""
|
|
209
|
+
wait_times = []
|
|
210
|
+
|
|
211
|
+
def customer(env, server):
|
|
212
|
+
arrival_time = env.now
|
|
213
|
+
with server.request() as req:
|
|
214
|
+
yield req
|
|
215
|
+
wait = env.now - arrival_time
|
|
216
|
+
wait_times.append(wait)
|
|
217
|
+
yield env.timeout(random.expovariate(service_rate))
|
|
218
|
+
|
|
219
|
+
def customer_generator(env, server):
|
|
220
|
+
customer_id = 0
|
|
221
|
+
while True:
|
|
222
|
+
yield env.timeout(random.expovariate(arrival_rate))
|
|
223
|
+
customer_id += 1
|
|
224
|
+
env.process(customer(env, server))
|
|
225
|
+
|
|
226
|
+
env = simpy.Environment()
|
|
227
|
+
server = simpy.Resource(env, capacity=n_servers)
|
|
228
|
+
env.process(customer_generator(env, server))
|
|
229
|
+
env.run(until=sim_time)
|
|
230
|
+
|
|
231
|
+
return {
|
|
232
|
+
"customers_served": len(wait_times),
|
|
233
|
+
"avg_wait": np.mean(wait_times) if wait_times else 0,
|
|
234
|
+
"max_wait": max(wait_times) if wait_times else 0,
|
|
235
|
+
"pct_waited": sum(1 for w in wait_times if w > 0) / len(wait_times) * 100,
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Decision Analysis
|
|
240
|
+
|
|
241
|
+
### Multi-Criteria Decision Making
|
|
242
|
+
|
|
243
|
+
| Method | Description | Best For |
|
|
244
|
+
|--------|-------------|----------|
|
|
245
|
+
| AHP (Analytic Hierarchy Process) | Pairwise comparison matrix | Structured group decisions |
|
|
246
|
+
| TOPSIS | Distance to ideal/anti-ideal solution | Ranking alternatives |
|
|
247
|
+
| Weighted scoring | Simple weighted sum | Quick comparisons |
|
|
248
|
+
| Decision trees | Sequential decision under uncertainty | Multi-stage problems |
|
|
249
|
+
|
|
250
|
+
## Tools and Libraries
|
|
251
|
+
|
|
252
|
+
- **PuLP**: Python LP/MIP modeling with multiple solver backends
|
|
253
|
+
- **OR-Tools (Google)**: Constraint programming, routing, scheduling
|
|
254
|
+
- **Gurobi / CPLEX**: Commercial high-performance MIP solvers (free academic licenses)
|
|
255
|
+
- **SimPy**: Python discrete-event simulation framework
|
|
256
|
+
- **SciPy optimize**: Linear programming, nonlinear optimization
|
|
257
|
+
- **Pyomo**: Algebraic modeling language for optimization in Python
|
|
258
|
+
- **AMPL**: Commercial algebraic modeling language
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: xpert-bi-guide
|
|
3
|
+
description: "AI business intelligence agent with NL-to-SQL and dashboards"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📊"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "business"
|
|
9
|
+
keywords: ["business intelligence", "NL-to-SQL", "dashboard", "data analysis", "BI agent", "analytics"]
|
|
10
|
+
source: "https://github.com/xpert-ai/xpert"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Xpert BI Agent Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Xpert is an AI-powered business intelligence agent that converts natural language questions into SQL queries, generates interactive dashboards, and provides data-driven insights. Connects to databases (PostgreSQL, MySQL, BigQuery) and produces visualizations with explanations. Useful for researchers analyzing institutional data and business analytics.
|
|
18
|
+
|
|
19
|
+
## Features
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
### Core Capabilities
|
|
23
|
+
- **NL-to-SQL**: Convert questions to SQL queries
|
|
24
|
+
- **Auto-visualization**: Choose appropriate chart types
|
|
25
|
+
- **Dashboard generation**: Multi-chart interactive dashboards
|
|
26
|
+
- **Insight extraction**: Statistical findings from data
|
|
27
|
+
- **Report generation**: Narrative reports with charts
|
|
28
|
+
|
|
29
|
+
### Supported Databases
|
|
30
|
+
- PostgreSQL, MySQL, SQLite
|
|
31
|
+
- BigQuery, Snowflake, Redshift
|
|
32
|
+
- CSV/Excel files (auto-loaded to SQLite)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from xpert import XpertBI
|
|
39
|
+
|
|
40
|
+
bi = XpertBI(
|
|
41
|
+
database_url="postgresql://user:pass@localhost/research_db",
|
|
42
|
+
llm_provider="anthropic",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Natural language query
|
|
46
|
+
result = bi.ask(
|
|
47
|
+
"What is the publication trend by department over "
|
|
48
|
+
"the last 5 years?"
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
print(result.sql) # Generated SQL query
|
|
52
|
+
print(result.data) # Query results as DataFrame
|
|
53
|
+
result.chart.save("pub_trend.png") # Auto-generated chart
|
|
54
|
+
print(result.insight) # "Publications increased 23% overall..."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Dashboard Generation
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# Generate multi-chart dashboard
|
|
61
|
+
dashboard = bi.create_dashboard(
|
|
62
|
+
title="Research Output Analysis",
|
|
63
|
+
questions=[
|
|
64
|
+
"Publications per year by department",
|
|
65
|
+
"Top 10 authors by citation count",
|
|
66
|
+
"Funding amount vs publication output correlation",
|
|
67
|
+
"Journal distribution of publications",
|
|
68
|
+
],
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
dashboard.save("research_dashboard.html")
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Use Cases
|
|
75
|
+
|
|
76
|
+
1. **Research analytics**: Analyze publication and citation data
|
|
77
|
+
2. **Institutional reporting**: Department-level research metrics
|
|
78
|
+
3. **Grant analysis**: Funding patterns and outcomes
|
|
79
|
+
4. **Data exploration**: Quick BI on research databases
|
|
80
|
+
5. **Teaching**: Demonstrate data analysis concepts
|
|
81
|
+
|
|
82
|
+
## References
|
|
83
|
+
|
|
84
|
+
- [Xpert GitHub](https://github.com/xpert-ai/xpert)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cactus-cheminformatics-guide
|
|
3
|
+
description: "PNNL cheminformatics LLM agent for molecular analysis"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🌵"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["CACTUS", "cheminformatics", "PNNL", "molecular analysis", "LLM chemistry", "chemical agent"]
|
|
10
|
+
source: "https://github.com/pnnl/cactus"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# CACTUS Cheminformatics Agent Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
CACTUS is a cheminformatics LLM agent developed at Pacific Northwest National Laboratory (PNNL) that provides AI-assisted molecular analysis, property prediction, and chemical reasoning. It wraps RDKit, molecular databases, and ML models behind a conversational interface, enabling researchers to query molecular properties, perform similarity searches, and run cheminformatics workflows using natural language.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from cactus import ChemAgent
|
|
23
|
+
|
|
24
|
+
agent = ChemAgent(llm_provider="anthropic")
|
|
25
|
+
|
|
26
|
+
# Natural language chemistry queries
|
|
27
|
+
result = agent.ask(
|
|
28
|
+
"What is the molecular weight and LogP of aspirin? "
|
|
29
|
+
"Is it drug-like by Lipinski's rules?"
|
|
30
|
+
)
|
|
31
|
+
print(result.answer)
|
|
32
|
+
# Aspirin (CC(=O)Oc1ccccc1C(=O)O):
|
|
33
|
+
# MW: 180.16, LogP: 1.24
|
|
34
|
+
# Lipinski: PASS (MW<500, LogP<5, HBD=1≤5, HBA=4≤10)
|
|
35
|
+
|
|
36
|
+
# Molecular property calculation
|
|
37
|
+
props = agent.calculate_properties(
|
|
38
|
+
smiles="CC(=O)Oc1ccccc1C(=O)O",
|
|
39
|
+
properties=["mw", "logp", "tpsa", "hbd", "hba", "rotatable"],
|
|
40
|
+
)
|
|
41
|
+
print(props)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Similarity Search
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
# Find similar molecules
|
|
48
|
+
similar = agent.similarity_search(
|
|
49
|
+
query_smiles="CC(=O)Oc1ccccc1C(=O)O", # Aspirin
|
|
50
|
+
database="chembl",
|
|
51
|
+
threshold=0.7, # Tanimoto similarity
|
|
52
|
+
max_results=10,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
for mol in similar:
|
|
56
|
+
print(f"{mol.name}: {mol.smiles} "
|
|
57
|
+
f"(similarity: {mol.tanimoto:.3f})")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Substructure Analysis
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
# Substructure search
|
|
64
|
+
matches = agent.substructure_search(
|
|
65
|
+
pattern="c1ccccc1C(=O)O", # Benzoic acid motif
|
|
66
|
+
database="drugbank",
|
|
67
|
+
max_results=20,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
# Functional group identification
|
|
71
|
+
groups = agent.identify_functional_groups(
|
|
72
|
+
smiles="CC(=O)Oc1ccccc1C(=O)O"
|
|
73
|
+
)
|
|
74
|
+
# ["ester", "carboxylic_acid", "aromatic_ring"]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Use Cases
|
|
78
|
+
|
|
79
|
+
1. **Molecular analysis**: Property calculation via natural language
|
|
80
|
+
2. **Drug screening**: Lipinski/Veber rule checking
|
|
81
|
+
3. **Similarity search**: Find analogs in chemical databases
|
|
82
|
+
4. **Structure analysis**: Substructure and functional group ID
|
|
83
|
+
5. **Chemical education**: Interactive chemistry exploration
|
|
84
|
+
|
|
85
|
+
## References
|
|
86
|
+
|
|
87
|
+
- [CACTUS GitHub](https://github.com/pnnl/cactus)
|
|
88
|
+
- [RDKit](https://www.rdkit.org/)
|
|
89
|
+
- [PNNL](https://www.pnnl.gov/)
|