{"id":43368854,"url":"https://github.com/jacobpevans/claude-code-plugins","last_synced_at":"2026-05-24T18:01:22.561Z","repository":{"id":331302644,"uuid":"1126089957","full_name":"JacobPEvans/claude-code-plugins","owner":"JacobPEvans","description":"My custom claude code (hopefully agentsmd soon) plugins for when I've scoured the interwebs and all the existing CC marketplaces but couldn't find anything good enough.","archived":false,"fork":false,"pushed_at":"2026-04-01T12:17:00.000Z","size":602,"stargazers_count":2,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-01T22:15:36.789Z","etag":null,"topics":["ai-tools","anthropic","automation","claude","claude-code","claude-plugins","development-tools","hooks","marketplace","plugins","validation","webfetch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JacobPEvans.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-01T04:35:26.000Z","updated_at":"2026-04-01T12:16:50.000Z","dependencies_parsed_at":"2026-02-02T06:00:17.562Z","dependency_job_id":null,"html_url":"https://github.com/JacobPEvans/claude-code-plugins","commit_stats":null,"previous_names":["jacobpevans/claude-code-plugins"],"tags_count":24,"template":false,"template_full_name":"JacobPEvans/.github","purl":"pkg:github/JacobPEvans/claude-code-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobPEvans%2Fclaude-code-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobPEvans%2Fclaude-code-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobPEvans%2Fclaude-code-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobPEvans%2Fclaude-code-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobPEvans","download_url":"https://codeload.github.com/JacobPEvans/claude-code-plugins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobPEvans%2Fclaude-code-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31511784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tools","anthropic","automation","claude","claude-code","claude-plugins","development-tools","hooks","marketplace","plugins","validation","webfetch"],"created_at":"2026-02-02T05:09:58.982Z","updated_at":"2026-04-07T12:01:21.212Z","avatar_url":"https://github.com/JacobPEvans.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Plugins\n\nA collection of Claude Code plugins for enhanced development workflows with AI assistants.\n\n## Available Plugins\n\n### ai-delegation\n\nDelegate tasks to external AI models and run autonomous maintenance loops.\n\n- **Type**: Skill-based plugin\n- **Skills**: `/delegate-to-ai`, `/auto-maintain`\n- **Purpose**: Route tasks to Gemini, local Ollama, or other models via PAL MCP\n\n### codeql-resolver\n\nSystematic CodeQL alert analysis and resolution for GitHub Actions workflows.\n\n- **Type**: Command/Skill/Agent-based plugin\n- **Command**: `/resolve-codeql`\n- **Purpose**: Resolve CodeQL security alerts in GitHub Actions workflows\n\n### config-management\n\nSync AI tool permissions across repos and quickly add always-allow permissions.\n\n- **Type**: Skill-based plugin\n- **Skills**: `/sync-permissions`, `/quick-add-permission`\n- **Purpose**: Manage Claude and Gemini permission configs across repositories\n\n### content-guards\n\nCombined content validation and guard plugin.\n\n- **Type**: Pre/PostToolUse hook\n- **Tools**: Bash, Write, Edit\n- **Purpose**: Token limits, markdown/README validation, webfetch guard, issue/PR rate limiting\n\n### git-guards\n\nCombined git security and workflow protection via PreToolUse hooks.\n\n- **Type**: PreToolUse hook\n- **Tools**: Bash, Edit, Write, NotebookEdit\n- **Purpose**: Blocks dangerous git/gh commands and file edits on main branch\n\n### git-workflows\n\nGit main branch sync, repository refresh, and PR merge workflows.\n\n- **Type**: Command/Skill-based plugin\n- **Skills**: `/sync-main`, `/refresh-repo`, `/rebase-pr`, `/wrap-up`, `/troubleshoot-rebase`, `/troubleshoot-precommit`, `/troubleshoot-worktree`\n- **Purpose**: Maintain linear git history and keep branches in sync\n\n### github-workflows\n\nPR finalization, squash-merge, review thread resolution, and issue shaping.\n\n- **Type**: Command/Skill-based plugin\n- **Skills**: `/finalize-pr`, `/squash-merge-pr`, `/resolve-pr-threads`, `/shape-issues`, `/trigger-ai-reviews`\n- **Purpose**: GitHub PR/issue management workflows\n\n### infra-orchestration\n\nCross-repo infrastructure orchestration for Terraform and Ansible workflows.\n\n- **Type**: Skill-based plugin\n- **Skills**: `/orchestrate-infra`, `/sync-inventory`, `/test-e2e`\n- **Purpose**: Coordinate infrastructure changes across multiple repositories\n\n### Standards Plugins\n\nOn-demand skill-based plugins that load specific standards as context.\n\n| Plugin | Skills | Coverage |\n|--------|--------|----------|\n| **code-standards** | `/code-quality-standards`, `/review-standards` | Code quality, documentation, testing, review guidelines |\n| **git-standards** | `/git-workflow-standards`, `/pr-standards` | Branching, PR creation, issue linking |\n| **infra-standards** | `/infrastructure-standards` | Proxmox, Terraform, Ansible deployment |\n| **project-standards** | `/agentsmd-authoring`, `/workspace-standards`, `/skills-registry` | AgentsMD authoring, workspace, skills registry |\n\n### pal-health\n\nWarns on session start if PAL MCP had a recent Doppler auth failure.\n\n- **Type**: SessionStart hook\n\n### process-cleanup\n\nCleanup orphaned MCP server processes on session exit.\n\n- **Type**: PostToolUse hook\n- **Purpose**: Workaround for upstream MCP orphan-process bug (#1935)\n\n### session-analytics\n\nClaude Code session token analytics via Splunk OTEL telemetry.\n\n- **Type**: Skill-based plugin\n- **Skills**: `/token-breakdown`\n- **Purpose**: Per-model token breakdown, tool call costs, cache efficiency, burn rate timeline\n\n## Installation\n\n### From Marketplace\n\n```bash\nclaude plugins add jacobpevans-cc-plugins/\u003cplugin-name\u003e\n```\n\n**Available plugins**:\n\n- `jacobpevans-cc-plugins/ai-delegation`\n- `jacobpevans-cc-plugins/code-standards`\n- `jacobpevans-cc-plugins/codeql-resolver`\n- `jacobpevans-cc-plugins/config-management`\n- `jacobpevans-cc-plugins/content-guards`\n- `jacobpevans-cc-plugins/git-guards`\n- `jacobpevans-cc-plugins/git-standards`\n- `jacobpevans-cc-plugins/git-workflows`\n- `jacobpevans-cc-plugins/github-workflows`\n- `jacobpevans-cc-plugins/infra-orchestration`\n- `jacobpevans-cc-plugins/infra-standards`\n- `jacobpevans-cc-plugins/pal-health`\n- `jacobpevans-cc-plugins/process-cleanup`\n- `jacobpevans-cc-plugins/project-standards`\n- `jacobpevans-cc-plugins/session-analytics`\n\n### Local Development\n\nClone this repository and link plugins:\n\n```bash\ngit clone https://github.com/JacobPEvans/claude-code-plugins.git\ncd claude-code-plugins\nclaude plugins link ./ai-delegation\nclaude plugins link ./code-standards\nclaude plugins link ./codeql-resolver\nclaude plugins link ./config-management\nclaude plugins link ./content-guards\nclaude plugins link ./git-guards\nclaude plugins link ./git-standards\nclaude plugins link ./git-workflows\nclaude plugins link ./github-workflows\nclaude plugins link ./infra-orchestration\nclaude plugins link ./infra-standards\nclaude plugins link ./pal-health\nclaude plugins link ./process-cleanup\nclaude plugins link ./project-standards\nclaude plugins link ./session-analytics\n```\n\n## Usage\n\nPlugins activate automatically after installation. Hook-based plugins (git-guards,\ncontent-guards, pr-lifecycle, process-cleanup) intercept tool calls with no manual\ninvocation. Skill-based plugins provide slash commands:\n\n```text\n/ship                     # Full automation: commit, push, PR, finalize\n/finalize-pr              # Drive PR to merge-ready state\n/squash-merge-pr          # Validate and squash merge\n/refresh-repo             # Sync main, check PRs, cleanup worktrees\n/wrap-up                  # Post-merge cleanup + retrospective\n/resolve-codeql           # Fix CodeQL security alerts\n/delegate-to-ai           # Route tasks to external AI models\n```\n\n## Architecture\n\nEach development lifecycle plugin includes an `ARCHITECTURE.md` with mermaid diagrams\nshowing cross-plugin integration. See\n[`github-workflows/ARCHITECTURE.md`](github-workflows/ARCHITECTURE.md) for the master\nship pipeline diagram covering the full PR lifecycle.\n\n## Plugin Structure\n\nEach plugin follows Claude Code official best practices. Most plugins use hook-based structure:\n\n```text\nplugin-name/\n├── .claude-plugin/\n│   └── plugin.json       # Plugin metadata\n├── hooks/\n│   └── hooks.json        # Hook configuration\n├── scripts/\n│   └── hook-script.py    # Implementation\n└── README.md             # Plugin documentation\n```\n\nCommand/skill-based plugins use a different structure:\n\n```text\nplugin-name/\n├── .claude-plugin/\n│   └── plugin.json       # Plugin metadata\n├── commands/\n│   └── command.md        # Command definition\n├── skills/\n│   └── skill-name/\n│       └── SKILL.md      # Skill documentation\n└── README.md             # Plugin documentation\n```\n\n## Contributing\n\nSee individual plugin READMEs for specific details. General contribution guidelines:\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/your-feature`\n3. Follow conventional commits: `feat(plugin): description`\n4. Sign your commits (GPG required)\n5. Submit a pull request\n\n## Development\n\n### Requirements\n\n- Claude Code CLI\n- Python 3.10+ (for hook scripts)\n- bats-core (for running tests)\n- Tool-specific dependencies (see individual plugin READMEs)\n\n### Testing Plugins Locally\n\n```bash\n# Link a plugin for testing\nclaude plugins link ./plugin-name\n\n# Verify it loaded\nclaude plugins list\n\n# Test functionality\n# (trigger the hook conditions for the specific plugin)\n```\n\n### Running Tests\n\nRun the shared test runner to execute all plugin tests:\n\n```bash\n# Run all tests\n./scripts/run-tests.sh\n\n# Run tests for a specific plugin\n./scripts/run-tests.sh content-guards\n\n# Alternative: run bats directly on a specific test file\nbats tests/content-guards/**/*.bats\n```\n\n### Git Hooks\n\nEnable optional pre-push hooks that run tests before pushing:\n\n```bash\n# Enable git hooks\ngit config core.hooksPath .githooks\n\n# Disable git hooks\ngit config --unset core.hooksPath\n```\n\n## Repository Integration\n\n### Nix Flake Auto-Update\n\nThis repository automatically triggers Nix flake updates when changes are merged to main.\nThis ensures downstream repositories (like [nix-config](https://github.com/JacobPEvans/nix))\nimmediately pull in plugin updates instead of waiting for scheduled updates.\n\n#### How It Works\n\n1. Changes merged to `main` branch trigger `.github/workflows/trigger-nix-update.yml`\n2. Workflow sends a `repository_dispatch` event to the nix repository\n3. Nix repository's `deps-update-flake.yml` workflow updates the `claude-code-plugins` flake input\n4. Automated PR created with the updated `flake.lock`\n\n#### Organization Secret Required\n\nThe trigger workflow requires a GitHub Personal Access Token (PAT) stored as an organization secret:\n\n**Secret Name**: `GH_PAT_WORKFLOW_DISPATCH`\n\n**Required Scopes**:\n\n- `repo` - Full control of private repositories\n- `workflow` - Update GitHub Action workflows\n\n**Setup Instructions**:\n\n1. Generate PAT: GitHub.com → Settings → Developer settings → Personal access tokens → Tokens (classic)\n2. Select required scopes: `repo` and `workflow`\n3. Set expiration to 1 year\n4. Copy the token\n5. Add as organization secret: Organization Settings → Secrets and variables → Actions → New organization secret\n6. Name: `GH_PAT_WORKFLOW_DISPATCH`\n7. Paste token value\n8. Select repository access (all repositories or specific repos)\n\n**Security Notes**:\n\n- Token has minimal scopes (no admin, no packages)\n- Rotate token annually before expiration\n- Never expose token in logs or workflow outputs\n- Organization-level secret is accessible to all repos\n\n#### Reusable Pattern\n\nThis pattern can be replicated to any JacobPEvans repository that's a flake input. Simply:\n\n1. Copy `.github/workflows/trigger-nix-update.yml` to the target repository\n2. Update the `flake_input_name` field to match the flake input name in `nix/flake.nix`\n3. No changes needed to the nix repository workflow (uses generic event type)\n\n## License\n\nApache License 2.0 - See [LICENSE](LICENSE) for details.\n\n## Author\n\nJacobPEvans\n\n- GitHub: [@JacobPEvans](https://github.com/JacobPEvans)\n- Email: \u003c20714140+JacobPEvans@users.noreply.github.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobpevans%2Fclaude-code-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobpevans%2Fclaude-code-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobpevans%2Fclaude-code-plugins/lists"}