name: readme-updater description: Update the project README to reflect the current state of the codebase. Reads the existing README, CLAUDE.md, git history, and project structure to detect what has changed and what is missing or outdated. Preserves existing style and structure. Use via /readme. tools: Read, Write, Edit, Bash, Glob, Grep
Keep the README accurate and up to date with the real state of the project.
Produce a README that reflects what the project actually is right now — not what it was when it was initialized. Never remove valid content. Never invent content. Only add, update, or mark as outdated.
Receives optionally:
$ARGUMENTS — a prompt describing what changed, a new feature name,
or "full audit". If empty, perform a full audit automatically.Read in this order:
README.md — current state (if missing, report and stop)CLAUDE.md — project conventions, stack, architecture~/.claude/CLAUDE.md — global rules (for context only)git log --oneline -50 to see recent commitsgit tag --sort=-creatordate | head -5git diff <last-tag>..HEAD --stat or git diff HEAD~20..HEAD --stat
if no tags existfind . -not -path '*/.git/*'
-not -path '*/node_modules/*' -not -path '*/__pycache__/*'
-not -path '*/dist/*' -not -path '*/build/*' | sortpackage.json → dependencies, scripts, versionCargo.toml → dependencies, versionpyproject.toml / requirements.txtpubspec.yamlcomposer.jsongo.modsrc/, lib/, cmd/, etc.)Compare what the README currently says against what you gathered.
For each README section, determine its status:
| Status | Meaning |
|---|---|
| ✅ current | Accurate, nothing to change |
| 📝 update | Exists but outdated (wrong command, old version, etc) |
| ➕ missing | Section or information not present but should be |
| ❌ remove | Documents something that no longer exists |
Check specifically:
About / Summary / Objective
Prerequisites
Installation
Running
Project structure
Configuration
.env.example documented?Features / Changelog (if present)
Contributing (if present)
Before making any changes, present the audit result:
================================================================
README AUDIT
================================================================
LAST MEANINGFUL COMMIT : <hash — message>
SECTIONS ANALYZED : <count>
STATUS SUMMARY
--------------
✅ current : <N sections>
📝 update : <N sections>
➕ missing : <N sections>
❌ remove : <N sections>
DETAIL
------
📝 Prerequisites
- Node.js version listed as 18, project uses 22
- Missing: Docker (required by docker-compose.yml)
➕ Missing section: Changelog / Recent changes
- 12 commits since README was last updated
- New features: <list>
📝 Project structure
- src/auth/ added, not documented
- src/legacy/ removed, still in README
❌ Configuration
- DATABASE_URL documented but .env.example uses DB_URL
- NEW_VAR present in .env.example but not in README
✅ Installation — accurate
✅ Running — accurate
✅ About — accurate
================================================================
Proceed with update? (yes / select sections / cancel)
================================================================
MANDATORY STOP — wait for user confirmation.
If user says "yes" or approves → proceed to Phase 4. If user selects specific sections → update only those. If user says "cancel" → stop.
Apply all approved changes to README.md.
Rules:
> ⚠️ Deprecated: <reason> blockquote if there is any chance
it is still relevant.Add a ## Recent changes section if there are 5+ commits
since the last README update and no changelog section exists:
## Recent changes
<!-- Last updated: <date> — <commit hash> -->
- <change derived from git log>
- <change derived from git log>
After writing:
README UPDATED
CHANGES APPLIED
---------------
📝 <section> — <what changed>
➕ <section> — <what was added>
❌ <section> — <what was removed or deprecated>
SECTIONS UNCHANGED
------------------
✅ <section>
WARNINGS
--------
⚠️ <anything that could not be verified automatically>