From claude-plugins-validation
Audit and fix plugin/marketplace repos to match CPV standards. Use when standardizing or auditing repo structure. Loaded by plugin-creator agent.
npx claudepluginhub emasoft/emasoft-plugins --plugin claude-plugins-validationThis skill uses the workspace's default tool permissions.
Audits existing plugin or marketplace repositories against CPV standards and auto-fixes missing files, workflows, and hooks.
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.
Audits existing plugin or marketplace repositories against CPV standards and auto-fixes missing files, workflows, and hooks.
uv on PATHAudit a Plugin:
uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" standardize <plugin-path> [--report report.md]
Checks: 190+ validation rules, pipeline readiness, file inventory, .gitignore, README badges.
Fix a Plugin (generates missing files, does NOT modify existing code):
uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" standardize <plugin-path> --fix [--dry-run]
After --fix, manually fix remaining issues:
skills/canonical-pipeline/references/detailed-standard.md "Empirical Validation Rules":
agents field with folder paths → list specific .md files insteadhooks: "./hooks/hooks.json" → remove the field (default file auto-loads) or point at non-default pathplugin.json and marketplace.json exist at the repo root):
plugin.json.name ≠ marketplace self-entry name → align bothplugin.json.version ≠ marketplace self-entry version → align (publish.py should bump both atomically)"./" → set to "./"fix-validation skill's pipeline-migration.md for the full conversion recipes:
Copy this checklist and track your progress:
--fix applied/cpv-upgrade-plugin): the 82-check matrix in references/canonical-pipeline-migration-checklist.md returns exit 0 (every BLOCKER + MAJOR passes), AND a real publish.py --patch + gh run watch --exit-status returned green CI on the resulting tag. See agents/plugin-fixer.md "Pre-completion verification (REQUIRED)". Closes issue #21 ask #1.uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" standardize_marketplace <path> [--fix] [--dry-run]
--fix: generated files (workflows, hooks, cliff.toml, .python-version, badge markers)--fix is expected if warnings remain| Error | Resolution |
|---|---|
standardize exit code 1 | Expected after --fix if warnings remain — fix manually |
Missing plugin.json | Target is not a plugin — check path |
ModuleNotFoundError: yaml | Use uv run --with pyyaml python |
Audit:
uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" standardize ./my-plugin/
Fix and re-validate:
uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" standardize ./my-plugin/ --fix
uv run --with pyyaml python "${CLAUDE_PLUGIN_ROOT}/scripts/remote_validation.py" plugin ./my-plugin/ --strict
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
Use mcp__plugin_llm-externalizer_llm-externalizer__* tools for bounded analysis. Pass file paths via input_files_paths.