vara-skills-upgrade
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.
More from gear-foundation/vara-skills
vara-skills
Use when a builder needs the top-level router for the provisional standard Gear/Vara Sails skill pack across Codex, Claude, or OpenClaw. Do not use for Vara.eth or ethexe work, non-Sails programs, or broad protocol research.
197sails-new-app
Use when a builder is starting a new standard Gear/Vara Sails app and needs the correct greenfield sequence before implementation. Do not use for edits to an established repo, Vara.eth or ethexe targets, or non-Sails templates.
2sails-dev-env
Use when a builder needs to prepare or repair a local macOS, Linux, or Windows machine for standard Gear/Vara Sails Rust development before building, testing, or running a local node. Do not use for live-network deployment, app-specific feature work, or Vara.eth/ethexe-only setup.
2vara-wallet
Use when an agent needs to interact with Vara Network on-chain — deploy programs, call Sails methods, manage wallets, transfer tokens, monitor events. Not for building Sails programs (use vara-skills for that).
2sails-gtest
Use when a builder needs the standard Gear/Vara Sails gtest loop for feature verification, debugging, or regression coverage. Do not use for live-network-only validation, deployment-first workflows, or non-Sails programs.
2task-decomposer
Use when approved spec and architecture artifacts must become an ordered implementation plan for Gear or Vara work. Do not use when the architecture is still unsettled or when the request is only asking for a high-level idea.
2