From noah-writing-voice
AI detection scoring for all written output. This skill MUST run automatically before presenting ANY written content to the user. Use whenever generating, editing, or revising articles, blog posts, LinkedIn posts, emails, documentation, social media content, or any prose meant for human readers. Scores writing on a 0-100 scale for how human vs AI it reads, flags specific AI tells with line-level citations, and suggests concrete rewrites. If you are about to show the user written text, run this scoring pass first. No exceptions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/noah-writing-voice:ai-scoringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Every piece of written content must pass through this scoring system before being presented to the user. This isn't optional. Noah's reputation depends on his writing reading as authentically human.
Every piece of written content must pass through this scoring system before being presented to the user. This isn't optional. Noah's reputation depends on his writing reading as authentically human.
This skill works alongside the noah-voice skill. Apply voice rules first during writing, then run this scoring pass before delivery.
Read the entire piece of writing and evaluate it against each of the detection categories below. For each category, assign a penalty based on severity. Start at 100 (fully human) and subtract points.
What to look for: Excessive single-sentence paragraphs, especially used as transitions. AI loves the dramatic one-liner drop:
"But that wasn't the real problem."
"The answer surprised me."
"And then everything changed."
Scoring: 1-2 single-sentence paragraphs in an article = fine (-0). 3-4 = noticeable (-5 to -10). 5+ = very AI (-15 to -20).
Fix: Fold the standalone sentence into its neighboring paragraph, or expand it with a supporting detail that earns the pause.
What to look for: Three or more consecutive sentences or paragraphs following the exact same syntactic pattern. AI generates unnervingly symmetrical prose:
"The first lesson was about patience. The second lesson was about persistence. The third lesson was about perspective."
Scoring: Occasional parallelism is fine and even powerful (-0). But when every section opening, every transition, or every list item follows the same grammatical template, it reads as generated (-5 to -15 depending on how pervasive).
Fix: Break the pattern. Vary sentence openings. Let some ideas take two sentences while others take half a sentence embedded in a larger thought.
What to look for: Transitions that announce they're transitioning instead of actually moving the narrative forward:
Scoring: 1 instance = minor (-2). 2-3 = noticeable (-5 to -10). 4+ = clearly AI (-15).
Fix: Delete the transition entirely and see if the text still flows. Usually it does. If a bridge is needed, make the transition carry actual content: instead of "Here's the thing about data platforms," write a sentence that IS the thing about data platforms.
What to look for: AI reflexively presents "both sides" even when the author has a clear position. Watch for:
Scoring: Noah has opinions and states them. One hedge in a nuanced section = fine (-0). Pattern of hedging throughout = AI (-5 to -10).
Fix: Take a position. Back it with evidence. Noah wrote "I was wrong" and "Snowflake is definitely the best in class option." He didn't write "both platforms have their strengths."
What to look for: Multiple consecutive sentences starting with the same word or structure, especially "I," "The," "This," or "It." AI tends to fall into opening ruts.
Scoring: 3+ consecutive sentences with the same opening pattern = -5. Pervasive throughout = -10.
Fix: Restructure sentences. Lead with different elements: a prepositional phrase, a dependent clause, a direct object, a quote, a question.
What to look for: Paragraphs that are clearly bullet points reformatted as sentences. Each sentence covers exactly one discrete point with no flowing connection to the next:
"The tool analyzes code complexity. It also measures test coverage. Additionally, it tracks dependency graphs. Furthermore, it generates priority scores."
Scoring: One instance = -3. Multiple = -5 to -10.
Fix: Weave the points together. Show how they connect. Let one idea flow into the next naturally rather than stacking discrete facts.
What to look for: Vague claims without receipts. AI tends toward generality:
Scoring: Human writing is specific. Noah writes "twelve and thirteen hours a day" not "long hours." He writes "billions of rows and terabytes of data" not "large datasets." Vagueness throughout = -10 to -15.
Fix: Add the specific number, name, date, or anecdote. If you don't have one, that's a signal the claim might not be earned.
What to look for: Words that are AI calling cards:
Scoring: 1-2 instances = -3. 3+ = -5 to -10.
Fix: Replace with plain language. "Use" not "leverage." "Area" or "field" not "landscape." Cut the filler phrases entirely.
Present the score and findings in this format:
AI DETECTION SCORE: [X]/100
FLAGGED PASSAGES:
1. [Category]: "[quoted passage]"
Why: [specific reason this reads as AI]
Suggested rewrite: "[concrete alternative]"
2. [Category]: "[quoted passage]"
Why: [specific reason]
Suggested rewrite: "[concrete alternative]"
SUMMARY: [1-2 sentence overall assessment]
For Noah's Snowflake Builders Blog articles, the minimum threshold is 75 (enforced by the snowflake-article skill). For other content, aim for 75+ but use judgment.
This scoring system catches patterns, not certainties. A human writer might occasionally use parallel structure or a generic transition. The score reflects the cumulative effect: any one tell is minor, but they compound. A piece with clean rhythm, specific details, and a strong personal voice can afford one or two flags. A piece with five or six different AI patterns, even if each is individually mild, reads as generated.
The goal isn't robotic avoidance of every flagged pattern. It's awareness. Flag the patterns, offer alternatives, and let the writer (or the voice skill) make the call.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub noah-goodrich/claude-plugins --plugin noah-writing-voice