Crafting Effective READMEs
Overview
READMEs answer questions your audience will have. Different audiences need different information - a contributor to an OSS project needs different context than future-you opening a config folder.
Always ask: Who will read this, and what do they need to know?
Process
Step 1: Identify the Task
Ask: "What README task are you working on?"
| Task |
When |
| Creating |
New project, no README yet |
| Adding |
Need to document something new |
| Updating |
Capabilities changed, content is stale |
| Reviewing |
Checking if README is still accurate |
Step 2: Task-Specific Questions
Creating initial README:
- What type of project? (see Project Types below)
- What problem does this solve in one sentence?
- What's the quickest path to "it works"?
- Anything notable to highlight?
Adding a section:
- What needs documenting?
- Where should it go in the existing structure?
- Who needs this info most?
Updating existing content:
- What changed?
- Read current README, identify stale sections
- Propose specific edits
Reviewing/refreshing:
- Read current README
- Check against actual project state (package.json, main files, etc.)
- Flag outdated sections
- Update "Last reviewed" date if present
Step 3: Always Ask
After drafting, ask: "Anything else to highlight or include that I might have missed?"
Project Types
| Type |
Audience |
Key Sections |
Template |
| Open Source |
Contributors, users worldwide |
Install, Usage, Contributing, License |
templates/oss.md |
| Personal |
Future you, portfolio viewers |
What it does, Tech stack, Learnings |
templates/personal.md |
| Internal |
Teammates, new hires |
Setup, Architecture, Runbooks |
templates/internal.md |
| Config |
Future you (confused) |
What's here, Why, How to extend, Gotchas |
templates/xdg-config.md |
Ask the user if unclear. Don't assume OSS defaults for everything.
Essential Sections (All Types)
Every README needs at minimum:
- Name - Self-explanatory title
- Description - What + why in 1-2 sentences
- Usage - How to use it (examples help)
References
section-checklist.md - Which sections to include by project type
style-guide.md - Common README mistakes and prose guidance
using-references.md - Guide to deeper reference materials
1---2name: crafting-effective-readmes3description: Crafting Effective READMEs4---5# Crafting Effective READMEs67## Overview89READMEs answer questions your audience will have. Different audiences need different information - a contributor to an OSS project needs different context than future-you opening a config folder.1011**Always ask:** Who will read this, and what do they need to know?1213## Process1415### Step 1: Identify the Task1617**Ask:** "What README task are you working on?"1819| Task | When |20|------|------|21| **Creating** | New project, no README yet |22| **Adding** | Need to document something new |23| **Updating** | Capabilities changed, content is stale |24| **Reviewing** | Checking if README is still accurate |2526### Step 2: Task-Specific Questions2728**Creating initial README:**291. What type of project? (see Project Types below)302. What problem does this solve in one sentence?313. What's the quickest path to "it works"?324. Anything notable to highlight?3334**Adding a section:**351. What needs documenting?362. Where should it go in the existing structure?373. Who needs this info most?3839**Updating existing content:**401. What changed?412. Read current README, identify stale sections423. Propose specific edits4344**Reviewing/refreshing:**451. Read current README462. Check against actual project state (package.json, main files, etc.)473. Flag outdated sections484. Update "Last reviewed" date if present4950### Step 3: Always Ask5152After drafting, ask: **"Anything else to highlight or include that I might have missed?"**5354## Project Types5556| Type | Audience | Key Sections | Template |57|------|----------|--------------|----------|58| **Open Source** | Contributors, users worldwide | Install, Usage, Contributing, License | `templates/oss.md` |59| **Personal** | Future you, portfolio viewers | What it does, Tech stack, Learnings | `templates/personal.md` |60| **Internal** | Teammates, new hires | Setup, Architecture, Runbooks | `templates/internal.md` |61| **Config** | Future you (confused) | What's here, Why, How to extend, Gotchas | `templates/xdg-config.md` |6263**Ask the user** if unclear. Don't assume OSS defaults for everything.6465## Essential Sections (All Types)6667Every README needs at minimum:68691. **Name** - Self-explanatory title702. **Description** - What + why in 1-2 sentences 713. **Usage** - How to use it (examples help)7273## References7475- `section-checklist.md` - Which sections to include by project type76- `style-guide.md` - Common README mistakes and prose guidance77- `using-references.md` - Guide to deeper reference materials