@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,178 @@
1
+ ---
2
+ name: ai-writing-humanizer
3
+ description: "Remove AI-generated patterns to produce natural, authentic academic writing"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "pencil2"
7
+ category: "writing"
8
+ subcategory: "polish"
9
+ keywords: ["humanize", "AI pattern removal", "natural writing", "AI-assisted writing", "writing style"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # AI Writing Humanizer
14
+
15
+ A skill for identifying and removing characteristic patterns of AI-generated text to produce natural, authentic academic writing. Designed for researchers who use AI tools for drafting and want to ensure the final output reads as genuine scholarly prose.
16
+
17
+ ## Common AI Writing Patterns
18
+
19
+ ### Lexical Patterns to Identify and Replace
20
+
21
+ AI-generated text frequently overuses certain words and phrases:
22
+
23
+ ```python
24
+ def identify_ai_patterns(text: str) -> dict:
25
+ """
26
+ Scan text for common AI-generated writing patterns.
27
+
28
+ Returns a report of detected patterns with suggested replacements.
29
+ """
30
+ overused_phrases = {
31
+ # Hedging/filler phrases AI overuses
32
+ 'it is important to note that': 'Note that',
33
+ 'it is worth mentioning that': '[delete or rephrase]',
34
+ 'it should be noted that': '[delete or rephrase]',
35
+ 'in the realm of': 'in',
36
+ 'in the context of': 'in / for / regarding',
37
+ 'a testament to': '[rephrase with specific evidence]',
38
+ 'the landscape of': '[delete -- be specific]',
39
+ 'a nuanced understanding': '[delete or specify what nuance]',
40
+ 'shed light on': 'clarified / revealed / explained',
41
+ 'delve into': 'examined / analyzed / investigated',
42
+ 'furthermore': '[vary: also, additionally, moreover, or restructure]',
43
+ 'moreover': '[vary: in addition, also, or restructure]',
44
+ 'utilizing': 'using',
45
+ 'leverage': 'use / apply / employ',
46
+ 'facilitate': 'enable / support / help',
47
+ 'a myriad of': 'many / numerous / various',
48
+ 'plays a crucial role': 'is important for / contributes to',
49
+ 'in conclusion': '[often unnecessary -- just conclude]',
50
+ 'overall': '[often unnecessary filler]',
51
+ 'comprehensive': '[usually vague -- be specific about scope]',
52
+ 'robust': '[overused -- specify what makes it strong]',
53
+ 'multifaceted': '[specify the actual facets]',
54
+ 'notably': '[usually filler -- delete or restructure]'
55
+ }
56
+
57
+ results = {'detected': [], 'total_flags': 0}
58
+
59
+ text_lower = text.lower()
60
+ for phrase, suggestion in overused_phrases.items():
61
+ count = text_lower.count(phrase.lower())
62
+ if count > 0:
63
+ results['detected'].append({
64
+ 'phrase': phrase,
65
+ 'count': count,
66
+ 'suggestion': suggestion
67
+ })
68
+ results['total_flags'] += count
69
+
70
+ return results
71
+ ```
72
+
73
+ ### Structural Patterns
74
+
75
+ AI text tends to exhibit predictable structural patterns:
76
+
77
+ ```
78
+ AI Pattern: Formulaic paragraph structure
79
+ - Topic sentence (broad claim)
80
+ - Supporting point 1
81
+ - Supporting point 2
82
+ - Concluding/transition sentence
83
+ Every paragraph follows this exact template.
84
+
85
+ Human Fix: Vary paragraph structure
86
+ - Sometimes lead with evidence, then interpret
87
+ - Sometimes pose a question, then answer it
88
+ - Sometimes use a single punchy sentence as a paragraph
89
+ - Let paragraph length vary naturally (2-8 sentences)
90
+ ```
91
+
92
+ ```
93
+ AI Pattern: Excessive parallel construction
94
+ "The study examined X, analyzed Y, and evaluated Z."
95
+ "This approach enhances accuracy, improves efficiency, and reduces cost."
96
+
97
+ Human Fix: Break parallelism occasionally
98
+ "The study examined X. For Y, a different analytical lens was required,
99
+ so we turned to Z for comparison."
100
+ ```
101
+
102
+ ## Revision Strategies
103
+
104
+ ### Sentence-Level Humanization
105
+
106
+ ```python
107
+ def humanize_sentence_variety(sentences: list[str]) -> dict:
108
+ """
109
+ Analyze sentence variety -- AI text often has uniform sentence lengths
110
+ and structures.
111
+ """
112
+ lengths = [len(s.split()) for s in sentences]
113
+ avg_length = sum(lengths) / len(lengths)
114
+ std_length = (sum((l - avg_length)**2 for l in lengths) / len(lengths)) ** 0.5
115
+
116
+ # Check first word variety
117
+ first_words = [s.split()[0].lower() if s.split() else '' for s in sentences]
118
+ unique_first_words = len(set(first_words)) / len(first_words)
119
+
120
+ issues = []
121
+
122
+ if std_length < 3:
123
+ issues.append(
124
+ f"Sentence lengths are too uniform (avg={avg_length:.0f}, "
125
+ f"std={std_length:.1f}). Mix short (5-10 words) and long "
126
+ f"(20-30 words) sentences."
127
+ )
128
+
129
+ if unique_first_words < 0.5:
130
+ repeated = [w for w in set(first_words) if first_words.count(w) > 2]
131
+ issues.append(
132
+ f"Too many sentences start with the same word: {repeated}. "
133
+ f"Vary sentence openings."
134
+ )
135
+
136
+ # Check for consecutive similar-length sentences
137
+ uniform_runs = 0
138
+ for i in range(1, len(lengths)):
139
+ if abs(lengths[i] - lengths[i-1]) < 3:
140
+ uniform_runs += 1
141
+
142
+ if uniform_runs > len(lengths) * 0.6:
143
+ issues.append("Too many consecutive sentences with similar lengths.")
144
+
145
+ return {
146
+ 'avg_sentence_length': round(avg_length, 1),
147
+ 'length_std': round(std_length, 1),
148
+ 'first_word_variety': round(unique_first_words, 2),
149
+ 'issues': issues,
150
+ 'assessment': 'natural' if not issues else 'needs_revision'
151
+ }
152
+ ```
153
+
154
+ ### Voice and Perspective
155
+
156
+ AI text often defaults to an impersonal, overly balanced voice. Academic writing benefits from:
157
+
158
+ 1. **Authorial voice**: Use "we" in multi-author papers. Take clear positions.
159
+ 2. **Disciplinary conventions**: Match the register of your target journal (some are more formal, others more conversational).
160
+ 3. **Specific over general**: Replace "many researchers have studied X" with "Smith (2020), Jones (2021), and Lee (2023) each approached X differently."
161
+ 4. **Genuine hedging**: Use hedging when genuinely uncertain, not as a default.
162
+
163
+ ## Workflow for AI-Assisted Writing
164
+
165
+ ```
166
+ Step 1: Draft with AI assistance (outline, first draft)
167
+ Step 2: Print the draft and read aloud -- mark anything that sounds generic
168
+ Step 3: Replace flagged phrases with your natural voice
169
+ Step 4: Add personal scholarly judgment (interpretations, critiques)
170
+ Step 5: Insert discipline-specific terminology and citations
171
+ Step 6: Vary sentence structure and paragraph length
172
+ Step 7: Run the pattern detector to catch remaining AI fingerprints
173
+ Step 8: Final read-aloud check
174
+ ```
175
+
176
+ ## Ethical Considerations
177
+
178
+ Using AI for writing assistance is increasingly accepted in academia, but transparency is essential. Many journals now require disclosure of AI tool usage. The key ethical principle: you must deeply understand and stand behind every claim in the final text. AI is a drafting tool; scholarly judgment and intellectual ownership remain yours.
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: grammar-checker-guide
3
+ description: "Use grammar and style checking tools to polish academic manuscripts"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "pencil2"
7
+ category: "writing"
8
+ subcategory: "polish"
9
+ keywords: ["grammar checker", "academic style", "proofreading", "writing tools", "language editing"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Grammar Checker Guide
14
+
15
+ A skill for using grammar and style checking tools to polish academic manuscripts. Covers tool comparison, configuration for scholarly writing, common academic English pitfalls, and workflows for integrating automated checking into the writing process.
16
+
17
+ ## Tool Comparison
18
+
19
+ ### Overview
20
+
21
+ | Tool | Best For | Academic Mode? | Privacy | Cost |
22
+ |------|----------|---------------|---------|------|
23
+ | Grammarly | General grammar, clarity | Yes (tone settings) | Cloud-based | Free / Premium |
24
+ | LanguageTool | Open-source, privacy | Yes (formal style) | Self-hostable | Free / Premium |
25
+ | ProWritingAid | Style depth, reports | Yes (academic style) | Cloud-based | Subscription |
26
+ | Writefull | Academic-specific | Designed for academic | Cloud-based | Free / Premium |
27
+ | Vale | CLI/CI linting for docs | Configurable rules | Local only | Free (open-source) |
28
+
29
+ ### Privacy Considerations
30
+
31
+ ```
32
+ For unpublished research:
33
+ - Check the tool's data retention policy before pasting manuscript text
34
+ - LanguageTool can be self-hosted (no data leaves your machine)
35
+ - Vale runs entirely locally
36
+ - Grammarly Enterprise offers data processing agreements
37
+
38
+ For sensitive or embargoed work:
39
+ - Use local-only tools (Vale, local LanguageTool server)
40
+ - Avoid pasting full manuscripts into cloud-based free tiers
41
+ - Review the tool's terms regarding data use for model training
42
+ ```
43
+
44
+ ## Configuring Tools for Academic Writing
45
+
46
+ ### LanguageTool Setup
47
+
48
+ ```python
49
+ import os
50
+ import json
51
+ import urllib.request
52
+
53
+
54
+ def check_text_with_languagetool(text: str, language: str = "en-US") -> list:
55
+ """
56
+ Check text using the LanguageTool API.
57
+
58
+ Args:
59
+ text: The text to check
60
+ language: Language code (en-US, en-GB, de-DE, etc.)
61
+ """
62
+ api_url = os.environ.get(
63
+ "LANGUAGETOOL_URL",
64
+ "https://api.languagetool.org/v2/check"
65
+ )
66
+
67
+ data = urllib.parse.urlencode({
68
+ "text": text,
69
+ "language": language,
70
+ "enabledCategories": "GRAMMAR,TYPOS,PUNCTUATION,STYLE",
71
+ "level": "picky"
72
+ }).encode("utf-8")
73
+
74
+ req = urllib.request.Request(api_url, data=data)
75
+ response = urllib.request.urlopen(req)
76
+ result = json.loads(response.read())
77
+
78
+ issues = []
79
+ for match in result.get("matches", []):
80
+ issues.append({
81
+ "message": match["message"],
82
+ "context": match["context"]["text"],
83
+ "offset": match["offset"],
84
+ "length": match["length"],
85
+ "suggestions": [r["value"] for r in match.get("replacements", [])[:3]],
86
+ "rule_id": match["rule"]["id"]
87
+ })
88
+
89
+ return issues
90
+ ```
91
+
92
+ ### Vale Configuration for Academic Prose
93
+
94
+ ```yaml
95
+ # .vale.ini -- place in your project root
96
+ StylesPath = styles
97
+ MinAlertLevel = suggestion
98
+
99
+ [*.md]
100
+ BasedOnStyles = Vale, academic
101
+
102
+ [*.tex]
103
+ BasedOnStyles = Vale, academic
104
+
105
+ # Custom academic rules (styles/academic/):
106
+ # - Flag passive voice overuse
107
+ # - Warn about hedging ("it is believed that")
108
+ # - Flag jargon and nominalization
109
+ # - Check for consistent spelling (US vs. UK English)
110
+ ```
111
+
112
+ ## Common Academic English Issues
113
+
114
+ ### Grammar Pitfalls
115
+
116
+ ```
117
+ 1. Subject-verb agreement with collective nouns:
118
+ Wrong: "The data shows a clear trend."
119
+ Right: "The data show a clear trend." (data is plural in academic English)
120
+ Note: "The dataset shows..." is acceptable (dataset is singular)
121
+
122
+ 2. Tense consistency:
123
+ Methods: Past tense ("We collected samples...")
124
+ Results: Past tense ("The analysis revealed...")
125
+ Discussion: Present tense for established knowledge
126
+ ("These results suggest that X plays a role...")
127
+
128
+ 3. Article usage:
129
+ Wrong: "In the Section 3, we describe method."
130
+ Right: "In Section 3, we describe the method."
131
+
132
+ 4. Dangling modifiers:
133
+ Wrong: "Using regression analysis, the results showed..."
134
+ Right: "Using regression analysis, we found that..."
135
+ ```
136
+
137
+ ### Style Improvements
138
+
139
+ ```
140
+ Wordiness -> Concise:
141
+ "due to the fact that" -> "because"
142
+ "in order to" -> "to"
143
+ "a large number of" -> "many"
144
+ "it is worth noting that" -> (delete, just state the point)
145
+ "at the present time" -> "currently" or "now"
146
+
147
+ Nominalization -> Verbal form:
148
+ "made an examination of" -> "examined"
149
+ "conducted an analysis" -> "analyzed"
150
+ "reached a conclusion" -> "concluded"
151
+
152
+ Passive -> Active (when appropriate):
153
+ "The samples were analyzed by us" -> "We analyzed the samples"
154
+ Note: Passive voice is acceptable in Methods for focus on procedure
155
+ ```
156
+
157
+ ## Workflow Integration
158
+
159
+ ### Recommended Editing Stages
160
+
161
+ ```
162
+ Stage 1 - Content editing (you or co-authors):
163
+ Focus on argument structure, logic, completeness
164
+ Do NOT worry about grammar yet
165
+
166
+ Stage 2 - Automated grammar check:
167
+ Run LanguageTool or Grammarly on the full manuscript
168
+ Review each suggestion -- reject false positives
169
+ Accept clear grammar and spelling fixes
170
+
171
+ Stage 3 - Style pass:
172
+ Run ProWritingAid or Vale for style analysis
173
+ Address wordiness, passive voice overuse, readability
174
+ Check for consistent terminology throughout
175
+
176
+ Stage 4 - Human proofreading:
177
+ Read aloud or have a colleague read
178
+ Catch issues that automated tools miss
179
+ Final check on formatting, references, figure labels
180
+ ```
181
+
182
+ ## Discipline-Specific Conventions
183
+
184
+ Different fields have different style expectations. Medical journals expect CONSORT/STROBE language. Legal writing has distinct citation formats. Engineering papers tolerate more passive voice. Always check your target journal's author guidelines and recent publications to calibrate your style to audience expectations.
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: plagiarism-detection-guide
3
+ description: "Use plagiarism detection tools and ensure manuscript originality"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "shield"
7
+ category: "writing"
8
+ subcategory: "polish"
9
+ keywords: ["plagiarism detection", "originality check", "Turnitin", "iThenticate", "self-plagiarism", "text similarity"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Plagiarism Detection Guide
14
+
15
+ A skill for using plagiarism detection tools to ensure manuscript originality before submission. Covers major detection platforms, understanding similarity reports, avoiding self-plagiarism, paraphrasing best practices, and institutional policies.
16
+
17
+ ## Detection Tools Overview
18
+
19
+ ### Platform Comparison
20
+
21
+ | Tool | Primary Users | Database | Cost |
22
+ |------|-------------|----------|------|
23
+ | iThenticate | Researchers, publishers | Crossref, web, dissertations | Subscription |
24
+ | Turnitin | Universities (student work) | Student papers, web, journals | Institutional |
25
+ | Copyscape | Web content | Web pages | Per-search or subscription |
26
+ | Quetext | General | Web, academic | Free tier / Premium |
27
+ | PlagScan | Academic, corporate | Web, internal database | Per-document |
28
+ | Grammarly Premium | Writers | Web, ProQuest | Included in Premium |
29
+
30
+ ### What Detection Tools Check
31
+
32
+ ```
33
+ Text matching (NOT idea matching):
34
+ - Tools compare your text against databases of published content
35
+ - They flag verbatim matches and close paraphrases
36
+ - They do NOT detect idea plagiarism or conceptual theft
37
+ - They do NOT understand context (quoted text may be flagged)
38
+
39
+ Common databases searched:
40
+ - Published journal articles (via Crossref, Scopus partnerships)
41
+ - Web pages and online content
42
+ - Previously submitted student papers (Turnitin only)
43
+ - Books and dissertations (varies by tool)
44
+ - Preprint servers (arXiv, SSRN)
45
+ ```
46
+
47
+ ## Understanding Similarity Reports
48
+
49
+ ### Reading the Report
50
+
51
+ ```python
52
+ def interpret_similarity_score(total_score: float,
53
+ source_breakdown: list[dict]) -> dict:
54
+ """
55
+ Interpret a plagiarism detection similarity report.
56
+
57
+ Args:
58
+ total_score: Overall similarity percentage
59
+ source_breakdown: List of dicts with 'source', 'percentage', 'type'
60
+ """
61
+ interpretation = {
62
+ "total_similarity": total_score,
63
+ "risk_level": (
64
+ "low" if total_score < 15
65
+ else "moderate" if total_score < 30
66
+ else "high"
67
+ ),
68
+ "guidance": {
69
+ "low": (
70
+ "Under 15% is typical for original research papers. "
71
+ "Review flagged sections to confirm they are properly quoted "
72
+ "or are common phrases."
73
+ ),
74
+ "moderate": (
75
+ "15-30% warrants review. Check if matches are from your own "
76
+ "prior work (self-citation), methods sections using standard "
77
+ "language, or properly attributed quotations."
78
+ ),
79
+ "high": (
80
+ "Over 30% requires careful review. Large blocks of matched "
81
+ "text must be rewritten, quoted, or properly attributed. "
82
+ "Note: review articles and meta-analyses may legitimately "
83
+ "have higher similarity scores."
84
+ )
85
+ }
86
+ }
87
+
88
+ # Categorize sources
89
+ for src in source_breakdown:
90
+ src["action"] = (
91
+ "Verify proper citation" if src["type"] == "journal_article"
92
+ else "Check if self-plagiarism" if src["type"] == "own_prior_work"
93
+ else "Rewrite or quote with attribution"
94
+ )
95
+
96
+ interpretation["sources"] = source_breakdown
97
+ return interpretation
98
+ ```
99
+
100
+ ### Acceptable vs. Problematic Matches
101
+
102
+ ```
103
+ Typically acceptable:
104
+ - Reference list entries
105
+ - Standard methodology descriptions ("Informed consent was obtained...")
106
+ - Widely used definitions or established terminology
107
+ - Properly quoted and attributed passages
108
+ - Author name and affiliation blocks
109
+ - Common phrases ("on the other hand", "in this study")
110
+
111
+ Potentially problematic:
112
+ - Paragraphs copied from other papers without quotation or citation
113
+ - Closely paraphrased passages without citation
114
+ - Reuse of your own prior text without disclosure (self-plagiarism)
115
+ - Translated text from another language without attribution
116
+ - Figures, tables, or data descriptions from other sources
117
+ ```
118
+
119
+ ## Avoiding Self-Plagiarism
120
+
121
+ ### What Counts as Self-Plagiarism
122
+
123
+ ```
124
+ Self-plagiarism occurs when you reuse substantial portions of your
125
+ own previously published text without disclosure. This is an issue
126
+ because publishers hold copyright on your published work.
127
+
128
+ Problematic:
129
+ - Copying methods paragraphs from your prior paper verbatim
130
+ - Reusing introduction or discussion text across papers
131
+ - "Salami slicing" -- publishing the same data in multiple papers
132
+
133
+ Acceptable:
134
+ - Building on your own prior findings (with proper citation)
135
+ - Reusing brief, standard methodological phrases
136
+ - Reproducing your own figures with permission and citation
137
+ - Theses/dissertations reused in subsequent journal articles
138
+ (check journal policy -- most allow this)
139
+ ```
140
+
141
+ ## Paraphrasing Best Practices
142
+
143
+ ### Effective Rewriting Strategy
144
+
145
+ ```
146
+ Step 1: Read the source passage carefully
147
+ Step 2: Close the source -- do not look at it
148
+ Step 3: Write the idea in your own words from memory
149
+ Step 4: Compare with the original for accuracy
150
+ Step 5: Add the citation
151
+
152
+ Test: If you can cover the original and still write the passage,
153
+ you have genuinely paraphrased. If you need to keep looking back
154
+ and changing individual words, you are patch-writing (still plagiarism).
155
+ ```
156
+
157
+ ### Common Paraphrasing Errors
158
+
159
+ | Error | Example | Fix |
160
+ |-------|---------|-----|
161
+ | Word swapping | "Important" becomes "significant" with same structure | Restructure the entire sentence |
162
+ | Patchwriting | Changing a few words but keeping sentence structure | Write from understanding, not from text |
163
+ | Missing citation | Good paraphrase but no in-text citation | Always cite the source of the idea |
164
+
165
+ ## Pre-Submission Checklist
166
+
167
+ Before submitting your manuscript, verify: all direct quotes are in quotation marks with page numbers, all paraphrased ideas have in-text citations, methods text is rewritten rather than copied from prior papers, any reuse of your own prior text is disclosed to the editor, and your similarity report shows no large unattributed matches. Run the detection tool on your final manuscript version, not an earlier draft, to ensure all revisions are captured.