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
1---2name: hydration-reminder3description: Low-friction hourly nudge to drink water — warm, brief, and easy to dismiss.4---5# Hydration Reminder67Trigger on "hydration reminder", "remind me to drink water", "water8reminder", "水分補給のリマインド", "水飲むの忘れそう", "1時間ごとに水9を思い出させて". Distinct from `stretch-break` (movement, 5-minute10routine) and `focus-mode` (deep-work session): hydration-reminder is a11**recurring, single-sentence nudge** — no routine, no lights, no media12changes. Just a warm reminder to take a sip.1314## Default flow on activation15161. **One-sentence confirmation** at the user's current volume — do not17 bump volume on activation. Say "Okay, I'll remind you every hour."18 (JA: 「了解、1時間ごとに声かけしますね。」)192. **Remember the session** via `remember` with key20 `hydration_reminder.active` and value `true`. Also store21 `hydration_reminder.started_at` with the current timestamp so the22 agent can recall how long the session has been running if the user23 asks later.243. **Schedule the first nudge** via `set_timer` with25 `{ seconds: 3600, label: "hydration" }`. The label lets us find and26 cancel this specific timer without affecting cooking / laundry27 timers.284. **Do not fan out to other rooms.** Hydration is a personal habit —29 other speakers should not announce this. Explicitly avoid30 `broadcast_tts`, `broadcast_timer`, `broadcast_announcement`.3132## When the timer fires33341. **Check quiet-hours first.** Call `recall` with key35 `quiet_hours.active`. If `true`, **skip this nudge** silently —36 do not speak, do not bump volume, do not reschedule a loud reminder.37 Instead, reschedule the next timer for 3600 seconds later and let38 the next wake cycle handle it. The user explicitly opted into quiet39 hours; hydration never overrides that.402. **Short warm nudge**, one sentence, at the user's current volume41 (no `set_volume` call — respect whatever they last set):42 - EN: "Quick sip of water?"43 - EN alternates: "Time for some water.", "Hydration check — grab a44 glass?", "Little water break?"45 - JA: 「水分補給のタイミングです。」46 - JA alternates: 「一口、水はどうですか?」、「コップ一杯、いかがで47 すか?」483. **Optional gentle notification bump.** If the user is likely not49 nearby (no recent voice activity in the last ~10 minutes), call50 `execute_command` with51 `{ device_type: "notification", action: "post", parameters:52 { title: "Hydration", body: "Time for water." } }` so a passing53 glance at the tablet picks it up. Do not escalate — one54 notification, no sound override.554. **Reschedule** via `set_timer` with56 `{ seconds: 3600, label: "hydration" }` for the next hour.5758## While active5960- Rotate the nudge phrase between calls so it doesn't feel robotic.61 Keep a small internal pool (4–6 EN, 3–4 JA) and cycle.62- Never follow the nudge with a question that demands a response —63 the user should be able to ignore the nudge entirely with zero64 friction. No "did you drink it?" follow-up.65- If the user responds "thanks" / "drinking now" / 「飲んだ」, simply66 reply with a one-word acknowledgement: "Nice." / 「いいですね。」67- If the user says "skip this one" / 「今回はパス」, say nothing more68 and let the next hour's timer handle it.6970## End-of-session7172Trigger on "stop hydration reminders", "hydration off", "水の通知を73止めて", "もういいよ":74751. Call `cancel_all_timers` scoped to the hydration label, or the76 more specific `cancel_timer` if available.772. Update `remember` with key `hydration_reminder.active` and value78 `false`.793. One short sign-off: "Okay, stopping hydration reminders."80 (JA: 「了解、水の声かけ止めますね。」)8182## Interaction with quiet-hours8384If the user enables `quiet-hours` while hydration reminders are85running, **do not auto-cancel** the hydration session. The next86fire-time check (step 1 of "When the timer fires") handles the87suppression. When quiet-hours ends, the next hydration timer fires88normally — no catch-up for missed nudges.8990If the user asks "did I drink water during the night?" in the91morning, the agent can answer honestly: "I held off while quiet92hours were on."9394## Style9596- Tone: warm friend, not a drill sergeant. Short. No guilt, no97 exclamation marks, no "you should" phrasing.98- Keep each nudge ≤ 8 words in EN, ≤ 20 characters in JA.99- JA register: polite-casual ("〜です" is fine, "〜してください" is too100 stiff for a habit nudge).101- Never use emoji in TTS text.102103## Tools used104- `set_timer`105- `cancel_all_timers`106- `remember`107- `recall`108- `execute_command` (optional, notification post only)109110## Tools explicitly avoided111- `broadcast_tts`, `broadcast_timer`, `broadcast_announcement` —112 hydration is personal, no fan-out113- `set_volume` — never override the user's current volume for a114 reminder this low-stakes