agentleFS
gear-foundationgear-foundation/vara-skills/skills/vara-skills-upgrade/SKILL.md

vara-skills-upgrade

Skill17 starsChanged 7 months agoMITView on GitHub

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.

  • Deletes or force-pushes

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

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

    line 14
  2. Very specific:

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

    line 45
  3. Distinctive:

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

    line 59
  4. Distinctive:

    After a successful git or plugin upgrade:

    line 114
  5. Very specific:

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

    line 129

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.