Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

4 Commits

Repository files navigation

pluginpool — ten focused Claude Code plugins

pluginpool

Ten focused Claude Code plugins for everyday developer productivity.

License: MITPlugins: 10Tests: 89 passingPython: stdlib onlyStatus: stable

Ten tiny, deterministic Python helpers wrapped as Claude Code slash commands. Each one tackles a single real-world productivity pain. No magic. No pip install. Hermetic tests. MIT.


What's inside

#PluginWhat it doesTests
1commit-narratorSemantic commit message from git diff --cached, including the why8
2pr-storytellerPR title + body + test plan from commits and diff vs base branch6
3test-gapLines in your diff lacking test coverage (Cobertura / lcov / coverage.json)9
4deps-doctorMulti-ecosystem dependency audit (npm, pip, cargo, go) — one report8
5env-lint.env vs .env.example key parity — never prints values7
6secret-guardPre-commit secret scanner: pattern + entropy, redacted output10
7standup-genDaily standup notes from git activity across one or many repos8
8todo-harvestTODO/FIXME/HACK scan with git blame author + age9
9flaky-detectorRun a test command N times, report per-test flakiness %11
10changelog-forgeConventional commits → CHANGELOG section + semver bump suggestion13

89 hermetic tests across the suite. All green.


Why this exists

Most "developer productivity" tooling sells you on a magic black box and asks you to trust the output. That's the wrong shape for tools you run dozens of times a day. These plugins are the opposite:

  • Deterministic helpers. Each plugin's core is a small Python script that does exactly one thing and emits structured output you can audit.
  • Claude Code is the runtime, not the brain. The slash command makes the helper easy to invoke; Claude reasons over the output. You can always run the helper without Claude and get the same data.
  • No pip install to use a plugin. Python 3 standard library only at runtime.
  • Hermetic tests. Every test that touches git builds its own temp repo with explicit identity. No network. No leakage.
  • Each plugin is its own repo. Install one. Install all. Vendor what you want.

Installing one plugin

git clone https://github.com/mturac/pluginpool-<plugin-name>~/.claude/plugins/<plugin-name>

Restart Claude Code; the slash command /<plugin-name> appears under /help.

Installing them all

forpin commit-narrator pr-storyteller test-gap deps-doctor env-lint \
secret-guard standup-gen todo-harvest flaky-detector changelog-forge;do
git clone "https://github.com/mturac/pluginpool-$p""$HOME/.claude/plugins/$p"done

Using a helper standalone (no Claude Code required)

Every helper has a plain CLI. For example:

cd~/.claude/plugins/commit-narrator
git -C ~/your/repo diff --staged | python3 scripts/narrate.py --diff - --format json

This is how the test suites exercise the helpers — and how you can wire any of them into CI.


Anatomy of a plugin

<plugin>/
├── .claude-plugin/
│ └── plugin.json # name, version, description, author
├── commands/
│ └── <plugin>.md # slash command (YAML frontmatter + body)
├── scripts/
│ └── <helper>.py # Python 3 stdlib-only CLI
├── tests/
│ ├── test_<helper>.py # hermetic pytest suite
│ └── fixtures/ # synthetic fixtures (where applicable)
├── examples/
│ └── README.md # copy-pasteable input → output simulations
├── Makefile # `make test`
├── LICENSE # MIT
├── .gitignore
└── README.md

Everything is intentionally small. The biggest helper (flaky.py) is ~240 lines. The smallest (envlint.py) is ~70.


Tests

Per-plugin:

cd<plugin>
make test# or
python3 -m pytest tests/ -v

Full sweep across all 10 plugins (run from a directory that contains all of them as siblings):

forpin commit-narrator pr-storyteller test-gap deps-doctor env-lint \
secret-guard standup-gen todo-harvest flaky-detector changelog-forge;do
(cd "$p"&& python3 -m pytest tests/ -q --no-header)
done

You should see ten lines like 8 passed in 1.45s summing to 89.


Quality

Each plugin had a multi-pass code review with regression tests for every issue found. Notable invariants enforced by the suite:

  • No shell=True, no eval, no exec in any helper (grep -r clean).
  • env-lint writes a fake value SUPERSECRETVALUE123 into a temp .env during its tests and asserts that string never appears in JSON or markdown output. Redaction is a tested property, not a comment.
  • secret-guard asserts that every finding's raw matched string is absent from output — the redaction (rule + first 4 chars + …) is verified per pattern.
  • test-gap explicitly distinguishes "no coverage report present" from "100% covered" — a missing report yields a non-zero exit and a clear warning, never a silent green.
  • deps-doctor treats missing audit tools as "skipped: tool not installed" — never silently green.
  • flaky-detector parses both pytest -v per-test lines and pytest -q tail-summary lines, and exits non-zero with a warning if neither produced parseable output.

License

Each plugin ships under MIT. See the LICENSE file inside each plugin directory.


Writing

LinkedIn

Dev.to


Repo index

About

Ten focused Claude Code plugins for everyday developer productivity — index repo.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors