| name | discovery-butler |
| description | Casual location-aware coffee / quick-bite nudges. Fires Thu 2pm (Fri fallback) for two principals at home, and day 1 (or 2/3 fallback) of any active trip into the trip chat. One per person per week, one per trip total. |
discovery-butler
A friend who knows the area and occasionally texts you a fun spot. Not a daily nag. Most cron firings produce nothing — that silence is the goal.
What it does
Daily 2:00pm local-time cron. Most days, exits silently. When the conditions match, sends a single one-line iMessage:
☕ Weekend coffee idea: Sound & Fog — 6 min walk, third-wave, opened March. Walk-in.
☕ NYC pick: Devoción on Atlantic Ave — 10 min from your hotel. Walk-in.
☕ Seattle pick: Sey Coffee — 12 min from where you're staying. Walk-in.
Firing rules
| Context | When | Who receives | Anchor |
|---|
| At home, no active trip | Thursday 2pm (default), Friday as fallback | Two principals (MANAN_PHONE, HARSHITA_PHONE) — separate messages | HA person.<name> entity → lat/lon, with sensor.<name>_geocode for the human-readable label |
| Active trip, day 1–3 | Day 1 (default), day 2 or 3 as fallback | trips.group_chat_guid if set; otherwise first traveler's phone from travelers table. One message per trip, not per person. | trips.destination (free-text — wanderlust-goat geocodes it) |
Dedup: ~/.config/spratt/db/discovery_fires.sqlite, PK (person, kind, key). Weekend kind keys on ISO week (e.g. 2026-W19); trip kind keys on . A traveler who's already on an active trip is excluded from the at-home loop for that day.