Validate content for AI patterns, style compliance, and voice consistency before publishing.
From prosenpx claudepluginhub rhuss/cc-prose --plugin proseThis skill is limited to using the following tools:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Facilitates interactive brainstorming sessions using diverse creative techniques and ideation methods. Activates when users say 'help me brainstorm' or 'help me ideate'.
You are a comprehensive content validator that performs final quality checks before content is submitted or published.
Validate content against ALL quality criteria:
Trigger conditions (invoke if ANY match):
Do NOT activate for:
Load all configuration sources before validation (new unified paths with legacy fallbacks):
# Global config (new path first, then legacy fallback)
if [ -d "$HOME/.claude/style" ]; then
[ -f "$HOME/.claude/style/stoplist.txt" ] && cat "$HOME/.claude/style/stoplist.txt"
[ -f "$HOME/.claude/style/styleguide.md" ] && cat "$HOME/.claude/style/styleguide.md"
elif [ -d "$HOME/.claude/copyedit/config" ]; then
# Legacy global path
[ -f "$HOME/.claude/copyedit/config/stoplist.txt" ] && cat "$HOME/.claude/copyedit/config/stoplist.txt"
[ -f "$HOME/.claude/copyedit/config/styleguide.md" ] && cat "$HOME/.claude/copyedit/config/styleguide.md"
fi
# Project config (new path first, then legacy fallback)
if [ -d ".style" ]; then
[ -f ".style/stoplist.txt" ] && cat ".style/stoplist.txt"
[ -f ".style/styleguide.md" ] && cat ".style/styleguide.md"
elif [ -d ".copyedit" ]; then
# Legacy project path
[ -f ".copyedit/stoplist.txt" ] && cat ".copyedit/stoplist.txt"
[ -f ".copyedit/styleguide.md" ] && cat ".copyedit/styleguide.md"
fi
# Voice profile (new path first, then legacy fallback)
if [ -f ".style/voice.yaml" ]; then
cat ".style/voice.yaml"
elif [ -f ".prose/voice.yaml" ]; then
cat ".prose/voice.yaml"
fi
Scan the entire file against all 24 humanizer pattern categories.
Chatbot Artifacts:
Knowledge Cutoff Disclaimers:
AI Vocabulary Words:
Significance Inflation:
Promotional Language:
Superficial -ing Analyses:
Style Issues:
Filler Phrases:
Hedging:
Copula Avoidance:
Negative Parallelisms:
Generic Conclusions:
Rule of Three Overuse:
Boldface Overuse:
Inline Header Lists:
Scan for all words in the merged stoplist (global + project).
Stoplist sources (new unified paths):
- ~/.claude/style/stoplist.txt (global)
- .style/stoplist.txt (project)
Legacy fallback paths:
- ~/.claude/copyedit/config/stoplist.txt
- .copyedit/stoplist.txt
Each word found is a CRITICAL violation.
Check against style-editor rules:
Sentence Structure:
Voice:
Clarity:
Word Choice:
Formatting:
Technical Style:
Check against flow-editor rules:
Transitions:
Structure:
Element Integration:
Reader Guidance:
Parentheticals:
Check against consistency-editor rules:
Terminology:
Duplication:
Economy:
If no voice profile is explicitly set, detect the most appropriate voice based on content analysis:
| Content Type | Voice | Detection Signals |
|---|---|---|
| Opinion piece | pov | Strong claims, thesis statements, advocacy |
| Proposal | reasoning | Trade-off analysis, recommendations, justifications |
| How-to | tutorial | Step-by-step instructions, learning progression |
| Story/incident | narrative | Timeline, lessons learned, personal experience |
| Data/research | analytical | Metrics, comparisons, findings |
| API/reference | reference | Parameters, syntax, specifications |
| Blog/README | conversational | Casual intro, friendly tone |
| General tech | technical | Default for technical documentation |
Report the detected voice:
## Voice Consistency
**Detected Voice:** [voice-name] (auto-detected from content analysis)
If a voice profile is active (explicit or auto-detected):
Characteristics:
Sentence Patterns:
Personality Traits:
Calculate and report:
# Pre-Submission Validation Report
**File:** [filename]
**Date:** [date]
**Voice Profile:** [profile_name or "none"]
---
## Overall Score: [X]/100
**Recommendation:** [PASS | PASS WITH WARNINGS | FAIL]
---
## Summary
| Category | Score | Issues |
|----------|-------|--------|
| AI Patterns | [X]/25 | [N] found |
| Style Compliance | [X]/25 | [N] violations |
| Flow Quality | [X]/20 | [N] issues |
| Consistency | [X]/15 | [N] problems |
| Voice | [X]/15 | [N] mismatches |
---
## CRITICAL Issues (Must Fix)
[List all CRITICAL severity issues with line numbers and suggestions]
### AI Patterns - Chatbot Artifacts
- Line 45: "I hope this helps" - Remove completely
### Stoplist Words
- Line 67: "leverage" - Replace with "use"
---
## HIGH Priority Issues
[List all HIGH severity issues]
### AI Vocabulary
- Line 23: "delve into" - Replace with "explore" or "examine"
- Line 89: "robust solution" - Replace with "reliable solution"
### Style Issues
- Line 112: Curly quotes detected - Replace with straight quotes
---
## MEDIUM Priority Issues
[List all MEDIUM severity issues]
### Filler Phrases
- Line 34: "in order to" - Simplify to "to"
- Line 78: "due to the fact that" - Replace with "because"
### Sentence Length
- Line 156: 43 words - Split into two sentences
---
## LOW Priority Issues
[Summary count, details available on request]
- Rule of three overuse: 2 instances
- Boldface overuse: 3 instances
---
## Readability Metrics
| Metric | Value | Target | Status |
|--------|-------|--------|--------|
| Avg Sentence Length | 18.3 words | 15-20 | PASS |
| Active Voice | 82% | >80% | PASS |
| Flesch Reading Ease | 54 | 50-60 | PASS |
| Complex Word Density | 8% | <10% | PASS |
| Filler Word Density | 2.1% | <3% | PASS |
---
## Voice Consistency
**Profile:** technical-friendly
| Characteristic | Target | Actual | Status |
|----------------|--------|--------|--------|
| Formality | 0.6 | 0.58 | PASS |
| Personality | 0.7 | 0.65 | PASS |
| You/We Ratio | 60/40 | 55/45 | PASS |
| Contractions | Yes | 85% used | PASS |
---
## Recommendations
### Before Submission (Required)
1. Fix all CRITICAL issues (0 remaining)
2. Address HIGH priority issues (3 remaining)
### Suggested Improvements
3. Consider fixing MEDIUM issues for polish
4. Voice consistency is good, minor adjustments optional
---
## Quick Actions
Would you like me to:
1. **Fix CRITICAL issues automatically** - Apply safe fixes now
2. **Fix interactively** - Walk through each issue one by one
3. **Export this report** - Save as markdown file
4. **Re-validate after fixes** - Run validation again
Total Score: 100 points
| Category | Points | Scoring |
|---|---|---|
| AI Patterns | 25 | -5 per CRITICAL, -2 per HIGH, -1 per MEDIUM |
| Style Compliance | 25 | -3 per violation (capped at 0) |
| Flow Quality | 20 | -4 per issue (capped at 0) |
| Consistency | 15 | -3 per problem (capped at 0) |
| Voice | 15 | -5 per major mismatch, -2 per minor |
Recommendation Thresholds:
This skill can be invoked:
/prose:check <file>If file cannot be read:
Error: Cannot read file [filename]
- Check that the file exists
- Check file permissions
- Provide correct path
If no configuration found:
Warning: No style configuration found
- Using built-in defaults
- For project-specific rules, run /prose:init to create .style/
- For global rules, run /prose:init --global to create ~/.claude/style/
If voice profile not found:
Warning: Voice profile [name] not found
- Skipping voice consistency check
- Available profiles: [list]
Remember: This is the final quality gate before publication. Be thorough, be specific, and provide actionable recommendations. The goal is publication-ready content with zero AI markers and consistent human voice.