Skip to content

Build per-skill zips for the claude.ai skills upload - #24

Open
jagreehal wants to merge 1 commit into
OWASP:mainfrom
jagreehal:fix/per-skill-zips
Open

Build per-skill zips for the claude.ai skills upload#24
jagreehal wants to merge 1 commit into
OWASP:mainfrom
jagreehal:fix/per-skill-zips

Conversation

@jagreehal

Copy link
Copy Markdown

Summary

Fixes #23.

The claude.ai skills upload (Organization settings > Skills) rejects zips with more than 200 files, so neither the whole-repo zip nor the release asset can be uploaded there. The repo currently has no supported path for claude.ai organization admins who want these as skills rather than a Claude Code plugin.

This PR adds scripts/package_skills.sh, which packages each of the 17 skills as a self-contained, upload-ready zip:

  • Vendors the plays/, templates/, and data/ files each SKILL.md references at the same relative paths, so references resolve identically to the plugin layout.
  • Prunes MASTG test files not referenced by any MASVS mastg_tests: list (3 today, none cross-referenced), which keeps the largest skill — mobile-code-review — at 199 files. Every other skill is far smaller.
  • Fails the build if any skill exceeds 200 files, so a future data addition can't silently break uploads.

Also:

  • release.yml builds the zips and attaches them as release assets, mirroring how secure-agent-playbook.zip ships, so admins can download without cloning.
  • README gains an Organization skills block under Quick Start documenting the upload path and the 200-file limit.

Testing

Ran the script against main: all 17 zips build (2-199 files each); unzipped and verified each zip has <skill-name>/SKILL.md at the top level with all referenced play, template, and data paths present.

The claude.ai skills upload (admin-settings/skills) rejects zips with
more than 200 files, so the whole-repo release zip cannot be uploaded
there. Add scripts/package_skills.sh, which packages each skill as a
self-contained zip — vendoring the plays, templates, and data files its
SKILL.md references at the same relative paths, and pruning MASTG tests
not referenced by any MASVS mastg_tests list so every zip stays under
the limit (largest: mobile-code-review at 199 files). Attach the zips
to releases and document the upload path in the README.

Fixes OWASP#23
@jagreehal
jagreehal requested a review from cmaenner as a code owner July 21, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Zip contains too many files (maximum 200) when uploading zip into Claude

1 participant