| name | update-readme |
| description | Use after adding, renaming, or removing an MCP tool or prompt. Ensures README, CHANGELOG, and version numbers stay in sync with the actual code surface. The hard rule from .claude/rules/maintenance.md. |
Keeping README & CHANGELOG in sync
If you changed the MCP tool surface, you MUST update:
Checklist
What goes where
| Surface | README | CHANGELOG | tests required |
|---|
| New MCP tool | ✅ tool table | ✅ "Added" | ✅ matching test/.test.ts |
| New MCP prompt | ✅ prompts table | ✅ "Added" | optional (testing prompts is awkward) |
New edit_project op | ❌ (inside tool description) | ✅ "Added" | ✅ test case |
| Tool description tweak | ❌ | ❌ | — |
| Internal refactor | ❌ | ✅ "Internal" | maintain existing tests |
| Bug fix in catalog parser | ❌ | ✅ "Fixed" | ideally add regression test |
Quick template — CHANGELOG entry
## [X.Y.Z] — YYYY-MM-DD
### Added
- **`tool_name`**: one sentence on what it does + when to use.
- ...
### Fixed
- `<area>`: root cause + visible effect.
### Internal
- Refactored X to Y.
When to skip
If your change is truly invisible (a comment, a test refactor that doesn't
add coverage), no updates needed. Otherwise, the discipline applies.
Verify before committing
npm run check
npm run build
grep -E "^server\.tool" -r src/tools src/index.ts | wc -l
grep -c "^| \`" README.md
If the tool count doesn't match the README pipe-table rows, something
needs updating.