plugins/readme-engineering/skills/readme-patterns/SKILL.md
# README Patterns ## The 5-Second Test A developer landing on a README has 5 seconds before they decide to stay or leave. The test: - Close the README - Ask: "What does this project do?" - If you cannot answer in one sentence, the README failed The one-liner must complete this template: "[Name] is a [category] that [value proposition]." ```markdown # Bad: feature list as description A comprehensive toolkit with logging, caching, retry logic, and more. # Good: one-liner that passes the 5-sec
npx skillsauth add hermeticormus/librecopy-claude-code plugins/readme-engineering/skills/readme-patternsInstall 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.
A developer landing on a README has 5 seconds before they decide to stay or leave. The test:
The one-liner must complete this template: "[Name] is a [category] that [value proposition]."
# Bad: feature list as description
A comprehensive toolkit with logging, caching, retry logic, and more.
# Good: one-liner that passes the 5-second test
Retry is a TypeScript library that wraps any async function with
configurable exponential backoff and jitter.
Readers scan in layers. Structure content for multiple attention spans:
Layer 1: One-liner + badges (2 seconds) - Every visitor reads this
Layer 2: Install + Quick Start (30 seconds) - Evaluating visitors read this
Layer 3: Features + API overview (2 minutes) - Interested visitors read this
Layer 4: Full API reference + docs (10+ min) - Committed users read this
Rules:
<!-- CI/CD status - shows the project is actively maintained -->
[](...)
<!-- Version - shows the project is actively released -->
[](...)
<!-- License - required for legal clarity -->
[](./LICENSE)
<!-- Coverage - only add if you actually maintain coverage -->
[](...)
<!-- Downloads - social proof when number is meaningful (>100/week) -->
[](...)
Cover every supported package manager. Users do not switch tools because of a missing one-liner.
## Install
```bash
npm install {package-name}
yarn add {package-name}
pnpm add {package-name}
For non-npm packages, match the ecosystem:
- Python: `pip install`, `uv add`, `poetry add`
- Rust: `cargo add`
- Go: `go get`
## Quick Start: The Copy-Paste Test
Every quick start code block must pass the copy-paste test: paste into a clean project with documented prerequisites and it must work.
```markdown
# Bad: missing imports, unexplained prerequisites
const client = new Client({ token });
const result = await client.search({ query: 'test' });
# Good: complete, runnable example
import { SearchClient } from '@example/search';
const client = new SearchClient({
token: process.env.SEARCH_TOKEN,
});
const results = await client.search({
query: 'hello world',
limit: 10,
});
console.log(results.hits); // [{ id: '1', title: '...', score: 0.9 }]
Quick start checklist:
tool --help output or common commands)# Bad: marketing copy instead of technical description
Welcome to AwesomeTool, the revolutionary solution that transforms
the way development teams collaborate...
# Good: direct technical description
AwesomeTool is a CLI that syncs local file changes to a remote
Docker container without restarting the container.
# Bad: prerequisites buried after installation
npm install my-tool
# Then later in the document...
Note: Requires Node.js 18+, Redis 7+, and PostgreSQL 14+.
# Good: prerequisites before install
## Prerequisites
- Node.js 18+
- Redis 7+ (for session storage)
- PostgreSQL 14+ (for data persistence)
## Install
npm install my-tool
Only include screenshots if you commit to updating them. A screenshot showing old UI erodes trust faster than no screenshot at all. If you include screenshots, add a comment in the PR template: "Did UI change? Update README screenshot."
If you claim the library is "blazing fast" or "zero-dependency," prove it:
# Bad
Extremely fast JSON parsing library.
# Good
Parses JSON 2-4x faster than JSON.parse for objects > 10KB.
[Benchmarks](./benchmarks)
Only add a Table of Contents if the README exceeds four screen-lengths (approximately 1500 words). When added:
## Contents
- [Install](#install)
- [Quick Start](#quick-start)
- [API](#api)
- [Configuration](#configuration)
- [Contributing](#contributing)
- [License](#license)
Use #lowercase-with-hyphens anchor links. GitHub auto-generates anchors from headings.
tools
# User Doc Patterns > Patterns for writing clear, accessible end-user documentation. ## Knowledge Base ### User Documentation vs Developer Documentation | User Docs | Developer Docs | |-----------|---------------| | Task-oriented ("How do I...") | Concept-oriented ("How does it work...") | | Plain language | Technical language | | Screenshots and visual aids | Code examples | | Step-by-step procedures | API references | | Feature names and UI labels | Function signatures and parameters | | A
tools
# Tutorial Structures > Pedagogical patterns and frameworks for creating effective technical tutorials. ## Knowledge Base ### The Tutorial Spectrum Tutorials exist on a spectrum between two extremes: | Recipe | Concept Guide | |--------|--------------| | "Do exactly this" | "Understand this idea" | | Step-by-step | Explanation-heavy | | Fast to complete | Deep understanding | | Low retention | High retention | The best tutorials blend both: steps for doing, explanations for understanding.
tools
# Tutorial Patterns ## Tutorial vs. How-to Guide: The Critical Distinction Before writing, identify which document is actually needed: | Tutorial | How-to Guide | |----------|-------------| | "Build a REST API in Node.js" | "Add JWT authentication to your Express API" | | For someone new to this | For someone who knows the domain | | Explains why each step is done | Steps are efficient, minimal explanation | | Has checkpoints, explores | Numbered steps, no detours | | Learner reaches a comple
tools
# Tech Blogging Patterns ## The Developer Reading Pattern Developers do not read technical posts linearly. They scan in this order: 1. Headline (is this relevant to me?) 2. Code blocks (is this real code I can use?) 3. Headers (what does this cover?) 4. First paragraph (what's the point?) 5. Key takeaways / conclusion (is it worth reading fully?) Design for scanning first, reading second. Put real code within the first 25% of the post. ## The Before/After Pattern The contrast between a pain