Files
skills/scripts/update.sh
T
Kevin Veen-BirkenbachandClaude Opus 5.5 e2157998d7 fix(update): pass the source before --agent
Every scheduled Update run since 2026-10-31 failed with 'Missing required argument: source': --agent takes several values and swallowed the source that followed it. update.sh now passes the source first. test_update.py had pinned the source as the last argument and so encoded the bug; it now requires the source right after add and claude-code as the only agent (negative control against the old order fails).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 17:57:07 +01:00

36 lines
1021 B
Bash

#!/usr/bin/env bash
# Update all skills to their latest versions and refresh skills-lock.json.
# Reads unique sources from skills-lock.json and re-runs skills add for each.
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
log() { printf '%s\n' "$*"; }
warn() { printf '%s\n' "$*" >&2; }
if ! command -v npx &>/dev/null; then
warn "skills: npx not found — install Node.js first: https://nodejs.org"
exit 1
fi
if ! command -v jq &>/dev/null; then
warn "skills: jq not found — cannot parse skills-lock.json."
exit 1
fi
cd "${REPO_ROOT}"
lockfile="skills-lock.json"
if [[ ! -f "${lockfile}" ]]; then
warn "skills: ${lockfile} not found in ${REPO_ROOT}."
exit 1
fi
log "skills: updating from ${lockfile}..."
jq -r '.skills[].source' "${lockfile}" | sort -u | while read -r source; do
log "skills: updating ${source}..."
npx --yes skills add "${source}" --yes --agent claude-code </dev/null
done
log "skills: update complete."