Skip to content
All Skills

Proofreader & Style Editor

Reviews text for grammar, clarity, tone, and style issues. Applies configurable style guides (AP, Chicago, technical), tracks changes with before/after diffs, and provides readability scoring. Prerequisites: python3.

Content Creation|v1|Updated 5/18/2026
MCP get_skill({ skillId: "proofreader-style-editor-ac9f242a" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# Proofreader & Style Editor

Review text for grammar, clarity, tone, and style. Apply style guide rules and provide tracked changes with readability scoring.

## When to Use

- "Proofread this text"
- "Edit this for clarity and tone"
- "Check this against AP style"

## Requirements

- **python3** for readability scoring and stats

## Workflow

### Step 1 — Editing Brief

- **Text to edit** (paste or file path)
- **Type** (blog post, email, report, social media, academic)
- **Style guide** (AP, Chicago, technical/plain English, casual)
- **Edit level**:
  - 🟢 Light: Grammar and typos only
  - 🟡 Medium: + clarity, word choice, flow
  - 🔴 Heavy: + restructuring, tone, conciseness
- **Target audience**
- **Tone** (formal, conversational, authoritative)

### Step 2 — Analysis Pass

```bash
python3 << 'PYEOF'
text = """{INPUT_TEXT}"""

words = text.split()
sentences = text.count('.') + text.count('!') + text.count('?')
avg_sentence = len(words) / max(sentences, 1)

# Passive voice detection (simple heuristic)
import re
passive_patterns = re.findall(r'\b(?:is|are|was|were|been|being)\s+\w+ed\b', text, re.I)

# Weak words
weak_words = ['very', 'really', 'quite', 'somewhat', 'basically', 'actually', 'just', 'things', 'stuff']
weak_found = [w for w in weak_words if w in text.lower()]

# Adverb density  
adverbs = [w for w in words if w.endswith('ly') and len(w) > 4]

print(f"Words: {len(words)}")
print(f"Sentences: {sentences}")
print(f"Avg sentence length: {avg_sentence:.1f} words (target: 15-20)")
print(f"Passive voice instances: {len(passive_patterns)}")
print(f"Weak words found: {', '.join(weak_found) if weak_found else 'None'}")
print(f"Adverbs: {len(adverbs)} ({len(adverbs)/max(len(words),1)*100:.1f}%)")
PYEOF
```

### Step 3 — Edit with Tracked Changes

```markdown
## Edits

### Grammar & Typos
| # | Original | Corrected | Rule |
|---|----------|-----------|------|
| 1 | "{original}" | "{corrected}" | {rule} |
| 2 | "{original}" | "{corrected}" | {rule} |

### Clarity & Style
| # | Original | Suggested | Why |
|---|----------|-----------|-----|
| 1 | "{wordy phrase}" | "{concise version}" | {reason} |
| 2 | "{passive voice}" | "{active voice}" | Stronger, clearer |

### Structural Suggestions
- {Paragraph X}: Consider splitting — too many ideas
- {Section Y}: Move before {Section Z} for better flow
- {Intro}: Add a hook — current opening is weak
```

### Step 4 — Deliver Clean Version

Provide the fully edited text with all changes applied.

### Step 5 — Before/After Score

```markdown
## Editing Summary
| Metric | Before | After | Change |
|--------|--------|-------|--------|
| Word count | {N} | {N} | {-N} |
| Avg sentence length | {N} | {N} | {-N} |
| Passive voice | {N} | {N} | {-N} |
| Weak words | {N} | {N} | {-N} |
| Readability grade | {N} | {N} | {change} |

Total edits: {N}
- Grammar: {N}
- Clarity: {N}
- Style: {N}
```

## Important Rules

- Always preserve the author's voice — edit, don't rewrite
- Show changes transparently — never silently alter meaning
- Grammar fixes are mandatory; style suggestions are optional
- For academic text, be conservative — don't casualize
- Flag factual claims that seem questionable but don't correct them

## Example Prompts

- "Proofread this blog post for grammar and clarity"
- "Edit this email to sound more professional"
- "Heavy edit on this report — make it concise and clear"
#content#proofreading#editing#writingpython3

Explore Other Categories

Skills from other categories with shared topics