auto-maintain-commit-and-deploylisted
Install: claude install-skill williamblair333/Uncle-J-s-Refinery
## When to use
- A nightly cron commits new skill/plugin directories to git but `~/.claude/skills/` (or equivalent) is not updated until the next manual install run
- An install script has a hardcoded list of artifact names that must be maintained by hand
- New artifacts land in a well-known directory but are not immediately live after commit
## Key steps demonstrated
### 1. Replace hardcoded list with dynamic scan
In the install script, replace any `for skill in name1 name2 name3` loop with a glob over the source directory:
for src in "$STACK_ROOT/global-skills"/*/; do
[ -d "$src" ] || continue
skill_name=$(basename "$src")
dst="$CLAUDE_DIR/skills/$skill_name"
[ -L "$dst" ] || ln -s "$src" "$dst"
done
Any directory added to `global-skills/` is automatically picked up — no list maintenance.
### 2. Couple git commit with immediate deployment
In the auto-maintain script, after the `git commit` that lands new artifacts, run the same symlink loop inline so artifacts are live before the next session:
# after git commit of new skills...
for src in "$STACK_ROOT/global-skills"/*/; do
[ -d "$src" ] || continue
dst="$CLAUDE_DIR/skills/$(basename "$src")"
[ -L "$dst" ] || ln -s "$src" "$dst"
done
No extra Telegram alert needed — the existing end-of-run notification covers it.
### 3. Upgrade evaluation: bash + Claude hybrid
For post-upgrade change detection across multiple packages:
- Bash fetches commit logs (`git log OLD..NEW --oneline`) and scan