Orchestrates three existing skills into one weekday routine:
A cron installer schedules it Monday–Friday at each scene's start hour.
text
workday-music-greeter/
├── SKILL.md # this file
├── run.sh # main orchestrator (supports --dry-run and `auto`)
├── scenes.conf # scene | hour-start | gif-query | email-subject
├── install-cron.sh # registers Mon–Fri crontab entries
└── .env.example # required/optional env vars
bash
cp .env.example .env && $EDITOR .env # set WMG_MAIL_TO + SMTP_* creds
WMG_MAIL_TO=you@example.com ./run.sh morning --dry-run # preview, touches nothing
WMG_MAIL_TO=you@example.com ./run.sh auto # pick scene by current time
./install-cron.sh # schedule Mon–Fri
run.sh <scene> runs one scene. run.sh auto selects the scene whose
hour-start is the latest one at/"before now (see scenes.conf).date +%u >= 6 (Sat/Sun) it exits without acting.<img src> (the gifgrep URL) and,
when a local download exists, attached via --attach.--dry-run prints every external call instead of executing it — use it to
verify wiring before going live.Edit scenes.conf (pipe-delimited):
text
morning|8|good morning coffee sunrise|🌅 Good morning — easing into the day
chill|12|relax lofi midday break|🍵 Midday reset — chill vibes on
focus|14|focus work productivity calm|🎯 Afternoon focus block
off|18|goodbye work done relax weekend|🔇 Wrapping up — music off
Scene names must match home-music scenes ( morning, chill, party, off, …).
Re-run install-cron.sh after changing hours; it replaces its own tagged block idempotently.
DependencyNeeded forNoteshome-musiclive scene switchmacOS-only (AppleScript + Spotify + Airfoil). On non-macOS the scene switch is skipped with a warning; the rest still runs.gifgrepmatching GIFIf absent, the email is sent without a GIF.imap-smtp-emailsending mailRequires SMTP creds in env/ .env. Without them, sending fails (reported, not silently swallowed).crontabschedulinginstall-cron.sh uses the system user crontab.
If a dependency or credential is missing, run.sh warns and degrades rather
than faking success. Always validate with --dry-run first.
See .env.example. Required: WMG_MAIL_TO. SMTP_* are consumed by the
imap-smtp-email sender. Optional overrides: WMG_GIF_DIR, WMG_SMTP_SCRIPT.