Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install event4u-app-agent-config-agent-src-skills-readme-reviewergit clone https://github.com/event4u-app/agent-config.gitcp agent-config/SKILL.MD ~/.claude/skills/event4u-app-agent-config-agent-src-skills-readme-reviewer/SKILL.md---
name: readme-reviewer
description: "Use when reviewing a README for accuracy, usability, and alignment with the actual repository. Detects invented content, broken setup steps, and structural issues."
source: package
domain: quality
execution:
type: assisted
handler: internal
allowed_tools: []
---
# readme-reviewer
## When to use
- Reviewing a newly created or rewritten README
- Validating a README matches the actual repository
- Auditing README quality across repos
- Checking for hallucinated setup, commands, or features
Do NOT use when:
- Only proofreading grammar or formatting
- Writing a README from scratch → use `readme-writing` or `readme-writing-package`
## Goal
Ensure the README is correct (no invented content), aligned with the repo,
useful for the intended audience, and has a strong quickstart path.
## Core principles
- Evidence over assumption — verify every claim against the repo
- Commands must exist — check `Taskfile.yml`, `Makefile`, `package.json scripts`
- Examples must match real APIs — compare against source code
- Quickstart quality matters more than completeness
- A clean-looking README can still be technically wrong
## Procedure
### 1. Identify README type and audience
Determine repo type (package, app, CLI, internal, framework) and target audience
(consumers, contributors, team). Check if README structure matches this type.
### 2. Cross-check against repository
Inspect truth-defining files:
- `package.json` / `composer.json` — name, scripts, dependencies
- `Dockerfile` / `docker-compose.yml` — runtime setup
- `Taskfile.yml` / `Makefile` — available commands
- CI workflows — what gets tested
- Source entrypoints — actual public API
- Config files, tests, existing docs
Verify: install steps exist, commands work, features are implemented,
deps are real.
### 3. Validate installation and setup
Check:
- Install command is correct and complete
- Required post-install steps are documented
- No hidden setup assumptions
- Environment/config requirements are listed
Flag: missing steps, incorrect steps, implied-but-unwritten steps.
### 4. Validate usage examples
Check:
- First example is minimal and realistic
- Example matches actual API (verify against source)
- Example does not rely on undocumented setup
- Example is not overly complex or abstract
Flag: pseudo-code, oversized examples, API mismatches.
### 5. Validate compatibility and requirements
Check:
- Runtime versions stated (PHP, Node, etc.)
- Framework compatibility is explicit
- Dependencies are declared
Flag: missing compatibility, vague claims ("works with most versions"),
unconfirmed broad support.
### 6. Evaluate structure and clarity
Check:
- Strong first screen (what + why + quickstart visible before scrolling)
- Logical section order for repo type
- No unnecessary sections (padded boilerplate)
- No missing critical sections
Common issues: architecture before installation, no quickstart,
buried usage instructions, generic template sections.
### 7. Detect hallucinations
Explicitly search for:
- Commands not present in repo
- Features not implemented
- Setup steps not supported by scripts/configs
- Assumptions about environment or tools
Classify each finding:
- **Confirmed incorrect** — verifiably wrong
- **Likely incorrect** — no evidence found, needs verification
- **Unclear** — cannot confirm or deny, needs human input
### 8. Check scope, size, and splitting
- README not overloaded with deep technical detail
- Complex content belongs in `/docs`, not README
- Important onboarding info not missing due to over-compression
Size checks:
- **< 150 lines** — healthy
- **150–300 lines** — expect a Table of Contents; flag if missing
- **300–500 lines** — flag as overloaded; deep content should be in `/docs/`
- **> 500 lines** — flag as broken entry point; hard split required
Structure checks:
- ToC present if > 150 lines or > 6 top-level (`##`) sections
- Multi-platform install (> 5 variants) uses a table with deep links, not stacked blocks
- `<details>` used only for secondary, bulky content — never for install, first example, or requirements
- No duplication between README and `/docs/` (same content in two places drifts)
- Each `/docs/` file linked from README is self-contained (not just a fragment)
→ See `docs/guidelines/docs/readme-size-and-splitting.md` for full thresholds,
splitting strategies, and anti-patterns.
## Output format
### 1. Summary
| Field | Value |
|---|---|
| Repo type | {type} |
| Audience | {audience} |
| Overall | {short assessment} |
### 2. Findings
| # | Severity | Section | Issue | Fix |
|---|---|---|---|---|
| 1 | ❌ Critical | Install | Command `X` does not exist | Replace with `Y` |
| 2 | ⚠️ Major | Usage | Example uses deprecated API | Update to current API |
| 3 | ℹ️ Minor | Structure | Requirements buried below usage | Move above install |
Severity levels:
- **❌ Critical** — breaks onboarding or is factually incorrect
- **⚠️ Major** — confusing, incomplete, or misleading
- **ℹ️ Minor** — clarity improvement, formatting, structure
### 3. Confidence
- What is confirmed correct
- What needs human verification
- What is unclear due to missing context
## Gotcha
- Model tends to trust the README instead of verifying against the repo
- Model may miss subtle mismatches between examples and real APIs
- Model may focus on wording/style instead of correctness
- A well-formatted README with wrong commands is worse than ugly but correct
- Model may accept "looks reasonable" compatibility without checking CI matrix
## Do NOT
- Do NOT assume README is correct without checking the repo
- Do NOT ignore missing or broken setup steps
- Do NOT accept vague compatibility statements as valid
- Do NOT focus only on wording while missing structural/correctness issues
- Do NOT overlook mismatches between examples and actual source code
- Do NOT soften findings — state issues clearly with severity