Skip to content

feat: prune skills dropped from a --skills list

Choose a tag to compare

@github-actions github-actions released this 14 Sep 00:22
· 17 commits to main since this release

Fixed

  • install.sh now re-execs into a newer bash instead of dying with declare: -A: invalid option on macOS. Apple's stock /bin/bash is 3.2 (frozen there since the GPLv2→GPLv3
    switch) and install.sh's own #!/bin/bash shebang is resolved by the kernel from that
    hardcoded path, not from $PATH — so a newer Homebrew bash already on a user's PATH was
    never picked up just by running the script (which is what bootstrap.sh's exec "$INSTALL"
    does). The registry-read cache needs declare -A (bash ≥ 4). The script now detects bash < 4,
    hops to a findable newer bash (Homebrew's common install locations, or PATH), and exits with
    brew install bash guidance if none exists.

Added

  • install.sh claude --skills a,b,c now treats that list as the full desired skill set: a
    name present in a prior --skills install but missing from this one is uninstalled, instead
    of being silently left on disk forever. write_manifest()'s merge only adds/updates keys, so
    without this a shrunk --skills list had no way to actually drop anything. The new
    prune_skills_not_in() shells out to uninstall.sh --skill — the existing single writer of
    skill removal — rather than duplicating that logic, then deletes the pruned key from
    manifest.json so the merge doesn't resurrect it.