skills/readme-improver/SKILL.md
Transform boring, flat README files into polished, visually compelling project pages. Use when the user asks to improve, redesign, or make a README more interesting. Covers structure, copy, badges, banner images, and overall presentation. Produces GitHub-flavored Markdown that renders well on GitHub, npm, and similar platforms.
npx skillsauth add iamkaf/skills readme-improverInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform a project README from a flat wall of text into a polished, memorable project page that makes people want to try the software.
Before touching the README, read enough of the codebase to understand:
package.json, Cargo.toml, pyproject.toml, etc. for repo URL, license, version, engine requirementsRead the existing README fully. Identify what content exists and what's missing. Do not discard existing technical content — reorganize and elevate it.
Use the generate_image tool to create a banner that captures the project's
essence. Guidelines:
Place the image in assets/banner.png (create the directory if needed).
Display it centered with a constrained width so it doesn't dominate the page:
<p align="center">
<img src="assets/banner.png" alt="Project name banner" width="480" />
</p>
Width guidelines:
480 — good default for most projects360 — for smaller, more subtle banners600 — for projects where the visual is the main drawNever go above 720. The banner should invite, not shout.
The header block follows a strict order. Use centered HTML for alignment:
<!-- 1. Banner image -->
<p align="center">
<img src="assets/banner.png" alt="Project name banner" width="480" />
</p>
<!-- 2. Badges -->
<p align="center">
<!-- see badge section below -->
</p>
<!-- 3. Project name -->
<h1 align="center">Project Name</h1>
<!-- 4. One-line description -->
<p align="center">
<strong>What it does in one sentence.</strong>
</p>
<!-- 5. Navigation links (optional, for longer READMEs) -->
<p align="center">
<a href="#quick-start">Quick Start</a> ·
<a href="#section">Section</a> ·
<a href="#another">Another</a>
</p>
After the header block, add a horizontal rule (---) and then the body.
Immediately after the ---, write 1-2 sentences that explain what the project
does. This is the most important copy in the entire README. Rules:
Optionally follow with an etymology or meaning block if the project name has one:
> **im·ma·nence** */ˈimənəns/*
> The quality of being contained within. Here, answers come from the codebase itself.
Use shields.io badges. Always use the for-the-badge
style with custom colors for a premium look. Pick colors that feel cohesive with
each other and with the banner.
Color palette approach: Choose 3 colors from a harmonious palette. Use a
dark labelColor (e.g., 1a1a2e, 0d1117, 16161d) so badges feel unified.
Common badges to include (pick what's relevant):
<!-- License -->
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-a78bfa?style=for-the-badge&labelColor=1a1a2e" alt="MIT License" /></a>
<!-- Language/runtime version -->
<img src="https://img.shields.io/badge/node-%E2%89%A520-5eead4?style=for-the-badge&logo=node.js&logoColor=5eead4&labelColor=1a1a2e" alt="Node 20+" />
<!-- npm version (if published) -->
<a href="https://www.npmjs.com/package/PACKAGE"><img src="https://img.shields.io/npm/v/PACKAGE?style=for-the-badge&color=fbbf24&logo=npm&logoColor=fbbf24&labelColor=1a1a2e" alt="npm" /></a>
<!-- crates.io (Rust) -->
<a href="https://crates.io/crates/CRATE"><img src="https://img.shields.io/crates/v/CRATE?style=for-the-badge&color=fbbf24&logo=rust&logoColor=fbbf24&labelColor=1a1a2e" alt="crates.io" /></a>
<!-- PyPI (Python) -->
<a href="https://pypi.org/project/PACKAGE"><img src="https://img.shields.io/pypi/v/PACKAGE?style=for-the-badge&color=fbbf24&logo=python&logoColor=fbbf24&labelColor=1a1a2e" alt="PyPI" /></a>
<!-- CI status -->
<a href="https://github.com/OWNER/REPO/actions"><img src="https://img.shields.io/github/actions/workflow/status/OWNER/REPO/ci.yml?style=for-the-badge&labelColor=1a1a2e" alt="CI" /></a>
Color suggestions by role:
| Role | Good hex colors |
|------|----------------|
| License | a78bfa (violet), 818cf8 (indigo), c084fc (purple) |
| Runtime/version | 5eead4 (teal), 6ee7b7 (emerald), 86efac (green) |
| Package registry | fbbf24 (amber), fb923c (orange), f472b6 (pink) |
| CI/status | 38bdf8 (sky), 22d3ee (cyan), 60a5fa (blue) |
Rules:
Use this general structure, adapting to what the project actually needs:
## How It Works ← brief conceptual overview (diagram, flowchart, or short list)
## Quick Start ← install + first meaningful command
## [Interface docs] ← CLI reference, API docs, etc. (use tables)
## Platform Notes ← OS-specific quirks, if any
## Configuration ← env vars, config files (use tables)
## Limits ← honest about what it can't do
## Contributing ← how to run from source, test, build
## License ← one-liner with link
Never mix user-facing and developer-facing sections. Keep adoption and usage content together near the top, then move contributor and maintainer material later under clearly labeled sections like Contributing, Development, or Architecture.
Bad pattern:
Good pattern:
Formatting rules:
Follow these principles for all prose in the README:
npm install" not "The user should run..."Before finishing, verify:
assets/banner.png and renders at a reasonable sizefor-the-badge style with cohesive custom colors# myproject
A tool for doing things.
## Install
npm install
## Usage
Run myproject --help
## Options
- --verbose: verbose output
- --port: port number
- --config: config file path
## License
MIT
<p align="center">
<img src="assets/banner.png" alt="myproject banner" width="480" />
</p>
<p align="center">
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-a78bfa?style=for-the-badge&labelColor=1a1a2e" alt="MIT" /></a>
<img src="https://img.shields.io/badge/node-%E2%89%A520-5eead4?style=for-the-badge&logo=node.js&logoColor=5eead4&labelColor=1a1a2e" alt="Node 20+" />
</p>
<h1 align="center">myproject</h1>
<p align="center">
<strong>One sentence about what it actually does.</strong>
</p>
---
Myproject does X by doing Y, producing Z.
## Quick start
### Install
```bash
npm install -g myproject
```
### Run
```bash
myproject --help
```
## Options
| Flag | Description | Default |
|------|-------------|---------|
| `--verbose` | Verbose output | `false` |
| `--port <n>` | Port number | `3000` |
| `--config <path>` | Config file path | `./config.json` |
## License
[MIT](LICENSE)
https://img.shields.io/badge/<LABEL>-<MESSAGE>-<COLOR>?style=for-the-badge&labelColor=<HEX>&logo=<LOGO>&logoColor=<HEX>
%20 or _ (underscores render as spaces)≥ → %E2%89%A5)development
Review a git diff, branch, or pull request for newly introduced, high-confidence security vulnerabilities. Use when the user asks for a security review, PR security pass, AppSec triage, exploitability check, or a low-noise audit of changed code, workflows, auth, input handling, secrets, or trust-boundary changes.
testing
Use when implementing a UI from a visual mock and the user wants an imagegen-based compare-and-iterate workflow until the current page closely matches the target screenshot or mock. Covers browser screenshots, explicit side-by-side comparisons, imagegen visual audits, bitmap asset generation, and avoiding stale-reference mistakes.
tools
Create, edit, debug, or review Charmbracelet VHS terminal demo recordings and .tape files. Use when the task involves terminal GIFs/videos, VHS scripts, demo cassettes, CLI screencasts, reproducible terminal recordings, or converting terminal interactions into renderable tape files.
tools
Use when the user asks you to gather requirements, or when the request is vague and needs clarity before acting.