Skip to content
Back to skills

Validate Readme

ASecurity

Validate all README files in the repository for required sections and installation code blocks, and score each one 0-6 on a quality rubric (purpose paragraph, quickstart, usage examples, license, length). Checks section presence using config from .readme-validator.yaml or sensible defaults. Badge URL reachability is checked on-demand via WebFetch.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsgitapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add dryvist/claude-code-plugins --skill validate-readme --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Validate Readme?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Validate Readme
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dryvist-validate-readme/badge)](https://www.skillsdirectory.com/skills/dryvist-validate-readme)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: validate-readme
description: >-
  Validate all README files in the repository for required sections and
  installation code blocks, and score each one 0-6 on a quality rubric
  (purpose paragraph, quickstart, usage examples, license, length).
  Checks section presence using config from .readme-validator.yaml or
  sensible defaults. Badge URL reachability is checked on-demand via
  WebFetch.
---

# Validate README

Run a comprehensive audit of all README.md files in the current repository.

## Usage

```text
/validate-readme
```

## Steps

### 1. Find all README files

Find all `README*.md` files in the repository, excluding `.git/` and `.claude/`
directories.

### 2. Validate each README

For each README found, check:

- Required sections present (from `.readme-validator.yaml` or defaults)
- Installation section contains at least one code block
- Optional sections present (warnings only)

Badge URL reachability may be checked on-demand using WebFetch for any badge
images found in the README.

### 3. Score quality

Section presence is a floor, not a measure of quality — a README can carry every
required heading and still tell a reader nothing. Score each README 0-6 against
these checks and report the score alongside the pass/warn status. The lowest-
numbered failing check is the file's `gap`: the one thing most worth fixing.

| # | Check | Pass condition |
|---|-------|----------------|
| 1 | Exists | `README.md` present at the directory root |
| 2 | Purpose paragraph | First non-frontmatter, non-badge, non-heading paragraph is prose stating what the project does — at least 30 and at most 500 characters, not starting with a list bullet |
| 3 | Quickstart | A `## Quick Start`, `## Install`, `## Installation`, `## Getting Started`, or `## Setup` section appears within the first 80 lines |
| 4 | Usage examples | A `## Usage`, `## Examples`, or `## Example` section — or the Quickstart — contains a code block of at least 3 lines |
| 5 | License | A `## License` section, or a license badge linking to `LICENSE` / `LICENSE.md` |
| 6 | Length | Between 30 and 400 non-blank lines — below is a stub, above is a manual that should be split out |

Check 2 is the one that most often fails on a README that passes section
validation, and it is usually the most valuable to fix: a reader who cannot tell
what a project does from its opening paragraph will not read the rest.

Scope note: repo description and `CLAUDE.md` quality travel with README quality
but are not README checks. Leave them to the tools that own those files —
`claude-md-improver` (claude-md-management) covers `CLAUDE.md`.

### 4. Report results

Output a summary table:

| File | Score | Status | Gap |
|------|-------|--------|-----|
| ./README.md | 6/6 | PASS | -- |
| ./plugin/README.md | 4/6 | WARN | Check 2: no purpose paragraph |

## Configuration

Place a `.readme-validator.yaml` file anywhere in the directory tree above the
README being validated. The hook searches upward up to 10 levels.

```yaml
required_sections:
  - Installation
  - Usage
optional_sections:
  - Contributing
  - License
  - API
```

**Defaults** (used when no config file is found):

- `required_sections`: `Installation`, `Usage`
- `optional_sections`: `Contributing`, `License`, `API`

## Related Skills

- code-quality-standards (code-standards) — broader code quality standards that include documentation requirements

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…