zbeam-update

star 0

Repackages and presents all Z-Beam skills modified since last install. Run at end of session or on 'update skills'.

Air2air By Air2air schedule Updated 6/12/2026

name: zbeam-update description: "Repackages and presents all Z-Beam skills modified since last install. Run at end of session or on 'update skills'."

Z-Beam Update

Manual-only skill — run at the end of any session where skill files were modified. Trigger: "update skills", "package updated skills", or end-of-session housekeeping. Not called by any automated pipeline. This is the packaging/delivery step, not a content skill.

Detect which skill source files have changed since they were last packaged, repackage only those, and present them all for install in one batch.

Step 1: Find modified skills

Compare modification timestamps of source SKILL.md files against their corresponding .skill files in the outputs folder.

# Resolve paths at runtime — do not hardcode session IDs
SKILLS=$(ls -d /sessions/*/mnt/skills 2>/dev/null | head -1)
OUT=$(ls -d /sessions/*/mnt/outputs 2>/dev/null | head -1)

if [ -z "$SKILLS" ] || [ -z "$OUT" ]; then
  echo "ERROR: Could not resolve paths. Run zbeam-setup first."
  exit 1
fi


for skill_md in $(find "$SKILLS" -name "SKILL.md"); do
  skill_dir=$(dirname "$skill_md")
  name=$(grep "^name:" "$skill_md" | head -1 | sed 's/name: //' | tr -d '"')
  skill_file="$OUT/${name}.skill"

  if [ ! -f "$skill_file" ]; then
    echo "NEW $name"
  else
    # Check SKILL.md AND every file in the skill directory (references/, assets/, etc.)
    newest=$(find "$skill_dir" -type f | xargs ls -t 2>/dev/null | head -1)
    if [ -n "$newest" ] && [ "$newest" -nt "$skill_file" ]; then
      # Report which file triggered the repackage
      changed=$(find "$skill_dir" -type f -newer "$skill_file" | sed "s|$skill_dir/||")
      echo "MODIFIED $name (changed: $(echo $changed | tr '\n' ' '))"
    fi
  fi
done

## Step 2: Repackage modified skills only

For each modified or new skill:

```bash
cd /path/to/skill-creator
python3 -m scripts.package_skill "$skill_dir" "$OUT"

If no skills were modified, report "No changes since last install" and stop.

Step 3: Present all updated .skill files

Use mcp__cowork__present_files to present every repackaged .skill file at once so the user can install them in sequence.

Step 4: Report

List what changed:

  • Which skills were repackaged (and why — modified source, new reference file, etc.)
  • Which skills were unchanged and skipped
  • Reminder: install one at a time — each save resets the session

Path resolution

The skill-creator packager is at: /var/folders/.../skills/skill-creator/ (read from <available_skills> base path)

The Z-Beam skills folder is at: /Users/todddunning/Desktop/Z-Beam/z-beam/skills/

The outputs folder path includes a session ID that changes each session. Resolve it at runtime:

OUT=$(ls -d /sessions/*/mnt/outputs 2>/dev/null | head -1)
echo "Outputs: $OUT"

Never hardcode the session ID — it changes every session.

Install via CLI
npx skills add https://github.com/Air2air/z-beam --skill zbeam-update
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator