From claude-plugins-validation
Create and configure Claude Code plugin GitHub repositories with CI/CD, hooks, and marketplace notification. Use when setting up a new plugin repo. Loaded by plugin-creator agent.
npx claudepluginhub emasoft/emasoft-plugins --plugin claude-plugins-validationThis skill is limited to using the following tools:
Creates a Claude Code plugin GitHub repo with CI/CD, git hooks, and marketplace notification.
Suggests manual /compact at logical task boundaries in long Claude Code sessions and multi-phase tasks to avoid arbitrary auto-compaction losses.
Share bugs, ideas, or general feedback.
Creates a Claude Code plugin GitHub repo with CI/CD, git hooks, and marketplace notification.
gh CLI authenticated, git, uv, and uvx on PATHrepo scope (optional, for marketplace)Note: the CPV validator is fetched remotely from GitHub via uvx. Downstream
plugins do NOT vendor scripts/validate_plugin.py — the canonical pipeline
runs cpv-remote-validate plugin . --strict which pulls the current CPV
release automatically.
gh repo create <owner>/<name> --public --clone, then cd into it"./". Both manifests share the same name and version.ci.yml and release.yml from plugin-workflows. Skip notify-marketplace.yml for Layout B/C (no separate marketplace repo).uv run python scripts/publish.py --install-hookuv run python scripts/set_marketplace_pat.py <owner>/<repo>. Skip for B/C.uvx --from git+https://github.com/Emasoft/claude-plugins-validation --with pyyaml cpv-remote-validate plugin . --strict. Layout C also runs validate_marketplace.py --strict for name/version sync.mainCopy this checklist and track your progress:
Report: repo URL, VALID/INVALID + severity counts, installed workflows/hooks, skipped steps.
| Error | Resolution |
|---|---|
gh auth fails | gh auth login and retry |
| Repo exists | Ask user: clone or new name |
| Unfilled placeholders | Re-read templates, fill <placeholder-for-...> values |
| INVALID validation | Fix ALL issues (CRITICAL, MAJOR, MINOR, NIT), re-validate |
| No PAT | Skip marketplace, warn user |
Input: Plugin: my-plugin | Owner: my-org
Output: [DONE] Repo: github.com/my-org/my-plugin | VALID | Hooks: pre-push | Marketplace: ok
plugin.json Template · pyproject.toml Template · .gitignore Template · README.md Template · Placeholder Reference
ci.yml -- Consolidated CI (lint + validate + test) · release.yml -- GitHub Release on Tag · notify-marketplace.yml -- Marketplace Notification · Placeholder Reference · Setup Instructions
pre-push Hook Template · publish.py Pipeline Template · setup-hooks.py Template · Placeholder Reference
When to Add a Build Phase · build-binaries.yml — Cross-Platform Compilation Workflow · Binary Distribution Pattern · Platform Detection Wrapper · Extending the Python Pre-Push Hook · Extending publish.py for Binary Builds · Extending ci.yml for Binary Builds · Cargo Release Profile (Rust Optimization)
Pre-Push Hook: The Quality Gate · Fix-All Mandate · Running CPV Scripts · Processing Validation Output · GitHub Secrets · CI Workflow Dependencies · Marketplace Notification · All Scripts Are Python · Binary Plugins · README Requirements · Pre-Publish Local Dry-Run · Post-Push CI Verification · Mega-Linter Configuration · Common Fixes Reference
Monitor tool · userConfig (plugin.json) · channels (plugin.json) · CLAUDE_PLUGIN_OPTION_ env vars · Inline marketplace (settings.json) · managed-settings.d/ drop-in directory · Plugin skill
namefield (v2.1.98)
Use LLM Externalizer MCP for template analysis to save context tokens.