@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.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- 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.
|