script-librarylisted
Install: claude install-skill mickzijdel/dev-hooks
# Script library
A standing collection of small CLI tools. The `script-index` SessionStart hook lists them —
path + `# short-description:` — at the start of every session, so a saved script becomes
reusable knowledge, like a lightweight skill. The `save-script-reminder` Stop hook nudges you
here when you wrote a one-off script this session.
Use this skill to turn a throwaway script into a first-class library tool.
## Where the library lives
The library is one or more **roots** in `DEV_HOOKS_SCRIPT_DIR` — a colon-separated list like
`PATH` (default `~/.local/bin`). Each root is scanned **recursively**, so a root can be a git
repo organised into subdirectories:
```
DEV_HOOKS_SCRIPT_DIR=~/.local/bin:~/code/team-scripts # (in .claude/settings.local.json "env")
~/.local/bin/ # personal, already on PATH
dfv
~/code/team-scripts/ # a git repo — clone it, others can use it too
git/fetch-pr-diff
images/resize
```
- **`~/.local/bin`** is on `PATH`, so its top-level scripts run by **bare name** (`dfv`).
- A **repo root or any subdirectory** usually isn't on `PATH`, so run those by their **full
path** (`~/code/team-scripts/git/fetch-pr-diff`) or via `uv run <path>`. The index shows each
script's path for exactly this reason.
**To share:** put a scripts repo on a host like GitHub; teammates clone it and add its path to
their `DEV_HOOKS_SCRIPT_DIR`. A saved script committed to that repo is then available to everyone
who's cloned it.
**To hide no