home / skills / pedrosantiagodev / buildup / writing

writing skill

/.claude/skills/writing

This skill enforces concise, active-voice technical writing across documentation, comments, commit messages, and PR descriptions to improve clarity and

npx playbooks add skill pedrosantiagodev/buildup --skill writing

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.4 KB
---
name: writing
description: Clear, concise writing standards for documentation, comments, commit messages, and technical communication. Use when writing README files, documentation, PR descriptions, code comments, or any technical writing. Focuses on clarity, brevity, and active voice.
---

# Writing Guidelines

Standards for all written content: documentation, comments, commit messages, technical writing.

## Core Principles

### Be Concise
- Every word must earn its place
- Delete redundant words
- Cut the clutter
- Short sentences convey ideas clearly

### Active Voice
Prefer active voice over passive:
- ✅ "We fixed the bug"
- ❌ "The bug was fixed by us"

### One Idea Per Sentence
- Write short sentences
- Each sentence expresses one clear idea
- Complex ideas get multiple sentences

### Lead with Results
- Put the outcome first
- Make conclusions obvious
- Return early in explanations
- Don't bury the lead

## Naming in Writing

### Descriptive Names
- Code is reference, history, and functionality
- Names must be readable as a journal
- Be specific and concrete

### Avoid Vague Terms
Replace generic terms with specific ones:
- ❌ `data`, `item`, `list`, `component`
- ✅ `userPayment`, `users`, `paymentList`

### Remove Redundancy
- ✅ `users` (not `userList`)
- ✅ `payment` (not `userPaymentData`)

## Documentation Standards

### README Files
Structure:
1. What it does (one sentence)
2. Why it exists (one paragraph)
3. How to use it (clear steps)
4. Examples (if needed)

Keep it under 200 lines. Link to additional docs if needed.

### Code Comments

Comments are unnecessary 98% of the time:
- ❌ `// Loop through users`
- ✅ Extract to function: `filterActiveUsers()`

When comments are needed:
- Explain *why*, not *what*
- Explain business context or constraints
- Document surprising behavior or gotchas

### Commit Messages

Format:
```
<verb> <what> [<context>]
```

Examples:
- ✅ `Add user authentication`
- ✅ `Fix payment validation error`
- ✅ `Refactor database queries for performance`
- ❌ `Fixed stuff`
- ❌ `Updates`
- ❌ `Claude Code: Added feature`

Rules:
- Use imperative mood ("Add" not "Added")
- Be specific about what changed
- Include context if not obvious
- Never include "Claude Code" in messages

### PR Descriptions

Structure:
```
## What
[One sentence describing the change]

## Why
[One paragraph explaining motivation]

## Testing
[How this was tested]
```

Keep it scannable. Add details only if necessary.

## Technical Writing

### Headers
- Short, descriptive, sentence-case
- Make content scannable
- Use hierarchy properly (H1 → H2 → H3)

### Lists
- Use for related items only
- Keep items parallel in structure
- Prefer sentences in prose when possible

### Examples
- Show, don't just tell
- Use real code, not pseudocode
- Keep examples minimal and focused

## Writing Anti-Patterns

### Avoid
- Redundant words: "in order to" → "to"
- Weak verbs: "is able to" → "can"
- Passive voice: "was fixed by" → "fixed"
- Hedging: "might", "possibly", "perhaps" (when you know)
- Jargon without explanation
- Over-explaining obvious things

### Watch For
- Long sentences (>25 words)
- Dense paragraphs (>5 sentences)
- Nested clauses
- Ambiguous pronouns

## Specific Use Cases

### Error Messages
Format: `<What happened>. <What to do>.`

Examples:
- ✅ `User not found. Check the email address.`
- ✅ `Payment failed. Retry or contact support.`
- ❌ `An error occurred.`
- ❌ `Something went wrong.`

### API Documentation
Include:
1. Purpose (one sentence)
2. Parameters (with types)
3. Return value (with type)
4. Example usage
5. Error cases (if complex)

### Function/Variable Documentation
Use JSDoc/TSDoc only when necessary:
- Public APIs
- Complex algorithms
- Non-obvious behavior

Format:
```typescript
/**
 * Retry failed requests with exponential backoff.
 * Max 3 attempts, doubles delay each time.
 */
```

## Tone

### Technical Writing
- Professional but approachable
- Clear and direct
- Avoid humor in error messages
- Be helpful, not condescending

### Documentation
- Assume intelligence, not knowledge
- Explain context, not obvious things
- Guide, don't command

## Review Checklist

Before publishing writing:
- [ ] Lead with the result/conclusion
- [ ] Every sentence has one clear idea
- [ ] Active voice used throughout
- [ ] No redundant words
- [ ] Specific terms (no vague language)
- [ ] Short sentences (<25 words)
- [ ] Clear hierarchy (if using headers)
- [ ] Examples included (if needed)
- [ ] Scannable and skimmable

Overview

This skill defines clear, concise writing standards for documentation, comments, commit messages, and technical communication. It focuses on brevity, active voice, and scannable structure so technical content is easy to read and act on. Follow these rules when producing READMEs, PRs, error messages, API docs, and code comments.

How this skill works

The skill inspects writing against a compact set of principles: be concise, use active voice, one idea per sentence, and lead with results. It enforces naming clarity, removes redundant terms, and prescribes minimal, structured formats for READMEs, commits, PRs, and error messages. Use the checklists and examples to rewrite or evaluate existing text.

When to use it

  • Writing or revising README files and project documentation
  • Composing commit messages and pull request descriptions
  • Adding or reviewing code comments and inline documentation
  • Drafting API docs, error messages, and user-facing text
  • Preparing technical proposals, design docs, or release notes

Best practices

  • Start with the result or purpose; put conclusions first
  • Write short sentences (one idea per sentence) and cut redundant words
  • Prefer active voice and imperative mood for commit messages
  • Use specific, descriptive names; avoid vague terms like "data" or "item"
  • Comment only when necessary: explain why, not what
  • Keep examples minimal, real, and focused

Example use cases

  • A README: one-sentence purpose, one-paragraph motivation, clear usage steps, compact examples
  • A commit: 'Fix payment validation error' instead of vague or past-tense messages
  • A PR description using the What/Why/Testing structure for quick review
  • An error message: 'Payment failed. Retry or contact support.' not 'An error occurred.'
  • API doc: purpose, parameter types, return type, example, and error cases

FAQ

When should I add a comment versus extracting code?

Prefer extraction to a well-named function for why-a-comment would explain the what. Add comments only to convey business context, constraints, or surprising behavior.

How long should sentences and paragraphs be?

Keep sentences under ~25 words and paragraphs to a few short sentences so content stays scannable and single-idea.