vara-skills-upgrade

Installation
SKILL.md

Vara Skills Upgrade

Role

Upgrade the vara-skills pack to the latest version. Invoked automatically by the preamble when UPGRADE_AVAILABLE is detected, or manually via /vara-skills-upgrade.

Standalone Usage

Run the update check with force (busts cache and snooze):

_VS_DIR=""
for _d in \
  "${VARA_SKILLS_DIR:-}" \
  "$HOME/.claude/skills/vara-skills" \
  ".claude/skills/vara-skills" \
  "$HOME"/.claude/plugins/cache/vara-skills/vara-skills/*; do
  if [ -n "$_d" ] && [ -f "$_d/bin/vara-skills-update-check" ]; then
    _VS_DIR="$_d"; break
  fi
done
VARA_SKILLS_DIR="${_VS_DIR:-${VARA_SKILLS_DIR:-}}"
export VARA_SKILLS_DIR
_UPD=$("$VARA_SKILLS_DIR/bin/vara-skills-update-check" --force 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || echo "vara-skills is up to date ($(cat "$VARA_SKILLS_DIR/VERSION" 2>/dev/null || echo unknown))"

Then follow the routing below based on output.

Inline Upgrade Flow

This section is called by the preamble when the update check outputs UPGRADE_AVAILABLE <old> <new>.

Step 1: Check auto-upgrade

_AUTO="${VARA_SKILLS_AUTO_UPGRADE:-}"

If _AUTO is true or 1, skip to Step 3 (upgrade silently).

Step 2: Ask the user

Use AskUserQuestion:

vara-skills v{new} is available (you have v{old}).

A) Upgrade now B) Not now (snooze) C) Never ask again

If A (Upgrade now): proceed to Step 3.

If B (Not now): Write snooze state and continue with the original skill.

# Read current snooze level (default to 0 if no file)
_SNOOZE_LEVEL=0
_SNOOZE_FILE="${VARA_SKILLS_STATE_DIR:-$HOME/.vara-skills}/update-snoozed"
if [ -f "$_SNOOZE_FILE" ]; then
  _SNOOZE_LEVEL=$(awk '{print $2}' "$_SNOOZE_FILE" 2>/dev/null || echo 0)
fi
_SNOOZE_LEVEL=$(( _SNOOZE_LEVEL + 1 ))
mkdir -p "${VARA_SKILLS_STATE_DIR:-$HOME/.vara-skills}"
echo "{new} $_SNOOZE_LEVEL $(date +%s)" > "$_SNOOZE_FILE"

Tell the user the snooze duration (level 1: 24h, level 2: 48h, level 3+: 7 days) and continue.

If C (Never ask again): Tell the user to add export VARA_SKILLS_UPDATE_CHECK=false to their shell profile (e.g. ~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish). Continue with the original skill.

Step 3: Perform upgrade

Detect the install type:

# VARA_SKILLS_DIR is inherited from preamble or standalone block above
if [ -d "${VARA_SKILLS_DIR:-.}/.git" ]; then
  echo "INSTALL_TYPE: git"
elif echo "$VARA_SKILLS_DIR" | grep -q 'plugins/cache'; then
  echo "INSTALL_TYPE: plugin"
else
  echo "INSTALL_TYPE: non-git"
fi

If git install:

cd "$VARA_SKILLS_DIR"
git fetch origin
git reset --hard origin/main

If plugin install:

_MKT="$HOME/.claude/plugins/marketplaces/vara-skills"
if [ -d "$_MKT/.git" ]; then
  git -C "$_MKT" fetch origin 2>/dev/null && git -C "$_MKT" reset --hard origin/main 2>/dev/null
fi
claude plugin update vara-skills@vara-skills

If non-git install: Tell the user: "This is not a git install. Re-clone from https://github.com/gear-foundation/vara-skills or reinstall the Claude Code plugin."

Step 4: Post-upgrade

After a successful git or plugin upgrade:

STATE_DIR="${VARA_SKILLS_STATE_DIR:-$HOME/.vara-skills}"
mkdir -p "$STATE_DIR"
echo "{old}" > "$STATE_DIR/just-upgraded-from"
rm -f "$STATE_DIR/last-update-check" "$STATE_DIR/update-snoozed"

If git install, show what changed:

git log --oneline "{old_tag}..HEAD" 2>/dev/null | head -20

If the tag lookup fails, just show: "Upgraded vara-skills from v{old} to v{new}."

If plugin install, just show: "Upgraded vara-skills from v{old} to v{new}. Restart Claude Code to apply changes."

Then continue with the original skill that triggered the preamble.

Related skills

More from gear-foundation/vara-skills

Installs
2
GitHub Stars
17
First Seen
Apr 4, 2026