@wentorai/research-plugins 1.0.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.
Files changed (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/curated/analysis/README.md +64 -0
  4. package/curated/domains/README.md +104 -0
  5. package/curated/literature/README.md +53 -0
  6. package/curated/research/README.md +62 -0
  7. package/curated/tools/README.md +87 -0
  8. package/curated/writing/README.md +61 -0
  9. package/index.ts +39 -0
  10. package/mcp-configs/academic-db/ChatSpatial.json +17 -0
  11. package/mcp-configs/academic-db/academia-mcp.json +17 -0
  12. package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
  13. package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
  14. package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
  15. package/mcp-configs/academic-db/all-in-mcp.json +17 -0
  16. package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
  17. package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
  18. package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
  19. package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
  20. package/mcp-configs/academic-db/biomcp.json +17 -0
  21. package/mcp-configs/academic-db/biothings-mcp.json +17 -0
  22. package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
  23. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
  24. package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
  25. package/mcp-configs/academic-db/dicom-mcp.json +17 -0
  26. package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
  27. package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
  28. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
  29. package/mcp-configs/academic-db/fhir-mcp.json +19 -0
  30. package/mcp-configs/academic-db/gget-mcp.json +17 -0
  31. package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
  32. package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
  33. package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
  34. package/mcp-configs/academic-db/lex.json +17 -0
  35. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
  36. package/mcp-configs/ai-platform/ai-counsel.json +17 -0
  37. package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
  38. package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
  39. package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
  40. package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
  41. package/mcp-configs/browser/decipher-research-agent.json +17 -0
  42. package/mcp-configs/browser/deep-research.json +17 -0
  43. package/mcp-configs/browser/everything-claude-code.json +17 -0
  44. package/mcp-configs/browser/gpt-researcher.json +17 -0
  45. package/mcp-configs/browser/heurist-agent-framework.json +17 -0
  46. package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
  47. package/mcp-configs/data-platform/context-keeper.json +17 -0
  48. package/mcp-configs/data-platform/context7.json +19 -0
  49. package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
  50. package/mcp-configs/data-platform/email-mcp.json +17 -0
  51. package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
  52. package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
  53. package/mcp-configs/note-knowledge/agent-memory.json +17 -0
  54. package/mcp-configs/note-knowledge/aimemo.json +17 -0
  55. package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
  56. package/mcp-configs/note-knowledge/cognee.json +17 -0
  57. package/mcp-configs/note-knowledge/context-awesome.json +17 -0
  58. package/mcp-configs/note-knowledge/context-mcp.json +17 -0
  59. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
  60. package/mcp-configs/note-knowledge/cortex.json +17 -0
  61. package/mcp-configs/note-knowledge/devrag.json +17 -0
  62. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
  63. package/mcp-configs/note-knowledge/engram.json +17 -0
  64. package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
  65. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
  66. package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
  67. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
  68. package/mcp-configs/reference-mgr/chiken.json +17 -0
  69. package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
  70. package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
  71. package/mcp-configs/registry.json +447 -0
  72. package/openclaw.plugin.json +21 -0
  73. package/package.json +61 -0
  74. package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
  75. package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
  76. package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
  77. package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
  78. package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
  79. package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
  80. package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
  81. package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
  82. package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
  83. package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
  84. package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
  85. package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
  86. package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
  87. package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
  88. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
  89. package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
  90. package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
  91. package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
  92. package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
  93. package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
  94. package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
  95. package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
  96. package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
  97. package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
  98. package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
  99. package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
  100. package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
  101. package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
  102. package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
  103. package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
  104. package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
  105. package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
  106. package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
  107. package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
  108. package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
  109. package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
  110. package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
  111. package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
  112. package/skills/domains/cs/dblp-api/SKILL.md +129 -0
  113. package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
  114. package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
  115. package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
  116. package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
  117. package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
  118. package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
  119. package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
  120. package/skills/domains/economics/fred-api/SKILL.md +189 -0
  121. package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
  122. package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
  123. package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
  124. package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
  125. package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
  126. package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
  127. package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
  128. package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
  129. package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
  130. package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
  131. package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
  132. package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
  133. package/skills/domains/math/oeis-api/SKILL.md +158 -0
  134. package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
  135. package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
  136. package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
  137. package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
  138. package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
  139. package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
  140. package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
  141. package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
  142. package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
  143. package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
  144. package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
  145. package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
  146. package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
  147. package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
  148. package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
  149. package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
  150. package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
  151. package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
  152. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
  153. package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
  154. package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
  155. package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
  156. package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
  157. package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
  158. package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
  159. package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
  160. package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
  161. package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
  162. package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
  163. package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
  164. package/skills/literature/search/arxiv-api/SKILL.md +95 -0
  165. package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
  166. package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
  167. package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
  168. package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
  169. package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
  170. package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
  171. package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
  172. package/skills/literature/search/openalex-api/SKILL.md +134 -0
  173. package/skills/literature/search/pubmed-api/SKILL.md +130 -0
  174. package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
  175. package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
  176. package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
  177. package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
  178. package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
  179. package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
  180. package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
  181. package/skills/research/deep-research/research-cog/SKILL.md +153 -0
  182. package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
  183. package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
  184. package/skills/research/funding/figshare-api/SKILL.md +163 -0
  185. package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
  186. package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
  187. package/skills/research/funding/open-science-guide/SKILL.md +255 -0
  188. package/skills/research/funding/zenodo-api/SKILL.md +174 -0
  189. package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
  190. package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
  191. package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
  192. package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
  193. package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
  194. package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
  195. package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
  196. package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
  197. package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
  198. package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
  199. package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
  200. package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
  201. package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
  202. package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
  203. package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
  204. package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
  205. package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
  206. package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
  207. package/skills/tools/document/anystyle-api/SKILL.md +199 -0
  208. package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
  209. package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
  210. package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
  211. package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
  212. package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
  213. package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
  214. package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
  215. package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
  216. package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
  217. package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
  218. package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
  219. package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
  220. package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
  221. package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
  222. package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
  223. package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
  224. package/skills/writing/citation/zotero-api/SKILL.md +188 -0
  225. package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
  226. package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
  227. package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
  228. package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
  229. package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
  230. package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
  231. package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
  232. package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
  233. package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
  234. package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
  235. package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
  236. package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
  237. package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
  238. package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
  239. package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
  240. package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
  241. package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
  242. package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
  243. package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
  244. package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
  245. package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
  246. package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
  247. package/src/tools/arxiv.ts +131 -0
  248. package/src/tools/crossref.ts +112 -0
  249. package/src/tools/openalex.ts +174 -0
  250. package/src/tools/pubmed.ts +166 -0
  251. package/src/tools/semantic-scholar.ts +108 -0
  252. package/src/tools/unpaywall.ts +58 -0
@@ -0,0 +1,236 @@
1
+ ---
2
+ name: experimental-design-guide
3
+ description: "Design rigorous experiments using DOE, factorial designs, and response surfaces"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "test_tube"
7
+ category: "research"
8
+ subcategory: "methodology"
9
+ keywords: ["design of experiments", "DOE", "factorial design", "response surface methodology", "experimental design"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Experimental Design Guide
14
+
15
+ A skill for designing rigorous experiments using formal Design of Experiments (DOE) methodology. Covers factorial designs, fractional factorials, response surface methods, and optimal design strategies for scientific research.
16
+
17
+ ## Fundamental Principles
18
+
19
+ ### Fisher's Three Principles
20
+
21
+ 1. **Randomization**: Assign experimental units to treatments randomly to eliminate systematic bias
22
+ 2. **Replication**: Include enough replicates to estimate experimental error and ensure statistical power
23
+ 3. **Blocking**: Group similar experimental units to reduce nuisance variability
24
+
25
+ ### Sample Size and Power Analysis
26
+
27
+ ```python
28
+ from scipy import stats
29
+ import numpy as np
30
+
31
+ def power_analysis_ttest(effect_size: float, alpha: float = 0.05,
32
+ power: float = 0.80, ratio: float = 1.0) -> dict:
33
+ """
34
+ Calculate required sample size for a two-sample t-test.
35
+
36
+ Args:
37
+ effect_size: Cohen's d (expected effect size)
38
+ alpha: Significance level
39
+ power: Desired statistical power
40
+ ratio: Ratio of n2/n1 (for unequal groups)
41
+ """
42
+ from statsmodels.stats.power import TTestIndPower
43
+ analysis = TTestIndPower()
44
+ n1 = analysis.solve_power(
45
+ effect_size=effect_size,
46
+ alpha=alpha,
47
+ power=power,
48
+ ratio=ratio,
49
+ alternative='two-sided'
50
+ )
51
+
52
+ return {
53
+ 'n_per_group': int(np.ceil(n1)),
54
+ 'total_n': int(np.ceil(n1) + np.ceil(n1 * ratio)),
55
+ 'effect_size_d': effect_size,
56
+ 'alpha': alpha,
57
+ 'power': power,
58
+ 'interpretation': (
59
+ f"Need {int(np.ceil(n1))} per group "
60
+ f"(total N = {int(np.ceil(n1) + np.ceil(n1 * ratio))}) "
61
+ f"to detect d = {effect_size} with {power*100:.0f}% power."
62
+ )
63
+ }
64
+
65
+ # Example: medium effect size
66
+ result = power_analysis_ttest(effect_size=0.5, alpha=0.05, power=0.80)
67
+ print(result['interpretation'])
68
+ ```
69
+
70
+ ## Full Factorial Designs
71
+
72
+ ### 2^k Factorial Design
73
+
74
+ ```python
75
+ import itertools
76
+ import pandas as pd
77
+
78
+ def create_factorial_design(factors: dict, replicates: int = 3) -> pd.DataFrame:
79
+ """
80
+ Create a full factorial experimental design.
81
+
82
+ Args:
83
+ factors: Dict mapping factor names to lists of levels
84
+ e.g., {'Temperature': [60, 80], 'Pressure': [1, 2], 'Catalyst': ['A', 'B']}
85
+ replicates: Number of replicates per combination
86
+ """
87
+ factor_names = list(factors.keys())
88
+ factor_levels = list(factors.values())
89
+
90
+ # Generate all combinations
91
+ combinations = list(itertools.product(*factor_levels))
92
+
93
+ # Create design matrix with replicates
94
+ rows = []
95
+ run_order = 0
96
+ for rep in range(replicates):
97
+ for combo in combinations:
98
+ run_order += 1
99
+ row = {'Run': run_order, 'Replicate': rep + 1}
100
+ for name, value in zip(factor_names, combo):
101
+ row[name] = value
102
+ row['Response'] = None # To be filled with experimental data
103
+ rows.append(row)
104
+
105
+ design = pd.DataFrame(rows)
106
+
107
+ # Randomize run order
108
+ design = design.sample(frac=1, random_state=42).reset_index(drop=True)
109
+ design['RandomizedRun'] = range(1, len(design) + 1)
110
+
111
+ print(f"Design summary:")
112
+ print(f" Factors: {len(factors)}")
113
+ print(f" Levels per factor: {[len(v) for v in factors.values()]}")
114
+ print(f" Total treatments: {len(combinations)}")
115
+ print(f" Replicates: {replicates}")
116
+ print(f" Total runs: {len(design)}")
117
+
118
+ return design
119
+
120
+ # Example: 2^3 factorial
121
+ design = create_factorial_design({
122
+ 'Temperature': [60, 80],
123
+ 'Pressure': [1, 2],
124
+ 'Catalyst': ['A', 'B']
125
+ }, replicates=3)
126
+ ```
127
+
128
+ ### Analyzing Factorial Experiments
129
+
130
+ ```python
131
+ import statsmodels.api as sm
132
+ from statsmodels.formula.api import ols
133
+
134
+ def analyze_factorial(df: pd.DataFrame, response: str,
135
+ factors: list[str]) -> dict:
136
+ """
137
+ Analyze a factorial experiment using ANOVA.
138
+ """
139
+ # Build formula with all main effects and interactions
140
+ main_effects = ' + '.join([f'C({f})' for f in factors])
141
+ interactions = ' + '.join([f'C({f1}):C({f2})'
142
+ for i, f1 in enumerate(factors)
143
+ for f2 in factors[i+1:]])
144
+ formula = f'{response} ~ {main_effects} + {interactions}'
145
+
146
+ model = ols(formula, data=df).fit()
147
+ anova_table = sm.stats.anova_lm(model, typ=2)
148
+
149
+ # Effect sizes (eta-squared)
150
+ ss_total = anova_table['sum_sq'].sum()
151
+ anova_table['eta_sq'] = anova_table['sum_sq'] / ss_total
152
+
153
+ return {
154
+ 'anova_table': anova_table,
155
+ 'r_squared': model.rsquared,
156
+ 'significant_effects': anova_table[anova_table['PR(>F)'] < 0.05].index.tolist()
157
+ }
158
+ ```
159
+
160
+ ## Fractional Factorial Designs
161
+
162
+ When a full factorial has too many runs:
163
+
164
+ ```python
165
+ def fractional_factorial_2k(k: int, resolution: int = 3) -> pd.DataFrame:
166
+ """
167
+ Generate a 2^(k-p) fractional factorial design.
168
+
169
+ Args:
170
+ k: Number of factors
171
+ resolution: Design resolution (III, IV, or V)
172
+ """
173
+ from pyDOE2 import fracfact
174
+
175
+ # Resolution III: 2^(k-p) where p minimizes runs
176
+ # Common designs:
177
+ # 2^(3-1) = 4 runs (Resolution III)
178
+ # 2^(4-1) = 8 runs (Resolution IV)
179
+ # 2^(5-2) = 8 runs (Resolution III)
180
+ # 2^(7-4) = 8 runs (Resolution III, Plackett-Burman)
181
+
182
+ design = fracfact(f'a b c {"d" if k >= 4 else ""} {"e" if k >= 5 else ""}')
183
+ df = pd.DataFrame(design, columns=[f'Factor_{i+1}' for i in range(design.shape[1])])
184
+
185
+ print(f"Fractional factorial: {len(df)} runs for {k} factors")
186
+ return df
187
+ ```
188
+
189
+ ## Response Surface Methodology (RSM)
190
+
191
+ ### Central Composite Design
192
+
193
+ ```python
194
+ def central_composite_design(factor_ranges: dict) -> pd.DataFrame:
195
+ """
196
+ Create a Central Composite Design for response surface optimization.
197
+ """
198
+ from pyDOE2 import ccdesign
199
+
200
+ k = len(factor_ranges)
201
+ design_coded = ccdesign(k, center=(4,), alpha='orthogonal', face='circumscribed')
202
+
203
+ factor_names = list(factor_ranges.keys())
204
+ df = pd.DataFrame(design_coded, columns=factor_names)
205
+
206
+ # Convert from coded (-1, +1) to natural units
207
+ for name, (low, high) in factor_ranges.items():
208
+ center = (high + low) / 2
209
+ half_range = (high - low) / 2
210
+ df[name] = center + df[name] * half_range
211
+
212
+ return df
213
+
214
+ # Example: optimize a chemical reaction
215
+ design = central_composite_design({
216
+ 'Temperature_C': [50, 90],
217
+ 'pH': [5, 9],
218
+ 'Time_min': [10, 60]
219
+ })
220
+ ```
221
+
222
+ ## Randomization and Blinding
223
+
224
+ - **Single-blind**: Participants do not know their treatment assignment
225
+ - **Double-blind**: Neither participants nor experimenters know assignments
226
+ - **Allocation concealment**: Assignment sequence is hidden until the moment of assignment
227
+
228
+ For computer-generated randomization, always record and report the random seed used. Use block randomization to ensure balanced groups when enrollment is sequential.
229
+
230
+ ## Reporting Checklist
231
+
232
+ Follow CONSORT (clinical trials), ARRIVE (animal studies), or STROBE (observational) guidelines:
233
+ - State the primary and secondary outcomes before analysis
234
+ - Report all planned analyses, including non-significant results
235
+ - Describe randomization method and any deviations from protocol
236
+ - Include sample size justification with power analysis parameters
@@ -0,0 +1,182 @@
1
+ ---
2
+ name: grad-school-guide
3
+ description: "Practical advice for thriving in PhD programs and academic research"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🎓"
7
+ category: "research"
8
+ subcategory: "methodology"
9
+ keywords: ["research question formulation", "hypothesis formulation", "theoretical framework", "conceptual model"]
10
+ source: "https://github.com/poloclub/awesome-grad-school"
11
+ ---
12
+
13
+ # Graduate School Research Guide
14
+
15
+ ## Overview
16
+
17
+ Graduate school -- particularly a PhD program -- is a multi-year commitment that demands not only technical skills but also effective research methodology, advisor management, paper writing strategies, and career planning. The difference between thriving and merely surviving often comes down to having the right mental models and practical frameworks for the research process.
18
+
19
+ This guide distills wisdom from the awesome-grad-school repository (450+ stars, maintained by the Polo Club of Data Science at Georgia Tech) and supplements it with actionable frameworks for formulating research questions, developing hypotheses, structuring a theoretical framework, and managing the end-to-end research lifecycle. The advice here applies broadly across STEM and social-science disciplines.
20
+
21
+ Whether you are an incoming PhD student, a mid-program researcher seeking to improve your productivity, or an advanced candidate preparing for the job market, this skill provides concrete tools for each stage of the journey.
22
+
23
+ ## Formulating Research Questions
24
+
25
+ A strong research question is the foundation of any good paper. It should be specific, answerable, and significant.
26
+
27
+ ### The FINER Criteria
28
+
29
+ | Criterion | Description | Example Check |
30
+ |-----------|-------------|---------------|
31
+ | **F**easible | Can be answered with available resources | Do you have the data, compute, and time? |
32
+ | **I**nteresting | Engages the research community | Would peers read this at a top venue? |
33
+ | **N**ovel | Not already answered | Has Semantic Scholar search been done? |
34
+ | **E**thical | Follows research ethics standards | Does it require IRB approval? |
35
+ | **R**elevant | Advances the field meaningfully | Does it connect to open problems? |
36
+
37
+ ### From Topic to Question: A Step-by-Step Process
38
+
39
+ 1. **Survey the landscape.** Read 20-30 recent papers in your area.
40
+ 2. **Identify gaps.** Look for "future work" sections and limitations.
41
+ 3. **Narrow progressively.** Topic -> Sub-topic -> Specific question.
42
+ 4. **Phrase as a question.** "Does X improve Y compared to Z in context W?"
43
+ 5. **Test with the "so what?" check.** If the answer is yes or no, does it matter?
44
+
45
+ Example progression:
46
+
47
+ ```
48
+ Topic: Natural language processing
49
+ Sub-topic: Low-resource language translation
50
+ Gap: Few-shot methods underperform on morphologically rich languages
51
+ Question: Can morphological decomposition improve few-shot translation
52
+ quality for agglutinative languages?
53
+ ```
54
+
55
+ ## Developing Hypotheses and Theoretical Frameworks
56
+
57
+ ### From Question to Hypothesis
58
+
59
+ A hypothesis is a testable, falsifiable prediction derived from your research question:
60
+
61
+ - **Directional:** "Method A will achieve higher BLEU scores than Method B on agglutinative language pairs."
62
+ - **Non-directional:** "There will be a significant difference in BLEU scores between Method A and Method B."
63
+ - **Null (H0):** "There is no significant difference in BLEU scores between Method A and Method B."
64
+
65
+ ### Building a Conceptual Model
66
+
67
+ A conceptual model maps the relationships between your key variables:
68
+
69
+ ```
70
+ Independent Variable Moderator Dependent Variable
71
+ [Morphological [Language [Translation
72
+ Decomposition] ------> Typology] -----> Quality (BLEU)]
73
+ | ^
74
+ | Mediator |
75
+ +-------> [Vocabulary |
76
+ Coverage] --------------------+
77
+ ```
78
+
79
+ Document your conceptual model with:
80
+ 1. **Constructs:** The abstract concepts (e.g., "translation quality").
81
+ 2. **Operationalizations:** How you measure each construct (e.g., BLEU, COMET scores).
82
+ 3. **Relationships:** Hypothesized causal or correlational links.
83
+ 4. **Boundary conditions:** Where the model applies and where it does not.
84
+
85
+ ## Managing Your Advisor and Research Workflow
86
+
87
+ ### Communication Frameworks
88
+
89
+ **The Weekly Update Email:**
90
+
91
+ ```
92
+ Subject: Weekly Update - [Your Name] - Week of [Date]
93
+
94
+ 1. ACCOMPLISHED THIS WEEK
95
+ - Completed experiment X with results Y
96
+ - Drafted Section 3 of the paper
97
+
98
+ 2. BLOCKERS
99
+ - Need access to GPU cluster for large-scale runs
100
+ - Waiting on co-author feedback on Section 2
101
+
102
+ 3. PLAN FOR NEXT WEEK
103
+ - Run ablation study on components A, B, C
104
+ - Begin writing Section 4
105
+
106
+ 4. DISCUSSION ITEMS FOR MEETING
107
+ - Should we include dataset Z in our evaluation?
108
+ - Timeline for submission to [Conference]
109
+ ```
110
+
111
+ ### Research Productivity System
112
+
113
+ | Practice | Cadence | Tool |
114
+ |----------|---------|------|
115
+ | Daily progress log | End of each day | Plain text file or Notion |
116
+ | Literature reading | 2-3 papers/week | Zotero + annotations |
117
+ | Experiment tracking | Per run | Weights & Biases or MLflow |
118
+ | Writing | 30 min daily minimum | LaTeX or Markdown |
119
+ | Advisor meeting prep | Weekly | Structured update email |
120
+ | Research talks | Monthly (lab meeting) | 15-min presentation |
121
+
122
+ ## Paper Writing Strategy
123
+
124
+ ### The Reverse-Outline Method
125
+
126
+ 1. Write bullet points for each section (1-2 sentences per paragraph).
127
+ 2. Order bullets by logical flow.
128
+ 3. Expand each bullet into a full paragraph.
129
+ 4. Revise for transitions and coherence.
130
+
131
+ ### Section-by-Section Tips
132
+
133
+ - **Introduction:** Open with a concrete problem, not "In recent years..."
134
+ - **Related Work:** Organize by theme, not chronologically. Compare approaches, do not just list them.
135
+ - **Methods:** Write so a competent researcher can reproduce your work.
136
+ - **Results:** Lead with the most important finding. Use tables for exact numbers, figures for trends.
137
+ - **Discussion:** Address limitations honestly. Reviewers respect self-awareness.
138
+
139
+ ### Handling Rejection
140
+
141
+ Paper rejection is a normal part of academic life. The awesome-grad-school community recommends:
142
+
143
+ 1. **Allow 24-48 hours to process emotions.** Do not respond immediately.
144
+ 2. **Categorize each review comment** as: (a) valid and fixable, (b) valid but requires new experiments, (c) misunderstanding to clarify, or (d) subjective disagreement.
145
+ 3. **Create an action plan** for addressing category (a) and (b) items.
146
+ 4. **Resubmit to the next venue** with improvements, not just the same paper.
147
+
148
+ ## Career Planning
149
+
150
+ ### Timeline for a 5-Year PhD
151
+
152
+ | Year | Focus | Milestones |
153
+ |------|-------|-----------|
154
+ | 1 | Coursework + exploration | Pass qualifying exam, identify area |
155
+ | 2 | First project + first paper | Submit to workshop or conference |
156
+ | 3 | Core research + publications | 1-2 papers at top venues |
157
+ | 4 | Thesis writing + job market prep | Draft thesis proposal, internship |
158
+ | 5 | Defense + job search | Submit thesis, interview |
159
+
160
+ ### Building Visibility
161
+
162
+ - Maintain a personal academic website with publications and blog posts.
163
+ - Present at conferences and workshops.
164
+ - Share preprints on arXiv before publication.
165
+ - Engage constructively on academic social media.
166
+
167
+ ## Best Practices
168
+
169
+ - **Start writing early.** The paper is not separate from the research -- writing clarifies thinking.
170
+ - **Build a library of reusable code.** Experiment templates, plotting scripts, and data loaders save hours on each project.
171
+ - **Invest in relationships.** Collaborators, mentors, and peers are your most valuable resource.
172
+ - **Take care of your health.** PhD burnout is real. Set boundaries and maintain activities outside research.
173
+ - **Read broadly.** Some of the best ideas come from adjacent fields.
174
+ - **Track your accomplishments.** Maintain a running CV and a "brag document" for annual reviews and job applications.
175
+
176
+ ## References
177
+
178
+ - [awesome-grad-school](https://github.com/poloclub/awesome-grad-school) -- Curated grad school advice (450+ stars)
179
+ - [A Survival Guide to a PhD](http://karpathy.github.io/2016/09/07/phd/) -- Andrej Karpathy
180
+ - [Modest Advice for New Graduate Students](https://stearnslab.yale.edu/modest-advice) -- Stephen Stearns, Yale
181
+ - [De-Mystifying Good Research](https://bigaidream.gitbooks.io/tech-blog/content/2014/de-mystifying-good-research.html) -- Fei-Fei Li
182
+ - [How to Write a Great Research Paper](https://www.microsoft.com/en-us/research/academic-program/write-great-research-paper/) -- Simon Peyton Jones
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: grounded-theory-guide
3
+ description: "Apply grounded theory methodology to develop theory from data"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "seedling"
7
+ category: "research"
8
+ subcategory: "methodology"
9
+ keywords: ["grounded theory", "qualitative methodology", "theoretical sampling", "constant comparison", "coding"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Grounded Theory Guide
14
+
15
+ A skill for applying grounded theory methodology (GTM) to generate theory grounded in empirical data. Covers the three major schools (Glaser, Strauss/Corbin, Charmaz), coding procedures, theoretical sampling, memo writing, and criteria for evaluating grounded theories.
16
+
17
+ ## Three Schools of Grounded Theory
18
+
19
+ ### Comparing Approaches
20
+
21
+ | Aspect | Classic (Glaser) | Straussian (Strauss & Corbin) | Constructivist (Charmaz) |
22
+ |--------|-----------------|------------------------------|-------------------------|
23
+ | Ontology | Objective reality | Pragmatist | Relativist/constructivist |
24
+ | Literature review | Delay until theory emerges | Early but non-constraining | Early, reflexive engagement |
25
+ | Coding paradigm | Open, selective, theoretical | Open, axial, selective | Initial, focused, theoretical |
26
+ | Verification | Emergent fit | Systematic validation | Co-construction with participants |
27
+ | Core output | Substantive theory | Process model | Interpretive theory |
28
+ | Key text | Glaser (1978) | Strauss & Corbin (1998) | Charmaz (2014) |
29
+
30
+ ### Choosing an Approach
31
+
32
+ ```
33
+ Use Classic GTM when:
34
+ - You want the theory to emerge with minimal preconception
35
+ - You are studying a process in a substantive area
36
+
37
+ Use Straussian GTM when:
38
+ - You need a structured, systematic coding procedure
39
+ - Your discipline values replicable analytical steps
40
+
41
+ Use Constructivist GTM when:
42
+ - You acknowledge the researcher's role in co-creating meaning
43
+ - You study experiences, identities, or social processes
44
+ - You work in health, education, or social science
45
+ ```
46
+
47
+ ## The Coding Process
48
+
49
+ ### Three-Stage Coding
50
+
51
+ ```python
52
+ def grounded_theory_coding_stages() -> dict:
53
+ """
54
+ Describe the three stages of grounded theory coding.
55
+ """
56
+ return {
57
+ "stage_1_initial_coding": {
58
+ "also_called": "Open coding",
59
+ "description": (
60
+ "Examine data line by line or incident by incident. "
61
+ "Generate codes that stay close to the data. "
62
+ "Use gerunds (action words ending in -ing) to capture processes."
63
+ ),
64
+ "example": {
65
+ "data": "I started looking for help online because the doctor "
66
+ "did not explain anything to me.",
67
+ "codes": [
68
+ "Seeking information online",
69
+ "Experiencing communication gap with provider",
70
+ "Taking initiative in own care"
71
+ ]
72
+ },
73
+ "tips": [
74
+ "Code quickly -- do not overthink individual codes",
75
+ "Stay open; do not force data into preexisting categories",
76
+ "Code actions and processes, not topics",
77
+ "Write memos about ideas that arise during coding"
78
+ ]
79
+ },
80
+ "stage_2_focused_coding": {
81
+ "also_called": "Axial coding (Strauss) or Focused coding (Charmaz)",
82
+ "description": (
83
+ "Select the most frequent and significant initial codes. "
84
+ "Use them to sort and synthesize larger amounts of data. "
85
+ "Identify relationships between categories."
86
+ ),
87
+ "tasks": [
88
+ "Elevate initial codes to categories",
89
+ "Identify properties and dimensions of each category",
90
+ "Compare categories across cases",
91
+ "Begin developing a conceptual framework"
92
+ ]
93
+ },
94
+ "stage_3_theoretical_coding": {
95
+ "also_called": "Selective coding",
96
+ "description": (
97
+ "Identify the core category that integrates all other "
98
+ "categories into a coherent theoretical framework. "
99
+ "Specify relationships between categories."
100
+ ),
101
+ "output": "A substantive theory explaining the phenomenon"
102
+ }
103
+ }
104
+ ```
105
+
106
+ ## Theoretical Sampling
107
+
108
+ ### Sampling Driven by Emerging Theory
109
+
110
+ ```
111
+ Traditional sampling: Decide sample before data collection
112
+ Theoretical sampling: Let the emerging theory guide who/what to sample next
113
+
114
+ Process:
115
+ 1. Collect initial data (purposive sampling)
116
+ 2. Analyze data, identify emerging categories
117
+ 3. Ask: "Where should I look next to develop these categories?"
118
+ 4. Sample deliberately to fill gaps in the emerging theory
119
+ 5. Continue until theoretical saturation
120
+
121
+ Example:
122
+ Initial interviews: Patients with chronic illness
123
+ Emerging category: "Navigating insurance barriers"
124
+ Next sample: Interview insurance navigators and social workers
125
+ Emerging category: "Stigma in seeking help"
126
+ Next sample: Interview patients who avoided seeking help
127
+ ```
128
+
129
+ ## Memo Writing
130
+
131
+ ### The Engine of Grounded Theory
132
+
133
+ Memos are the researcher's running commentary on codes, categories, and theoretical ideas. They are the primary mechanism for developing theory.
134
+
135
+ ```
136
+ Memo types:
137
+ - Code memos: Define and elaborate a code or category
138
+ - Theoretical memos: Explore relationships between categories
139
+ - Operational memos: Record methodological decisions
140
+ - Reflexive memos: Examine researcher influence on the analysis
141
+
142
+ Memo example:
143
+ MEMO: "Becoming an expert patient" (2026-03-05)
144
+
145
+ Several participants describe a transition from passive
146
+ recipient of care to active manager of their condition.
147
+ This process seems to involve three phases: (1) initial
148
+ confusion and dependence, (2) information seeking and
149
+ experimentation, (3) confident self-management. The trigger
150
+ appears to be a critical incident (a misdiagnosis, a bad
151
+ interaction with a provider) that motivates the person to
152
+ take control. Compare with Corbin & Strauss's trajectory
153
+ framework. Need to sample someone early in the trajectory
154
+ to test whether the trigger is consistent.
155
+ ```
156
+
157
+ ## Evaluating Grounded Theory
158
+
159
+ ### Quality Criteria
160
+
161
+ | Criterion | Description | How to Demonstrate |
162
+ |-----------|------------|-------------------|
163
+ | Fit | Theory fits the data it was derived from | Show clear evidence trail from data to codes to categories |
164
+ | Relevance | Theory addresses a real concern of participants | Member checking, resonance with practitioners |
165
+ | Workability | Theory explains the process and enables prediction | Apply the theory to new cases |
166
+ | Modifiability | Theory can be updated with new data | Show how the theory evolved during the study |
167
+ | Credibility | Analysis is thorough and systematic | Audit trail, reflexive memos, theoretical saturation |
168
+
169
+ ## Reporting a Grounded Theory Study
170
+
171
+ Include: a clear description of the coding process and how categories were derived, a diagram or model of the theory, representative quotes for each major category, an explanation of theoretical sampling decisions, and a discussion of how the theory relates to existing literature. Use the SRQR (Standards for Reporting Qualitative Research) checklist to ensure completeness.