skills/readme-reviewer/SKILL.md
Review a codebase and generate or update its README.md according to best practices. The skill performs static analysis of the project structure, dependencies, scripts, and existing documentation, then produces a comprehensive, accurate README. **Triggers — use this skill when:** - User asks to "review", "update", "improve", or "generate" a README - User says "create a README for this project" - User mentions "document this repo", "add documentation" - User asks to "fix my README" or "make my README better" - User provides a codebase and asks for documentation help **Covers:** Any project type — Node.js, Python, Rust, Go, Java, Ruby, PHP, monorepos, static sites, CLI tools, libraries, APIs, Docker-based projects, and more. Works with both new READMEs (from scratch) and existing ones (update/improve).
npx skillsauth add espennilsen/pi readme-reviewerInstall 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.
Analyze a codebase and produce a high-quality README.md that follows industry best practices.
A README is the front door to a project. It should answer five questions in under 60 seconds:
Everything else is secondary. The skill prioritizes accuracy over boilerplate — every claim in the README must be verifiable from the codebase.
Before writing a single line of the README, gather facts. Do NOT hallucinate features or commands. Every statement must come from the codebase.
# 1. Project structure overview
find . -maxdepth 3 -type f | head -80
ls -la
# 2. Package manifest & dependencies
cat package.json 2>/dev/null # Node.js
cat Cargo.toml 2>/dev/null # Rust
cat pyproject.toml setup.py setup.cfg requirements.txt 2>/dev/null # Python
cat go.mod 2>/dev/null # Go
cat Gemfile 2>/dev/null # Ruby
cat composer.json 2>/dev/null # PHP
cat pom.xml build.gradle 2>/dev/null # Java/Kotlin
# 3. Available scripts & entry points
# Node: extract "scripts" from package.json
# Python: look for __main__.py, cli.py, manage.py, app.py
# Rust/Go: look for main.rs / main.go
# 4. Config files that reveal tooling
ls .github/workflows/ 2>/dev/null # CI/CD
cat Dockerfile docker-compose.yml 2>/dev/null # Docker
cat .env.example .env.sample 2>/dev/null # Environment vars
cat Makefile 2>/dev/null # Make targets
cat tsconfig.json 2>/dev/null # TypeScript config
cat .eslintrc* .prettierrc* 2>/dev/null # Linting
# 5. Existing documentation
cat README.md 2>/dev/null
cat CONTRIBUTING.md 2>/dev/null
cat LICENSE* 2>/dev/null
cat CHANGELOG.md 2>/dev/null
ls docs/ 2>/dev/null
# 6. Tests
ls tests/ test/ __tests__/ spec/ 2>/dev/null
grep -r "test" package.json 2>/dev/null | head -5
# 7. Git info (if available)
git remote -v 2>/dev/null
git log --oneline -5 2>/dev/null
Extract from the scan:
| Fact | Source |
|------|--------|
| Project name | Directory name, package manifest name field |
| One-line description | Manifest description, or infer from code |
| Language & runtime | File extensions, manifest, lock files |
| Framework / major deps | Manifest dependencies |
| Install command | Manifest scripts, Makefile, Dockerfile |
| Run / start command | scripts.start, scripts.dev, entry point |
| Test command | scripts.test, pytest, cargo test, etc. |
| Build command | scripts.build, Makefile, Dockerfile |
| Environment variables | .env.example, config files, code references |
| CI/CD | .github/workflows/, .gitlab-ci.yml, etc. |
| License | LICENSE file, manifest license field |
| Existing docs quality | Current README completeness and accuracy |
If a README already exists, evaluate it against the quality checklist (see below). Identify:
Present findings to the user as a brief assessment before rewriting.
Generate the README using the structure below. Adapt sections to the project type — not every project needs every section. A 50-line CLI tool doesn't need an architecture diagram.
Use this as the reference structure. Include sections that apply; skip those that don't.
# Project Name
[](license-url)
[](ci-url)
[](package-url)
A single sentence (or short paragraph) explaining what this project does in plain language. No jargon. A non-technical person should understand the gist.
A short bullet list (3–7 items) of what makes this project useful or unique. Only list features that actually exist in the codebase.
The fastest path from zero to working. Should be copy-pasteable.
## Quick Start
\```bash
git clone <repo-url>
cd <project>
npm install
npm run dev
\```
Detailed installation instructions. May overlap with Quick Start for simple projects.
How to actually use the project after installation.
Document all configuration options:
If an .env.example exists, reference it and explain each variable.
| Variable | Description | Default | Required |
|----------|-------------|---------|----------|
| `DATABASE_URL` | PostgreSQL connection string | — | Yes |
| `PORT` | Server port | `3000` | No |
A simplified directory tree showing the most important files/folders. Useful for medium-to-large projects. Keep it under 20 lines.
## Project Structure
\```
├── src/
│ ├── index.ts # Entry point
│ ├── routes/ # API route handlers
│ └── models/ # Database models
├── tests/ # Test suite
├── docker-compose.yml # Local development stack
└── package.json
\```
docs/ folder or external siteHow to contribute as a developer:
A brief list of the main technologies used. Useful for larger projects.
Link to issues/milestones or list planned features. Only if the project actively maintains one.
State the license and link to the LICENSE file.
## License
This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.
Credit major dependencies, inspiration, or contributors.
After writing the README, verify every item:
.env.example or code referencesbash, python, etc.)Not all READMEs are equal. Adapt based on what the project is:
These are common README mistakes. Never do these:
npm run deploy if it doesn't exist in package.jsonThe final output should be:
Always write the README as a file (not just in chat) so the user can review and use it directly.
When reviewing an existing README, present findings like this:
## README Assessment
**Overall**: The README covers basics but has gaps that would frustrate a new contributor.
### ✅ What's Good
- Clear project description
- License section present
### ⚠️ Issues Found
- Install instructions reference `yarn` but the lock file is `pnpm-lock.yaml`
- Missing: environment variable documentation (project uses 8 env vars)
- `npm run test` is listed but the actual script is `npm run test:unit`
- No quick-start section — takes 4 scrolls to find how to run locally
### 📋 Sections to Add
- Quick Start
- Configuration / Environment Variables
- Project Structure (15+ directories with no map)
Shall I proceed with the rewrite?
tools
# pi-a2a Long-Running Tasks Skill ## Overview The pi-a2a extension supports **long-running tasks** that can execute for hours or days without timeouts. This is essential for: - Data processing pipelines - Batch operations - Research and aggregation tasks - External API jobs with unpredictable duration - Any A2A task that exceeds the standard timeout ## When to Use **Use long-running tasks when:** - Task execution time is unpredictable or known to exceed 10 minutes - The remote agent is proc
development
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
testing
Review UI designs and implementations for accessibility, consistency, usability, and visual quality. Use when asked to review a design, audit accessibility, check UI consistency, compare implementation against mockups, or evaluate a user interface.
tools
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".