By bcmcpher
Testing and code quality toolkit: TDD and retrofit-tests skills for writing tests; code-reviewer, pr-test-analyzer, code-simplifier, comment-analyzer, silent-failure-hunter, and type-design-analyzer agents for pre-commit review; and a /code-check command to orchestrate them.
Review code for correctness, bugs, and project-guideline compliance. Use this agent proactively after writing or modifying code — especially before committing or creating a PR. Delegate to this agent when the user asks "review this code", "check my changes", "does this look right?", or "review before I commit". By default reviews unstaged changes from git diff; the caller may specify a different file set.
Analyze test coverage quality and completeness for a pull request or set of changes. Delegate to this agent when the user asks "are the tests thorough?", "check my test coverage", "review the tests in this PR", or "are there gaps in my tests?" — especially before marking a PR ready for review. Focuses on behavioral coverage and critical gaps, not line-coverage metrics.
Simplify and refine recently modified code for clarity, consistency, and maintainability while preserving all functionality. Use this agent after tests are green and code is working — during the Refactor phase of TDD, after implementing a feature, or before committing. Delegate when the user says "simplify this", "clean this up", "refactor for clarity", or "polish before commit". Focuses on recently modified code unless instructed otherwise.
Analyze code comments for accuracy, completeness, and long-term maintainability. Delegate to this agent after generating documentation comments or docstrings, before finalizing a PR that adds or modifies comments, or when reviewing existing comments for technical debt. Use when the user says "check my comments", "are these docstrings accurate?", "review my documentation", or "look for comment rot".
Audit error handling for silent failures, inadequate catch blocks, and unjustified fallback behavior. Delegate to this agent after implementing error handling, catch blocks, fallback logic, or any code that could suppress errors. Use when the user says "review my error handling", "check for silent failures", "audit my catch blocks", or when the diff contains try/catch, Result types, error callbacks, or fallback logic.
Add comprehensive unit tests to an existing source file using a focused, iterative workflow: plan full coverage first using boundary value analysis, then implement one unit at a time — pausing between units to keep context lean. Use this skill when the user wants to add tests to existing code, improve test coverage, test a module already written, or says "write tests for X", "add test coverage", "test this function", "generate unit tests for this file", or "/retrofit-tests". If the code doesn't exist yet and tests should drive the design, suggest /tdd instead.
Write new functions, classes, or modules using strict test-first TDD: define the contract, write one failing test, implement only enough code to pass, refactor, then repeat. Tests drive the design — the implementation follows the tests. Use this skill when starting from a spec or requirement, designing a new API through tests, or when the user says "write this test-first", "do TDD", "drive this with tests", or "/tdd". If the target code already exists, suggest /retrofit-tests instead.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Personal monorepo for developing Claude Code plugins — skills (slash commands), subagents,
hooks, and MCP server configs. Each plugin under plugins/ is independently installable.
# Test locally during development (session-only)
claude --plugin-dir ./plugins/<name>
# Install permanently (user scope)
claude plugin install ./plugins/<name>
# Install from GitHub (when a plugin has its own repo)
claude plugin install https://github.com/bcmcpher/<plugin-name>
| Plugin | Description |
|---|---|
| example-hello | Working example: /hello skill + greeter subagent |
| boutiques | /boutiques <cmd> [subcmd] — generate a Boutiques 0.5 JSON descriptor from --help output |
| testing | /tdd for test-first development; /retrofit-tests for adding coverage to existing code |
Start new tools by copying a template:
cp -r templates/skill plugins/my-new-skill
cp -r templates/agent plugins/my-new-agent
cp -r templates/plugin plugins/my-new-plugin
Then replace all PLUGIN_NAME, SKILL_NAME, AGENT_NAME placeholders with real names.
Each template includes a SETUP.md with detailed setup instructions — it's the first thing to read after copying and the last thing to replace with your own README.md.
| Template | Use when |
|---|---|
| templates/skill/ | Adding a slash command or auto-invoked instruction |
| templates/agent/ | Adding a specialized subagent with isolated context |
| templates/plugin/ | Full plugin: skills + agents + hooks + MCP server |
| If you want… | Use |
|---|---|
| A slash command or auto-triggered instruction set | templates/skill |
| A specialized subagent with its own context and policy | templates/agent |
| Both, plus hooks or MCP servers | templates/plugin |
Start with the smallest template that covers your need. You can always promote a skill to a full plugin later.
cp -r templates/skill plugins/my-new-skill # or agent / plugin
Then rename the placeholder directories inside:
mv plugins/my-new-skill/skills/SKILL_NAME plugins/my-new-skill/skills/my-new-skill
plugin.json)Open .claude-plugin/plugin.json and fill in every placeholder:
name — kebab-case slug, shown in listings and used internallydescription — one sentence; what does this plugin do?version — start at 0.1.0skills / agents — paths to your SKILL.md directories (update after renaming)Leave hooks and mcpConfig out of the manifest entirely if you're not using them.
For skills: the description frontmatter field is what Claude reads to decide when to auto-invoke the skill. Make it specific about the trigger condition and what the skill produces. The name field becomes the slash command (name: commit → /commit).
For agents: the description field is a delegation trigger — it describes when the main Claude should hand off work to this agent. The body of the file is the agent's system prompt; write it as a policy (purpose statement, explicit steps, hard constraints).
claude --plugin-dir ./plugins/my-new-skill
Inside the session, invoke your skill with /skill-name or describe a task that should trigger it. Edit SKILL.md, exit and relaunch to reload.
claude plugin install ./plugins/my-new-skill
Keep it in this monorepo while:
--plugin-dir path or GitHub subpathGraduate to a standalone repo when:
claude plugin install github.com/bcmcpher/<name># 1. Create the new repo and push the plugin contents (not the whole monorepo)
gh repo create bcmcpher/<plugin-name> --public --clone
cp -r plugins/<plugin-name>/. <plugin-name>/
cd <plugin-name> && git add . && git init && git commit -m "initial commit"
git remote add origin https://github.com/bcmcpher/<plugin-name>
git push -u origin main
Then in the new repo:
npx claudepluginhub bcmcpher/my-skills --plugin programming-toolsScaffold and configure new projects for use with Claude Code — project structure, environment setup, and Claude-specific tooling for coding tools, data analysis, and information management.
BIDS (Brain Imaging Data Structure) conventions — naming rules, entity ordering, sidecar fields, and dataset structure for neuroimaging datasets.
Generate a Boutiques JSON descriptor for a CLI tool by inspecting its --help output
Git workflow best practices and PR lifecycle commands for Claude Code sessions: when to use worktrees vs branches, commit conventions, parallel-agent coordination, conflict resolution, and slash commands for commit, push, PR creation, PR review, and branch cleanup.
Design and refactor repeated analysis scripts using five-layer architecture.
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Modern R development skills for Claude Code - tidyverse patterns, rlang metaprogramming, Bayesian inference, performance optimization, and more
Unity Development Toolkit - Expert agents for scripting/refactoring/optimization, script templates, and Agent Skills for Unity C# development
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.