writing-voice

22
0
Source

Voice and tone rules for all written content. Use when writing prose that should sound human and be suitable for reading aloud.

Install

mkdir -p .claude/skills/writing-voice && curl -L -o skill.zip "https://mcp.directory/api/skills/download/1090" && unzip -o skill.zip -d .claude/skills/writing-voice && rm skill.zip

Installs to .claude/skills/writing-voice

About this skill

Writing Voice

Core principle: Write for the ear, not just the eyes. Prose should be suitable to read out loud.

The Test

Read it out loud. If it:

  • Sounds like a press release → rewrite
  • Sounds like a corporate memo → rewrite
  • Sounds stilted or unnatural → rewrite
  • Sounds like you explaining to a colleague → ship it

AI Dead Giveaways

Patterns that scream "AI wrote this":

  • Bold formatting everywhere: Never bold section headers in body content
  • Bullet list everything: Convert to flowing paragraphs when possible
  • Marketing words: "game-changing", "revolutionary", "unleash", "empower"
  • Structured sections: "Key Features:", "Benefits:", "Why This Matters:"
  • Vague superlatives: "incredibly powerful", "seamlessly integrates"
  • Dramatic hyperbole: "feels like an eternity", "pain point", "excruciating" — use facts instead
  • AI adjectives: "perfectly", "effortlessly", "beautifully"
  • Space-hyphen-space: "The code works - the tests pass"
  • Overusing fragments: "Every. Single. Time." (once is emphasis, twice is a pattern)
  • Staccato buildup: Setup. Fragment. Fragment. Fragment. Punchline. This "dramatic reveal" pattern feels manufactured. Combine into one flowing sentence with em dashes or semicolons instead.
  • Forced specificity: Random numbers that don't add meaning

Punctuation

Never use " - " (space-hyphen-space) or " — " (space-em-dash-space). Prefer simpler punctuation:

PreferWhen
Period (.)Default choice. Two sentences are often clearer than one.
Colon (:)Introducing explanation: "Here's the thing: it doesn't work"
Semicolon (;)Related independent clauses: "The code works; the tests pass"
Em dash (—)Sparingly, for interruption or emphasis: "It's fast—really fast"

Em dashes are fine but easy to overuse. When in doubt, use a period.

How to Write Good Prose

The previous sections say what to avoid. This section says what to do.

Lead with the point

Every paragraph should open with its conclusion. Setup comes after, not before. The reader should know where you're going before you take them there.

Bad (buries the point):

After investigating several approaches to conflict resolution, including CRDTs, operational transforms, and manual merge strategies, we found that Yjs with LWW timestamps gave us the best combination of correctness and simplicity.

Good (leads with it):

Yjs with LWW timestamps gave us the best conflict resolution. We tried CRDTs without timestamps, operational transforms, and manual merge strategies; none matched it for correctness with this little code.

Vary sentence length

Monotone sentence length is the fastest way to sound robotic. Mix short declarative sentences with longer explanatory ones. Short sentences punch. Longer ones carry nuance and connect ideas that need to live together.

Bad (uniform length):

The system processes incoming events. It validates each event against the schema. It then routes the event to the appropriate handler. The handler updates the database accordingly.

Good (varied rhythm):

The system validates incoming events against the schema and routes them to the right handler. Simple enough. But the handler has to update the database, notify subscribers, and maintain the audit log in a single transaction. That's where it gets interesting.

Use concrete language

Abstract language forces the reader to do translation work. Concrete language lets them see it immediately.

Bad (abstract):

This approach provides significant performance improvements for data retrieval operations.

Good (concrete):

Row lookups dropped from O(n) to O(1). On a 10,000-row table, that's the difference between scanning every cell and a single hash lookup.

Connect ideas without headers

Not every transition needs a section heading. Use bridge sentences: one sentence at the end of a paragraph that sets up the next topic, or one at the start that links back. Headers break the reader's flow; use them for major shifts, not every new thought.

Bad (header-heavy):

The Problem

Sessions were timing out.

The Root Cause

The refresh only triggered on navigation.

The Solution

We added a keepalive to background activity.

Good (flowing):

Sessions were timing out during file uploads. The refresh logic only triggered on navigation events, so any background activity—uploads, sync, long-running mutations—would silently lose the session.

The fix was a keepalive that fires on any authenticated request, not just page transitions.

Common Rewrite Patterns

Mechanical substitutions you can apply without judgment:

If you wrote...Rewrite to...
"It's important to note that X""X"
"In order to achieve Y, we need to Z""Z gives us Y"
"The reason this works is because...""This works because..."
"What this means is that..."State it directly
"It should be noted that..."Drop it entirely
"Basically, X""X"
"As mentioned earlier/above"Just re-state the thing
"This allows us to...""We can now..." or "Now X works"
"We need to make sure that...""X must..." or just do it
"In the context of..."Drop it or be specific
"It is worth mentioning that..."Mention it or don't
"Going forward, we will...""Next: ..." or just describe the action
"leverage" / "utilize""use"
"facilitate""let", "enable", or "allow"
"implement a solution""fix it" / "build it" / say what you built

Explaining Technical Concepts

When explaining how something works, show the mechanism, not the marketing. Lead with what happens, then why.

Bad (over-explains, AI voice):

The key insight here is that by leveraging Yjs's built-in conflict resolution mechanism, we can effectively handle concurrent edits in a way that seamlessly maintains consistency across all connected clients.

Good (direct, shows the mechanism):

Yjs resolves conflicts automatically. Two users edit the same field, both edits survive in the CRDT, and the LWW timestamp picks the winner. No manual merge logic needed.

Bad (abstract):

The factory function pattern provides a clean separation of concerns by encapsulating the client creation logic and exposing a well-defined interface for consumers.

Good (concrete):

createSync() takes a Y.Doc and returns three methods: connect(), disconnect(), and status(). The consumer never touches WebSocket setup, reconnection logic, or auth token refresh. They call connect() and it works.

Natural Prose

  • Write like a human telling a story, not a press kit.
  • Avoid emojis in headings and formal content unless explicitly requested

Open Source & Product Writing

When writing landing pages or product-facing prose:

  • Start with what the tool actually does, not why it's amazing
  • Emphasize user control and data ownership
  • Highlight transparency: audit the code, no tracking, no middleman
  • Present honest cost comparisons with specific, real numbers
  • Acknowledge limitations and trade-offs openly
  • Use honest comparative language: "We believe X should be Y"
  • Present facts and let users draw conclusions

Good vs Bad Example

Good (natural, human):

"I was paying $30/month for a transcription app. Then I did the math: the actual API calls cost about $0.36/hour. At my usage (3-4 hours/day), I was paying $30 for what should cost $3.

So I built Whispering to cut out the middleman. You bring your own API key, your audio goes directly to the provider, and you pay actual costs. No subscription, no data collection, no lock-in."

Bad (AI-generated feel):

"Introducing Whispering - A revolutionary transcription solution that empowers users with unprecedented control.

Key Benefits:

  • Cost-Effective: Save up to 90% on transcription costs
  • Privacy-First: Your data never leaves your control
  • Flexible: Multiple provider options available

Why Whispering? We believe transcription should be accessible to everyone..."

The difference: story vs structured sections, personal vs corporate, specific numbers vs vague claims.

Voice Matching

When the user provides example text or tone guidance, match it:

  • If they're terse, be terse
  • If they give 5 sentences, don't write 5 paragraphs
  • If they use direct statements, don't add narrative fluff
  • Match their energy, not a template

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

219765

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

172398

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

158268

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

192225

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

151185

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

126166

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.