| name | hydration-reminder |
| description | Low-friction hourly nudge to drink water โ warm, brief, and easy to dismiss. |
Hydration Reminder
Trigger on "hydration reminder", "remind me to drink water", "water
reminder", "ๆฐดๅ่ฃ็ตฆใฎใชใใคใณใ", "ๆฐด้ฃฒใใฎๅฟใใใ", "1ๆ้ใใจใซๆฐด
ใๆใๅบใใใฆ". Distinct from stretch-break (movement, 5-minute
routine) and focus-mode (deep-work session): hydration-reminder is a
recurring, single-sentence nudge โ no routine, no lights, no media
changes. Just a warm reminder to take a sip.
Default flow on activation
- One-sentence confirmation at the user's current volume โ do not
bump volume on activation. Say "Okay, I'll remind you every hour."
(JA: ใไบ่งฃใ1ๆ้ใใจใซๅฃฐใใใใพใใญใใ)
- Remember the session via
remember with key
hydration_reminder.active and value true. Also store
hydration_reminder.started_at with the current timestamp so the
agent can recall how long the session has been running if the user
asks later.
- Schedule the first nudge via
set_timer with
{ seconds: 3600, label: "hydration" }. The label lets us find and
cancel this specific timer without affecting cooking / laundry
timers.
- Do not fan out to other rooms. Hydration is a personal habit โ
other speakers should not announce this. Explicitly avoid
broadcast_tts, broadcast_timer, broadcast_announcement.
When the timer fires
- Check quiet-hours first. Call
recall with key
quiet_hours.active. If true, skip this nudge silently โ
do not speak, do not bump volume, do not reschedule a loud reminder.
Instead, reschedule the next timer for 3600 seconds later and let
the next wake cycle handle it. The user explicitly opted into quiet
hours; hydration never overrides that.
- Short warm nudge, one sentence, at the user's current volume
(no
set_volume call โ respect whatever they last set):
- EN: "Quick sip of water?"
- EN alternates: "Time for some water.", "Hydration check โ grab a
glass?", "Little water break?"
- JA: ใๆฐดๅ่ฃ็ตฆใฎใฟใคใใณใฐใงใใใ
- JA alternates: ใไธๅฃใๆฐดใฏใฉใใงใใ๏ผใใใใณใใไธๆฏใใใใใง
ใใ๏ผใ
- Optional gentle notification bump. If the user is likely not
nearby (no recent voice activity in the last ~10 minutes), call
execute_command with
{ device_type: "notification", action: "post", parameters: { title: "Hydration", body: "Time for water." } } so a passing
glance at the tablet picks it up. Do not escalate โ one
notification, no sound override.
- Reschedule via
set_timer with
{ seconds: 3600, label: "hydration" } for the next hour.
While active
- Rotate the nudge phrase between calls so it doesn't feel robotic.
Keep a small internal pool (4โ6 EN, 3โ4 JA) and cycle.
- Never follow the nudge with a question that demands a response โ
the user should be able to ignore the nudge entirely with zero
friction. No "did you drink it?" follow-up.
- If the user responds "thanks" / "drinking now" / ใ้ฃฒใใ ใ, simply
reply with a one-word acknowledgement: "Nice." / ใใใใงใใญใใ
- If the user says "skip this one" / ใไปๅใฏใในใ, say nothing more
and let the next hour's timer handle it.
End-of-session
Trigger on "stop hydration reminders", "hydration off", "ๆฐดใฎ้็ฅใ
ๆญขใใฆ", "ใใใใใ":
- Call
cancel_all_timers scoped to the hydration label, or the
more specific cancel_timer if available.
- Update
remember with key hydration_reminder.active and value
false.
- One short sign-off: "Okay, stopping hydration reminders."
(JA: ใไบ่งฃใๆฐดใฎๅฃฐใใๆญขใใพใใญใใ)
Interaction with quiet-hours
If the user enables quiet-hours while hydration reminders are
running, do not auto-cancel the hydration session. The next
fire-time check (step 1 of "When the timer fires") handles the
suppression. When quiet-hours ends, the next hydration timer fires
normally โ no catch-up for missed nudges.
If the user asks "did I drink water during the night?" in the
morning, the agent can answer honestly: "I held off while quiet
hours were on."
Style
- Tone: warm friend, not a drill sergeant. Short. No guilt, no
exclamation marks, no "you should" phrasing.
- Keep each nudge โค 8 words in EN, โค 20 characters in JA.
- JA register: polite-casual ("ใใงใ" is fine, "ใใใฆใใ ใใ" is too
stiff for a habit nudge).
- Never use emoji in TTS text.
Tools used
set_timer
cancel_all_timers
remember
recall
execute_command (optional, notification post only)
Tools explicitly avoided
broadcast_tts, broadcast_timer, broadcast_announcement โ
hydration is personal, no fan-out
set_volume โ never override the user's current volume for a
reminder this low-stakes