Update or create README.md for the current repository. Inspects the repo, extracts verified facts, preserves strong user-written content, and produces a README that helps a new reader succeed quickly without inventing details. Triggers on "update the readme", "improve the readme", "create a readme", "document this repo", or "update-readme". Do NOT use for non-README docs.
Generate or update README.md from repository evidence, not conventions.
pwdfind . -maxdepth 3 -not -path '*/.git/*' -not -path '*/node_modules/*' -not -path '*/__pycache__/*' -not -path '*/venv/*' -not -path '*/.venv/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/target/*' -not -path '*/.next/*' -not -path '*/coverage/*' 2>/dev/null | sort | head -80find . -maxdepth 2 -type f \( -name "package.json" -o -name "pyproject.toml" -o -name "Cargo.toml" -o -name "go.mod" -o -name "Makefile" -o -name "justfile" -o -name "Taskfile.yml" -o -name "setup.py" -o -name "setup.cfg" -o -name "requirements*.txt" -o -name "Dockerfile*" -o -name "docker-compose*.yml" -o -name "CMakeLists.txt" \) 2>/dev/null | grep -v node_modules | head -20awk '/^#/{print}' README.md 2>/dev/null | head -40 || echo "No README.md found"head -50 CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"head -50 AGENTS.md 2>/dev/null || echo "No AGENTS.md found"git remote -v 2>/dev/null | head -2Never invent facts. Every command, path, and claim in the README must be verified against the repository. If something is important but cannot be verified, omit it or ask the user.
Scope: This skill targets the root README.md unless the user specifies a different path.
Before writing, build a fact table by reading files in this order:
description fields in manifests. These often contain the best human-written summary.bin entries. These define what users interact with.Evidence ranking: Package scripts, Make/just targets, CI workflows, executable entrypoints, and tests are stronger evidence than naming conventions or folder structure.
Determine the project type — use the strongest repository signals to decide which sections belong:
Use this as a heuristic, not a template.
Stop when you can answer: What does this project do? Who is it for? How do you install, configure, and use it? What should the reader not assume?
Before writing, decide:
When creating a new README:
Let the project dictate the shape. Every README must answer:
Include only if relevant: architecture diagrams (ASCII in ```text blocks), API reference, development setup, license.
When updating an existing README:
Style rules:
your-project or <placeholder>After writing, spot-check:
Fix any issues before finishing.