claude-skills/scripts
Claude 8fd3155868
fix(plugin-schema): align with live Claude Code spec — migrate to "./"-prefixed skills field
Resolves #712 and #714.

Claude Code's plugin spec (code.claude.com/docs/en/plugins-reference) requires
"All paths must be relative to the plugin root and start with ./". CC 2.1.144+
rejects the bare "skills" form with `Validation errors: skills: Invalid input`,
breaking plugin installs from this repo.

Changes:
- 47 plugin.json manifests migrated from "skills": "skills" → ["./skills"]
  (canonical post-CC 2.1.144 form, also accepts string "./skills")
- scripts/check_plugin_json.py rewritten to enforce the live spec:
  * Hard-fails on non-"./"-prefixed strings (except the legacy "skills" literal)
  * Hard-fails on empty strings/arrays and non-string array entries
  * Emits WARN (non-fatal) on the legacy "skills" literal as a safety net
    for copied templates — the WARN tolerance can be removed later
  * Tested against all four canonical forms + 3 garbage forms
- CLAUDE.md §5 rewritten to document the live spec, including the historical
  context of the v2.1.107 → v2.1.144 regression window that's now closed
- 15 stale broken symlinks under .gemini/skills/ removed (orphans from older
  reorgs that the sync script didn't prune because its cleanup is disabled)

Verification:
- scripts/check_plugin_json.py --all → 0 FAIL, 0 WARN, exit 0 (69 files OK)
- pytest tests/ → 2103 passed
- find . -type l ! -exec test -e {} \; → 0 broken symlinks
- Live spec forms tested: ["./"], ["./skills"], "./skills", ["./a","./b"] all pass
- Garbage forms rejected: bare "./", empty array, non-string entries, plain strings
2026-05-21 07:03:11 +00:00
..
audit_skills.py feat(scripts): add audit_skills.py — repo-wide write-a-skill validator runner 2026-05-13 23:25:55 +00:00
check_plugin_json.py fix(plugin-schema): align with live Claude Code spec — migrate to "./"-prefixed skills field 2026-05-21 07:03:11 +00:00
codex-install.bat Dev (#44) 2026-01-23 09:09:42 +01:00
codex-install.sh Dev (#44) 2026-01-23 09:09:42 +01:00
convert.sh fix(integrations): update find depth in convert.sh for new repo structure 2026-05-12 09:56:39 +03:00
extract_release_notes.py feat(release): auto-tag + GitHub Release from CHANGELOG on push to main 2026-05-19 04:00:06 +00:00
gemini-install.sh feat: add Gemini CLI + OpenClaw support, fix Codex missing 25 skills 2026-03-09 14:58:41 +01:00
generate-docs.py chore(v2.8.0-sprint3): cross-platform sync + docs generation + MkDocs nav + CHANGELOG 2026-05-19 06:02:00 +00:00
install.sh feat(integrations): change Augment from flat rules to skill bundles 2026-04-25 04:48:41 +05:30
openclaw-install.sh fix(ci): fix workflow errors + add OpenClaw support (#222) 2026-02-24 17:33:21 +01:00
review-new-skills.sh feat(ci): add automated Tessl skill quality review on PRs 2026-04-07 12:21:30 +02:00
sync-codex-skills.py chore(v2.8.0-sprint3): cross-platform sync + docs generation + MkDocs nav + CHANGELOG 2026-05-19 06:02:00 +00:00
sync-gemini-skills.py chore(v2.8.0-sprint3): cross-platform sync + docs generation + MkDocs nav + CHANGELOG 2026-05-19 06:02:00 +00:00
sync-hermes-skills.py chore(v2.8.0-sprint3): cross-platform sync + docs generation + MkDocs nav + CHANGELOG 2026-05-19 06:02:00 +00:00
sync_skill_bundles.py chore(phase-0): add dual-publish + plugin.json validation tools 2026-05-09 05:54:15 +00:00