Move bin/ scripts to scripts/ so the plugin installs on claude.ai - #18
Merged
Conversation
prvn
approved these changes
Aug 4, 2026
claude.ai-hosted plugins may not ship a top-level bin/ directory: its contents are added to PATH on the CLI but are not shown on the admin approval surface, so the platform rejects the plugin at install time (both repository-add and file upload). This blocked all claude.ai web and Cowork users from installing fusion-skills (issue #17); foundry-skills installs fine because it has no bin/. These are not executable entry points. They are internal helpers (the Python venv-bootstrap chain: python.sh, python-detect.sh, setup-python-venv.sh) and repo dev tooling (cleanup_workflows.py, convert_catalog_to_yaml.py, export-trigger-yaml.sh), invoked by the skills and test harness rather than run as commands. bin/ is the only trigger, so the fix is relocation, not declaring them as commands or hooks. They move to a top-level scripts/ directory (shared across all four sub-skills, so not owned by any one skill's scripts/ dir), and every reference is updated: the four SKILL.md allowed-tools declarations and example commands, _bootstrap.py's wrapper path, hooks/bootstrap.sh, run-ab-test.sh, verify-workflows.sh, the test suite and conftest sys.path, and the CI shellcheck/pylint/pytest-cov globs. Git detects all six as renames. Full local CI passes: 541 tests at 93.65% coverage, pylint 10.00/10, shellcheck clean, hook and scorecard suites green.
The bin/ -> scripts/ rename added ~48 chars across authoring SKILL.md (16 path references x 3 chars), pushing it from ~5497 to ~5509 tokens and tripping the CI size-budget gate (max 5500). Tighten one redundant clause in the final-validation step: the guidance to switch an Event Query to a CrowdStrike HTTP Request is already stated in action 1, so the restatement can be shorter without losing meaning. Now ~5495 tokens.
mraible
force-pushed
the
fix/bin-to-scripts
branch
from
August 7, 2026 05:33
b36e5ae to
cddaabd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #17.
claude.ai-hosted plugins may not ship a top-level
bin/directory: its contents are added to PATH on the CLI but are not shown on the admin approval surface, so the platform rejects the plugin at install time (both repository-add and file upload). This blocked all claude.ai web and Cowork users from installing the plugin; foundry-skills installs fine because it has nobin/.These are not executable entry points. They are internal helpers (the Python venv-bootstrap chain:
python.sh,python-detect.sh,setup-python-venv.sh) and repo dev tooling (cleanup_workflows.py,convert_catalog_to_yaml.py,export-trigger-yaml.sh), invoked by the skills and test harness rather than run as commands.bin/is the only trigger, so the fix is relocation rather than declaring them as commands or hooks.They move to a top-level
scripts/directory (shared across all four sub-skills, so not owned by any one skill's ownscripts/dir), and every reference is updated: the four SKILL.md allowed-tools declarations and example commands,_bootstrap.py's wrapper path,hooks/bootstrap.sh,run-ab-test.sh,verify-workflows.sh, the test suite and conftestsys.path, and the CI shellcheck/pylint/pytest-cov globs. Git detects all six files as renames, preserving history.Local CI passes: 541 tests at 93.65% coverage, pylint 10.00/10, shellcheck clean, hook and scorecard suites green.