| name | crafting-effective-readmes |
| description | Create, update, or review README.md files with templates and checklists matched to audience and project type (open source, internal, personal, config/dotfiles). Use when asked to write/improve a README, add installation/usage, document setup, or audit a README for staleness and missing sections. |
Crafting Effective READMEs
Overview
READMEs answer questions your audience will have. Different audiences need different information: an OSS contributor needs different context than a teammate onboarding, and both differ from future-you opening a config folder.
Always ask: Who will read this, and what do they need to know?
Quick Start
- Identify the project type (Open Source, Personal, Internal, Config).
- Start from the matching template in
assets/templates/.
- Ensure the minimum sections exist: name/description and usage, plus install/setup if applicable.
- If reviewing: verify commands against reality (configs, package scripts, CI).
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 | assets/templates/oss.md |
| Personal | Future you, portfolio viewers | What it does, Tech stack, Learnings | assets/templates/personal.md |
| Internal | Teammates, new hires | Setup, Architecture, Runbooks | assets/templates/internal.md |
| Config | Future you (confused) | What's here, Why, How to extend, Gotchas | assets/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
references/section-checklist.md - Which sections to include by project type
references/style-guide.md - Common README mistakes and prose guidance
references/using-references.md - How and when to use the deeper reference docs