Skip to content

Move bin/ scripts to scripts/ so the plugin installs on claude.ai - #18

Merged
mraible merged 2 commits into
mainfrom
fix/bin-to-scripts
Aug 7, 2026
Merged

Move bin/ scripts to scripts/ so the plugin installs on claude.ai#18
mraible merged 2 commits into
mainfrom
fix/bin-to-scripts

Conversation

@mraible

@mraible mraible commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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 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 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 own 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 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.

mraible added 2 commits August 6, 2026 23:33
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
mraible force-pushed the fix/bin-to-scripts branch from b36e5ae to cddaabd Compare August 7, 2026 05:33
@mraible
mraible merged commit ac36ce8 into main Aug 7, 2026
6 checks passed
@mraible
mraible deleted the fix/bin-to-scripts branch August 7, 2026 05:37
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.

Top-level bin/ directory blocks installation on claude.ai (web and Cowork)

2 participants