skills/vara-skills-upgrade/SKILL.md
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.
npx skillsauth add gear-foundation/vara-skills vara-skills-upgradeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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.
This section is called by the preamble when the update check outputs UPGRADE_AVAILABLE <old> <new>.
_AUTO="${VARA_SKILLS_AUTO_UPGRADE:-}"
If _AUTO is true or 1, skip to Step 3 (upgrade silently).
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.
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."
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.
development
Use when approved tasks require Rust code changes in a Sails ethexe workspace with the ethexe feature enabled. Do not use for standard Gear/Vara Sails apps without ethexe, or when the spec or architecture is still unsettled.
development
Use when a builder needs to design or review architecture for a Sails ethexe app with dual-transport, payable methods, Solidity interface generation, or Ethereum-style events. Do not use for standard Gear/Vara Sails apps without ethexe.
development
Use when a builder needs to design or debug calls from a standard Gear/Vara Sails program into runtime builtin actors such as BLS12-381, staking, proxy, or ETH bridge, including ActorId derivation, request encoding, reply decoding, and gas or ED budgeting. Do not use for regular program-to-program messaging, Vara.eth or ethexe-only work, non-Sails repositories, or runtime-maintenance tasks inside the Gear repo.
development
Use when a builder needs a read-side indexer and query API for a standard Gear/Vara Sails app using program events, IDL-driven decoding, projected read models, and optional on-chain query enrichment. Do not use for command-side backends, generic Node APIs, non-Sails repositories, Vara.eth or ethexe-first work.