| name | vara-skills-upgrade |
| description | Use when asked to upgrade or update vara-skills to the latest version, or to check what version is installed. Do not use for Vara app development tasks. |
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.
_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:
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.