README Generator
Overview
This skill produces a complete, polished README.md that serves as a project's
front door. It inspects the repository to ground the content in reality (real
install commands, real scripts, real entry points) rather than inventing
details, then assembles the appropriate sections in a conventional, scannable
order.
Keywords: readme, README.md, project documentation, badges, shields.io,
quick start, installation, usage, getting started, contributing, license,
table of contents, project description, onboarding docs.
A great README answers five questions fast:
- What is this? (one sentence, above the fold)
- Why should I care? (key features / value)
- How do I install and run it? (quick start)
- How do I use it? (usage + examples)
- How do I contribute / get help / what license?
Workflow
Follow these steps in order. Do not skip the investigation step — accuracy
beats fluff.
Detect project type and facts. Run scripts/detect_project.py <repo>
(or inspect manually) to identify language, package manager, entry points,
scripts, license, and existing badges. This drives which sections apply.
See references/section-catalog.md for the type→section mapping.
Confirm the essentials. Gather (ask the user only for what you cannot
infer): project name, one-line tagline, target audience, install command,
minimal run/usage example, license, and repo URL (for badge slugs).
Choose sections. Start from the canonical order below and drop sections
that do not apply. Never include an empty or placeholder section.
Draft the header block. Title (H1) → tagline (one line, no period needed)
→ badge row → optional hero image/demo → table of contents (only if the
README is long, roughly 6+ H2 sections).
Write Quick Start. The single most important section. A reader should be
able to copy-paste their way to a running result in under a minute. Use a
fenced code block with a language hint and real commands.
Fill body sections (Features, Installation, Usage, Configuration, API,
Examples, Roadmap) using concrete, copy-pasteable content. Prefer tables for
options/flags/env vars.
Add the closing block (Contributing, License, Acknowledgments). Link to
CONTRIBUTING.md and CODE_OF_CONDUCT.md if they exist; otherwise inline a
short contributing blurb.
Validate. Run scripts/lint_readme.py README.md to check for broken
relative links, missing alt text, placeholder leftovers (TODO, FIXME,
<your-...>), heading hierarchy, and a present License section.
Self-review against references/quality-checklist.md.
Canonical Section Order
# Project Name
> One-line tagline
[badges]
[hero image / demo gif]
## Table of Contents (long READMEs only)
## Features (3-6 bullets, benefit-first)
## Quick Start (copy-paste to a result)
## Installation (all supported methods)
## Usage (common tasks + code)
## Configuration (options table / env vars)
## API / Commands (reference, if applicable)
## Examples (real scenarios)
## Roadmap (optional)
## Contributing (link or short blurb)
## License
## Acknowledgments (optional)
Badge Quickref
Use shields.io. Place 4-7 badges max — relevant, not
decorative. Common patterns (replace OWNER/REPO):






