api-pagination
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits, total-count costs, and…
How to write a README that gets a project understood and running fast — lead with what/why, a 60-second quickstart, then usage, config, contributing, and license. Covers required sections, show-don't-tell examples, scannability, badges, and failure modes. Use when writing or
$ npx -y skills add vanara-agents/skills --skill readme-writing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/readme-writingContext preview
The summary Claude sees to decide when to auto-load this skill.
How to write a README that gets a project understood and running fast — lead with what/why, a 60-second quickstart, then usage, config, contributing, and license. Covers required sections, show-don't-tell examples, scannability, badges, and failure modes. Use when writing or
name: readme-writing description: How to write a README that gets a project understood and running fast — lead with what/why, a 60-second quickstart, then usage, config, contributing, and license. Covers required sections, show-don't-tell examples, scannability, badges, and failure modes. Use when writing or auditing a project README. type: skill version: 2.0.0 updated: 2026-06-29
The README is the **front door** of a project. Most readers arrive with one of three jobs: *decide if this is worth their time*, *get it running*, or *find one specific answer*. A good README serves all three in the order they appear — orientation first, action second, depth on demand. This skill is the deep reference for writing one: the required sections, the writing moves that make it scannable, the runnable-example discipline, and the failure modes that quietly drive readers away. Heavy detail lives in `references/`; copy-paste material in `examples/`; a runnable linter in `scripts/`.
A README is read in **three passes**, and you write top-to-bottom to match them:
| Pass | Reader's question | What answers it | |---|---|---| | Skim (10s) | "What is this and is it for me?" | Title + one-line description + badges | | Try (60s) | "Can I get it running?" | Install + minimal quickstart | | Use (later) | "How do I do X specifically?" | Usage, configuration, links to deeper docs |
Optimize ruthlessly for the first 60 seconds. A reader who can't tell what the project does, or who hits a broken install command, leaves and does not come back. Everything else is recoverable; the first screen is not.
A complete README has these, roughly in this sequence. Not every project needs every one, but you must make a deliberate choice to omit, never an accidental one.
1. **Title + one-line description** — what it is and who it's for, no preamble, no "Welcome to". 2. **Badges** — build status, version, license, coverage. Signal of health, scanned in a glance. 3. **Why / value** — the problem it solves, optionally a screenshot, GIF, or short result example. 4. **Install** — the minimal commands to get the dependency in place, copy-pasteable and verified. 5. **Quickstart / Usage** — the smallest end-to-end example that produces a visible result. 6. **Configuration** — options, env vars, defaults — as a table, not prose. 7. **Contributing** — how to set up a dev environment and the contribution flow (link to `CONTRIBUTING.md`). 8. **License** — the SPDX name and a link to the `LICENSE` file.
The full anatomy, with what to include and skip per project type (library vs CLI vs service vs framework), is in `references/anatomy.md`.
The opening is the most-read and most-botched part. State the **what** in one line, then the **why**. Do not bury it under a logo, a table of contents, or a wall of badges.
# Forge Forge builds and maintains AI agents and skills through a self-improving maker/checker loop — so your automation gets better on every run instead of rotting. []() []() []()
Within two sentences the reader knows the category (agent tooling), the mechanism (maker/checker loop), and the payoff (self-improving, no rot). Compare the anti-pattern: *"Welcome to Forge! Forge is a powerful, flexible, modern, enterprise-grade platform for..."* — three adjectives and zero information. See `references/writing-style.md` for the full list of filler phrases to cut.
The quickstart is a promise: *paste these commands and see it work.* It must be **copy-pasteable**, **self-contained**, and **actually run** — test it in a clean checkout before shipping.
## Quick start \`\`\`bash git clone https://github.com/acme/forge && cd forge npm install npx forge audit ./my-project # prints a scorecard \`\`\` You should see a table of findings within a few seconds. Next, try `forge fix` to apply them.
Rules that make or break it:
visible result leaves the reader unsure it worked.
one, link the rest. Optionality kills momentum.
*before* the commands, not in a stack trace the reader hits later.
Prose describing behavior ages badly and is hard to trust. A **runnable example** is self-verifying — either it works or the reader sees it break. Prefer concrete examples over adjectives at every turn.
## Usage
\`\`\`js
import { Forge } from 'forge';
const forge = new Forge({ target: './my-project' });
const report = await forge.audit();
console.log(report.score); // 87
console.log(report.findings[0]); // { rule: 'no-secrets', severity: 'high', file: '.env' }
\`\`\`The inline comments showing return values turn a snippet into documentation. This is why `examples/` ships a `good-readme-example.md` and a `README.template.md` you can adapt — see *Files in this package*.
Readers skim, they do not read. Structure for the eye:
table beats two paragraphs of "the `--depth` flag controls...".
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Implement correct, fast API pagination — cursor vs offset trade-offs, opaque cursor encoding, stable sort keys, page-size limits, total-count costs, and…
Deep reference for caching — what to cache, cache-aside vs read/write-through/write-behind, TTLs with jitter, eviction (LRU/LFU/FIFO), invalidation, and…
Write Conventional Commits — the type(scope)!: subject + body + footer spec — so history is readable and changelogs and SemVer bumps can be derived…
How to write safe, reversible, zero-downtime database schema migrations — additive-first changes, the expand/migrate/contract pattern, batched backfills,…
How to handle errors explicitly and consistently across an app — validate at boundaries, classify operational vs programmer errors, add context while…
Run git collaboration that scales — trunk-based vs git-flow decided by deploy cadence, branch protection and required checks, PR sizing and review etiquette,…