Write commit messages that say why, not just what.
TL;DR:
git add -p && /commit-narrator→ a conventional-commit message with a real rationale, not "fix stuff".
Most "AI commit message" tools paraphrase the diff back at you. That's noise. A good commit message answers why the change was made, grounded in what the diff actually proves. This plugin runs a deterministic Python helper to classify the change and assemble the skeleton, and then leaves Claude to fill in the rationale from the diff itself — no LLM guesses about your repo's intent.
git clone https://github.com/mturac/pluginpool-commit-narrator ~/.claude/plugins/commit-narratorRestart Claude Code; the slash command /commit-narrator appears.
git add -p
/commit-narratorOr invoke the helper directly:
git diff --staged | python3 scripts/narrate.py --diff -
python3 scripts/narrate.py --format json| Flag | Default | Description |
|---|---|---|
--diff PATH / - |
git diff --cached |
Read diff from path or stdin |
--format |
text |
text or json |
feat(api): add login throttle
Changed files:
- src/api/auth.py
- tests/test_auth.py
Throttle prevents brute-force enumeration on the /login endpoint by
rate-limiting on (ip, email) — the abuse pattern surfaced in the
2026-Q2 incident review.
- Reads the staged diff (or a path you give it).
- Classifies the change type —
feat / fix / refactor / docs / test / chore / perf— using path patterns and patch-hunk heuristics. - Derives a scope from the most-touched top-level directory.
- Emits a conventional-commit subject plus a body listing changed files and a placeholder
WHYline. - Claude reads the helper's output and the diff, then replaces the placeholder with rationale that the diff actually supports.
- Heuristics are intentionally conservative. You'll get
chorefor messy mixed diffs — that's a signal to split the commit, not a bug. - The helper itself never calls a network service; only the slash command's Claude pass adds language.
Step-by-step walkthroughs with real input fixtures and the helper's actual output live in examples/. Three or four scenarios per plugin — from the happy path to the edge cases the test suite guards.
Ten focused Claude Code plugins for everyday productivity: commit-narrator · pr-storyteller · test-gap · deps-doctor · env-lint · secret-guard · standup-gen · todo-harvest · flaky-detector · changelog-forge
MIT — see LICENSE. Contributions welcome.