See references/badges.md for a full catalog (CI, coverage, version,
downloads, language, code style, social, custom static badges) with the exact
markdown and link-wrapping pattern.
Decision Heuristics
- Library/package → emphasize Installation, API, and import/usage snippets.
- CLI tool → emphasize Quick Start, Commands/flags table, examples.
- Web app / service → emphasize screenshots/demo, env config, deploy steps.
- Mono-repo → top-level overview + links to per-package READMEs.
- Tiny project → collapse to Title, tagline, Quick Start, Usage, License.
- Unsure of a fact → ask, or mark with a clearly-flagged TODO the user must
fill — never silently fabricate version numbers, URLs, or commands.
Best Practices
- Lead with value: the first screen must convey what and why.
- Make every code block copy-pasteable and language-tagged.
- Prefer tables for any list of options, flags, or environment variables.
- Use relative links for in-repo files (
./CONTRIBUTING.md) and absolute for
external resources.
- Always include alt text on images for accessibility.
- Keep the tagline under ~12 words; keep Features to 3-6 benefit-driven bullets.
- Show, don't tell: a real example beats a paragraph of description.
- Add a Table of Contents only when the document is long enough to need it.
Common Pitfalls
- Fabricated install commands or version numbers — always ground in the repo.
- A wall of prose before the reader sees what the project is.
- Badges that don't resolve (wrong slug) or purely decorative badge spam.
- Multiple H1s (
#) — there must be exactly one, the title.
- Placeholder leftovers shipped to users (
<your-name>, TODO, lorem ipsum).
- Usage examples that don't actually run.
- Missing License section (legally important, frequently forgotten).
Bundled Files
references/section-catalog.md — every section, what goes in it, when to
include it, and the project-type matrix.
references/badges.md — full shields.io badge catalog with copy-paste markdown.
references/quality-checklist.md — final self-review checklist.
templates/README.template.md — fill-in template with guidance comments.
examples/cli-tool-readme.md — a complete worked example for a CLI project.
scripts/detect_project.py — inspects a repo and reports facts for grounding.
scripts/lint_readme.py — validates a finished README.
1---2name: readme-generator3description: Generates polished, well-structured project READMEs with badges, a one-line tagline, quick-start, installation, usage examples, configuration tables, contribution guidelines, and a license section. Use this skill when the user asks to "write a README", "generate a README", "create README.md", "improve my README", "add badges", "document my project", "make a project description", or wants onboarding/landing-page docs for a library, CLI, web app, API, or repo.4license: MIT5---67# README Generator89## Overview1011This skill produces a complete, polished `README.md` that serves as a project's12front door. It inspects the repository to ground the content in reality (real13install commands, real scripts, real entry points) rather than inventing14details, then assembles the appropriate sections in a conventional, scannable15order.1617**Keywords:** readme, README.md, project documentation, badges, shields.io,18quick start, installation, usage, getting started, contributing, license,19table of contents, project description, onboarding docs.2021A great README answers five questions fast:221. **What** is this? (one sentence, above the fold)232. **Why** should I care? (key features / value)243. **How** do I install and run it? (quick start)254. **How** do I use it? (usage + examples)265. **How** do I contribute / get help / what license?2728## Workflow2930Follow these steps in order. Do not skip the investigation step — accuracy31beats fluff.32331. **Detect project type and facts.** Run `scripts/detect_project.py <repo>`34 (or inspect manually) to identify language, package manager, entry points,35 scripts, license, and existing badges. This drives which sections apply.36 See `references/section-catalog.md` for the type→section mapping.37382. **Confirm the essentials.** Gather (ask the user only for what you cannot39 infer): project name, one-line tagline, target audience, install command,40 minimal run/usage example, license, and repo URL (for badge slugs).41423. **Choose sections.** Start from the canonical order below and drop sections43 that do not apply. Never include an empty or placeholder section.44454. **Draft the header block.** Title (H1) → tagline (one line, no period needed)46 → badge row → optional hero image/demo → table of contents (only if the47 README is long, roughly 6+ H2 sections).48495. **Write Quick Start.** The single most important section. A reader should be50 able to copy-paste their way to a running result in under a minute. Use a51 fenced code block with a language hint and real commands.52536. **Fill body sections** (Features, Installation, Usage, Configuration, API,54 Examples, Roadmap) using concrete, copy-pasteable content. Prefer tables for55 options/flags/env vars.56577. **Add the closing block** (Contributing, License, Acknowledgments). Link to58 `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md` if they exist; otherwise inline a59 short contributing blurb.60618. **Validate.** Run `scripts/lint_readme.py README.md` to check for broken62 relative links, missing alt text, placeholder leftovers (TODO, FIXME,63 `<your-...>`), heading hierarchy, and a present License section.64659. **Self-review** against `references/quality-checklist.md`.6667## Canonical Section Order6869```70# Project Name71> One-line tagline7273[badges]74[hero image / demo gif]7576## Table of Contents (long READMEs only)77## Features (3-6 bullets, benefit-first)78## Quick Start (copy-paste to a result)79## Installation (all supported methods)80## Usage (common tasks + code)81## Configuration (options table / env vars)82## API / Commands (reference, if applicable)83## Examples (real scenarios)84## Roadmap (optional)85## Contributing (link or short blurb)86## License87## Acknowledgments (optional)88```8990## Badge Quickref9192Use [shields.io](https://shields.io). Place 4-7 badges max — relevant, not93decorative. Common patterns (replace `OWNER/REPO`):9495```markdown96979899100101102```103104See `references/badges.md` for a full catalog (CI, coverage, version,105downloads, language, code style, social, custom static badges) with the exact106markdown and link-wrapping pattern.107108## Decision Heuristics109110- **Library/package** → emphasize Installation, API, and import/usage snippets.111- **CLI tool** → emphasize Quick Start, Commands/flags table, examples.112- **Web app / service** → emphasize screenshots/demo, env config, deploy steps.113- **Mono-repo** → top-level overview + links to per-package READMEs.114- **Tiny project** → collapse to Title, tagline, Quick Start, Usage, License.115- **Unsure of a fact** → ask, or mark with a clearly-flagged TODO the user must116 fill — never silently fabricate version numbers, URLs, or commands.117118## Best Practices119120- Lead with value: the first screen must convey what and why.121- Make every code block copy-pasteable and language-tagged.122- Prefer tables for any list of options, flags, or environment variables.123- Use relative links for in-repo files (`./CONTRIBUTING.md`) and absolute for124 external resources.125- Always include alt text on images for accessibility.126- Keep the tagline under ~12 words; keep Features to 3-6 benefit-driven bullets.127- Show, don't tell: a real example beats a paragraph of description.128- Add a Table of Contents only when the document is long enough to need it.129130## Common Pitfalls131132- Fabricated install commands or version numbers — always ground in the repo.133- A wall of prose before the reader sees what the project is.134- Badges that don't resolve (wrong slug) or purely decorative badge spam.135- Multiple H1s (`#`) — there must be exactly one, the title.136- Placeholder leftovers shipped to users (`<your-name>`, TODO, lorem ipsum).137- Usage examples that don't actually run.138- Missing License section (legally important, frequently forgotten).139140## Bundled Files141142- `references/section-catalog.md` — every section, what goes in it, when to143 include it, and the project-type matrix.144- `references/badges.md` — full shields.io badge catalog with copy-paste markdown.145- `references/quality-checklist.md` — final self-review checklist.146- `templates/README.template.md` — fill-in template with guidance comments.147- `examples/cli-tool-readme.md` — a complete worked example for a CLI project.148- `scripts/detect_project.py` — inspects a repo and reports facts for grounding.149- `scripts/lint_readme.py` — validates a finished README.