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.