loop-updatelisted
Install: claude install-skill thepictishbeast/claude-tools
# /loop-update — refresh claude-tools from upstream
## When to use this
The user wants to pick up the latest skills from
`github.com/thepictishbeast/claude-tools` without doing the
clone/git-pull/install.sh dance manually.
## Steps
### 1. Locate the cloned repo
The repo lives wherever the user cloned it. Try these paths in order
until one is a git repo with `origin` pointing at the right place:
```
$HOME/claude-tools
$HOME/projects/claude-tools
$HOME/git/claude-tools
$HOME/code/claude-tools
/tmp/claude-tools
```
For each candidate, verify with:
```sh
cd "$candidate" 2>/dev/null
git remote get-url origin 2>/dev/null | grep -q "claude-tools" && echo HIT
```
If none of those work, ASK the user where they cloned it. Don't
guess — wrong directory = wrong git pull.
### 2. Confirm clean working tree
```sh
cd "$REPO"
git status --porcelain
```
If output is non-empty, refuse to update — the user has local
modifications. Tell them: "your clone at $REPO has local changes; commit
or stash before updating." Don't auto-discard.
### 3. Run the update script
```sh
cd "$REPO"
./update.sh -f
```
`-f` overwrites existing same-named skills in `~/.claude/skills/`
without prompting. Safe because the upstream version is what we want.
Capture stdout — it includes:
- `git pull` result (or "already up to date")
- If changed: commits + files diff + reinstall confirmations
### 4. Detect renamed skills
If the update changed skill *names* (e.g. `pause` → `loop-pause`), the
old-named dire