Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use grammar and style checking tools to polish academic manuscripts
.claude/skills/brycewang-stanford-grammar-checker-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 75% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 35% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 61% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 44% | 0% |
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.
| Tool | Best For | Academic Mode? | Privacy | Cost | |------|----------|---------------|---------|------| | Grammarly | General grammar, clarity | Yes (tone settings) | Cloud-based | Free / Premium | | LanguageTool | Open-source, privacy | Yes (formal style) | Self-hostable | Free / Premium | | ProWritingAid | Style depth, reports | Yes (academic style) | Cloud-based | Subscription | | Writefull | Academic-specific | Designed for academic | Cloud-based | Free / Premium | | Vale | CLI/CI linting for docs | Configurable rules | Local only | Free (open-source) |
For unpublished research:
- Check the tool's data retention policy before pasting manuscript text
- LanguageTool can be self-hosted (no data leaves your machine)
- Vale runs entirely locally
- Grammarly Enterprise offers data processing agreements
For sensitive or embargoed work:
- Use local-only tools (Vale, local LanguageTool server)
- Avoid pasting full manuscripts into cloud-based free tiers
- Review the tool's terms regarding data use for model trainingpythonimport os import json import urllib.request def check_text_with_languagetool(text: str, language: str = "en-US") -> list: """ Check text using the LanguageTool API. Args: text: The text to check language: Language code (en-US, en-GB, de-DE, etc.) """ api_url = os.environ.get( "LANGUAGETOOL_URL", "https://api.languagetool.org/v2/check" ) data = urllib.parse.urlencode({ "text": text, "language": language, "enabledCategories": "GRAMMAR,TYPOS,PUNCTUATION,STYLE", "level": "picky" }).encode("utf-8") req = urllib.request.Request(api_url, data=data) response = urllib.request.urlopen(req) result = json.loads(response.read()) issues = [] for match in result.get("matches", []): issues.append({ "message": match["message"], "context": match["context"]["text"], "offset": match["offset"], "length": match["length"], "suggestions": [r["value"] for r in match.get("replacements", [])[:3]], "rule_id": match["rule"]["id"] }) return issues
yaml# .vale.ini -- place in your project root StylesPath = styles MinAlertLevel = suggestion [*.md] BasedOnStyles = Vale, academic [*.tex] BasedOnStyles = Vale, academic # Custom academic rules (styles/academic/): # - Flag passive voice overuse # - Warn about hedging ("it is believed that") # - Flag jargon and nominalization # - Check for consistent spelling (US vs. UK English)
1. Subject-verb agreement with collective nouns:
Wrong: "The data shows a clear trend."
Right: "The data show a clear trend." (data is plural in academic English)
Note: "The dataset shows..." is acceptable (dataset is singular)
2. Tense consistency:
Methods: Past tense ("We collected samples...")
Results: Past tense ("The analysis revealed...")
Discussion: Present tense for established knowledge
("These results suggest that X plays a role...")
3. Article usage:
Wrong: "In the Section 3, we describe method."
Right: "In Section 3, we describe the method."
4. Dangling modifiers:
Wrong: "Using regression analysis, the results showed..."
Right: "Using regression analysis, we found that..."Wordiness -> Concise:
"due to the fact that" -> "because"
"in order to" -> "to"
"a large number of" -> "many"
"it is worth noting that" -> (delete, just state the point)
"at the present time" -> "currently" or "now"
Nominalization -> Verbal form:
"made an examination of" -> "examined"
"conducted an analysis" -> "analyzed"
"reached a conclusion" -> "concluded"
Passive -> Active (when appropriate):
"The samples were analyzed by us" -> "We analyzed the samples"
Note: Passive voice is acceptable in Methods for focus on procedureStage 1 - Content editing (you or co-authors):
Focus on argument structure, logic, completeness
Do NOT worry about grammar yet
Stage 2 - Automated grammar check:
Run LanguageTool or Grammarly on the full manuscript
Review each suggestion -- reject false positives
Accept clear grammar and spelling fixes
Stage 3 - Style pass:
Run ProWritingAid or Vale for style analysis
Address wordiness, passive voice overuse, readability
Check for consistent terminology throughout
Stage 4 - Human proofreading:
Read aloud or have a colleague read
Catch issues that automated tools miss
Final check on formatting, references, figure labelsDifferent 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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,502 | 26,355 | +42% | 1 | 1 | 0% | 3,478 | 4,022 | +16% | 0 | 0 | — |
case-02 | fail→fail | 20,282 | 32,855 | +62% | 1 | 1 | 0% | 3,298 | 6,108 | +85% | 0 | 0 | — |
case-03 | pass→pass | 20,150 | 25,336 | +26% | 1 | 1 | 0% | 2,856 | 5,011 | +75% | 0 | 0 | — |
case-04 | pass→pass | 18,929 | 16,974 | -10% | 1 | 1 | 0% | 2,955 | 3,986 | +35% | 0 | 0 | — |
case-05 | pass→pass | 14,739 | 18,847 | +28% | 1 | 1 | 0% | 2,372 | 3,827 | +61% | 0 | 0 | — |
case-06 | pass→pass | 10,507 | 4,926 | -53% | 1 | 1 | 0% | 1,534 | 2,214 | +44% | 0 | 0 | — |
case-07 | pass→pass | 4,359 | 3,564 | -18% | 1 | 1 | 0% | 777 | 1,960 | +152% | 0 | 0 | — |
case-08 | fail→pass | 14,225 | 5,061 | -64% | 1 | 1 | 0% | 2,267 | 2,182 | -4% | 0 | 0 | — |
case-09 | pass→pass | 7,707 | 7,127 | -8% | 1 | 1 | 0% | 1,060 | 2,355 | +122% | 0 | 0 | — |
case-10 | pass→pass | 8,415 | 6,053 | -28% | 1 | 1 | 0% | 1,337 | 2,341 | +75% | 0 | 0 | — |
case-11 | pass→pass | 6,422 | 5,374 | -16% | 1 | 1 | 0% | 969 | 2,267 | +134% | 0 | 0 | — |
case-12 | pass→pass | 8,500 | 7,593 | -11% | 1 | 1 | 0% | 1,247 | 2,439 | +96% | 0 | 0 | — |
case-13 | pass→pass | 6,867 | 6,323 | -8% | 1 | 1 | 0% | 1,165 | 2,120 | +82% | 0 | 0 | — |
case-14 | pass→pass | 8,717 | 7,873 | -10% | 1 | 1 | 0% | 1,313 | 2,589 | +97% | 0 | 0 | — |
case-15 | pass→pass | 8,796 | 12,423 | +41% | 1 | 1 | 0% | 1,414 | 2,664 | +88% | 0 | 0 | — |
case-16 | pass→pass | 9,530 | 3,942 | -59% | 1 | 1 | 0% | 1,421 | 1,876 | +32% | 0 | 0 | — |
case-17 | pass→pass | 8,033 | 5,339 | -34% | 1 | 1 | 0% | 1,174 | 2,259 | +92% | 0 | 0 | — |
case-18 | pass→pass | 5,890 | 3,554 | -40% | 1 | 1 | 0% | 905 | 1,959 | +116% | 0 | 0 | — |
case-19 | pass→pass | 2,907 | 2,561 | -12% | 1 | 1 | 0% | 369 | 1,699 | +360% | 0 | 0 | — |
case-20 | pass→pass | 6,854 | 4,095 | -40% | 1 | 1 | 0% | 954 | 2,018 | +112% | 0 | 0 | — |
case-21 | pass→pass | 14,771 | 8,984 | -39% | 1 | 1 | 0% | 2,046 | 2,639 | +29% | 0 | 0 | — |
case-22 | pass→pass | 15,094 | 3,762 | -75% | 1 | 1 | 0% | 2,532 | 1,904 | -25% | 0 | 0 | — |
case-23 | pass→pass | 18,084 | 21,797 | +21% | 1 | 1 | 0% | 2,676 | 4,470 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +4 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.