mirror of
https://github.com/alirezarezvani/claude-skills.git
synced 2026-08-28 04:24:58 +00:00
Issue #686 was the second round of the same Claude Code path-validator tightening: v2.1.107 rejected bare "./" (fixed in #539 by moving to "./skills"), then v2.1.133 also rejected "./skills". The validator that codified the #539 fix was still recommending "./skills" verbatim — so a future round 3 would have hit the same trap. This commit makes the validator catch the regression and runs it in CI: - scripts/check_plugin_json.py - Reject any "skills" string starting with "./" (catches both "./skills" and "./skills/sub" patterns) - Update docstring + error message to point at the layout-correct forms instead of the now-broken "./skills" - Recognize "source" and "attribution" as approved extension fields (already documented in CLAUDE.md but not in the validator), so the 21 pre-existing false-positives go away and CI can run blocking - Drop the "./" rejection inside arrays — CLAUDE.md says ["./"] is the correct single-skill-at-root form - .github/workflows/ci-quality-gate.yml - Add blocking "Validate plugin.json manifests" step that runs the validator on every PR - CLAUDE.md - Add an Enforcement note pointing at the validator and the lockstep rule: when CC tightens its path validator again, update validator rules and CLAUDE.md together Verified: 69/69 manifests pass; 6-case smoke test confirms validator rejects all three known-broken forms ("./skills", "./", "./skills/sub") and accepts all three documented-valid forms ("skills", ["./"], explicit array). Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ISSUE_TEMPLATE | ||
| workflows | ||
| AUTOMATION_SETUP.md | ||
| AUTOMATION_TEST.md | ||
| branch-protection-config.json | ||
| commit-template.txt | ||
| FUNDING.yml | ||
| PULL_REQUEST_TEMPLATE.md | ||
| WORKFLOW_KILLSWITCH | ||