A collection of Claude Code plugins for enhanced development workflows with AI assistants.
Local rebase-merge workflow for maintaining linear git history with signed commits.
- Type: Command/Skill-based plugin
- Command:
/rebase-pr - Purpose: Merge PRs using a local rebase workflow that preserves commit signatures
Intercepts WebFetch and WebSearch tool calls to enforce date awareness and block outdated year references.
- Type: PreToolUse hook
- Tools: WebFetch, WebSearch
- Purpose: Prevents Claude from using outdated search queries by blocking old year references
Validates markdown files after Write/Edit operations using industry-standard linting tools.
- Type: PostToolUse hook
- Tools: Write, Edit
- Linters: markdownlint-cli2, cspell
- Purpose: Ensures markdown quality and consistency
Enforces configurable token limits on files to prevent bloat and maintain focused modules.
- Type: PreToolUse hook
- Tools: Write, Edit
- Configuration:
.token-limits.yaml - Purpose: File size governance via token counting
Prevents GitHub issue backlog overflow by enforcing creation limits.
- Type: PreToolUse hook
- Tools: Bash (gh CLI)
- Limits: 50 total issues, 25 AI-created issues
- Purpose: Backlog management and quality control
claude plugins add jacobpevans-cc-plugins/<plugin-name>Available plugins:
jacobpevans-cc-plugins/git-rebase-workflowjacobpevans-cc-plugins/issue-limiterjacobpevans-cc-plugins/markdown-validatorjacobpevans-cc-plugins/token-validatorjacobpevans-cc-plugins/webfetch-guard
Clone this repository and link plugins:
git clone https://github.com/JacobPEvans/claude-code-plugins.git
cd claude-code-plugins
claude plugins link ./git-rebase-workflow
claude plugins link ./issue-limiter
claude plugins link ./markdown-validator
claude plugins link ./token-validator
claude plugins link ./webfetch-guardEach plugin follows Claude Code official best practices. Most plugins use hook-based structure:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── hooks/
│ └── hooks.json # Hook configuration
├── scripts/
│ └── hook-script.py # Implementation
└── README.md # Plugin documentation
Command/skill-based plugins use a different structure:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── commands/
│ └── command.md # Command definition
├── skills/
│ └── skill-name/
│ └── SKILL.md # Skill documentation
└── README.md # Plugin documentation
See individual plugin READMEs for specific details. General contribution guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Follow conventional commits:
feat(plugin): description - Sign your commits (GPG required)
- Submit a pull request
- Claude Code CLI
- Python 3.10+ (for hook scripts)
- Tool-specific dependencies (see individual plugin READMEs)
# Link a plugin for testing
claude plugins link ./plugin-name
# Verify it loaded
claude plugins list
# Test functionality
# (trigger the hook conditions for the specific plugin)This repository automatically triggers Nix flake updates when changes are merged to main. This ensures downstream repositories (like nix-config) immediately pull in plugin updates instead of waiting for scheduled updates.
- Changes merged to
mainbranch trigger.github/workflows/trigger-nix-update.yml - Workflow sends a
repository_dispatchevent to the nix repository - Nix repository's
deps-update-flake.ymlworkflow updates theclaude-code-pluginsflake input - Automated PR created with the updated
flake.lock
The trigger workflow requires a GitHub Personal Access Token (PAT) stored as an organization secret:
Secret Name: GH_PAT_WORKFLOW_DISPATCH
Required Scopes:
repo- Full control of private repositoriesworkflow- Update GitHub Action workflows
Setup Instructions:
- Generate PAT: GitHub.com → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Select required scopes:
repoandworkflow - Set expiration to 1 year
- Copy the token
- Add as organization secret: Organization Settings → Secrets and variables → Actions → New organization secret
- Name:
GH_PAT_WORKFLOW_DISPATCH - Paste token value
- Select repository access (all repositories or specific repos)
Security Notes:
- Token has minimal scopes (no admin, no packages)
- Rotate token annually before expiration
- Never expose token in logs or workflow outputs
- Organization-level secret is accessible to all repos
This pattern can be replicated to any JacobPEvans repository that's a flake input. Simply:
- Copy
.github/workflows/trigger-nix-update.ymlto the target repository - Update the
flake_input_namefield to match the flake input name innix/flake.nix - No changes needed to the nix repository workflow (uses generic event type)
Apache License 2.0 - See LICENSE for details.
JacobPEvans
- GitHub: @JacobPEvans
- Email: 20714140+JacobPEvans@users.noreply.github.com