Breathing Exercise
Trigger on "breathing exercise", "box breathing", "4 7 8 breathing",
"深呼吸", "呼吸法". Distinct from meditation (longer, open-ended,
silent) and stretch-break (physical movement): this is a tight,
voice-guided ~1-minute breathwork drill using the 4-7-8 pattern.
Each cycle: inhale 4 seconds → hold 7 seconds → exhale 8 seconds.
Run 4 cycles (~76 seconds of breathing plus short intro/outro).
Default flow
- Volume check: if user is in quiet-hours (see
quiet-hours
skill), keep set_volume at 20 or below. Otherwise set to 30 —
audible but unobtrusive.
- Intro: speak one sentence: "Four cycles of four-seven-eight
breathing. Follow my cues." Then pause 2 s before starting.
- Cycle loop (repeat 4 times):
- Say "Breathe in" at the start of inhale.
set_timer { seconds: 4, label: "breath-inhale" } — when it
fires, say "Hold".
set_timer { seconds: 7, label: "breath-hold" } — when it
fires, say "Breathe out slowly".
set_timer { seconds: 8, label: "breath-exhale" } — when it
fires, pause ~500 ms before next cycle.
- Between cycles, add a one-beat "Again." cue so the user knows the
next inhale is starting.
- Outro: after the 4th exhale timer fires, say once: "Done. Nice
work." Do not congratulate beyond that — keep it calm.
Variants
- Box breathing (4-4-4-4): if the user says "box breathing"
explicitly, use 4-second inhale, 4-second hold, 4-second exhale,
4-second hold. Run 4 cycles (~64 s total). Add a "Hold empty" cue
for the post-exhale hold.
- Longer session: if user says "keep going" / "もう一回" during
outro, run another 4 cycles without re-intro.
Interrupt handling
If the user says "stop" / "やめる" / "もういい" mid-session:
cancel_all_timers scoped to the breathing-exercise labels.
- Speak once: "Okay." — no judgement, no recap.
Quiet-hours respect
If quiet-hours is active:
- Never rise above volume 20.
- Skip the intro; just whisper "In", "Hold", "Out" instead of full
sentences.
- No outro — end in silence.
Multi-room
Do NOT broadcast_tts or broadcast_announcement. Breathing is
personal and the timing cues must match the caller's breath. If a
household wants a synchronised session they'll explicitly ask, and
even then — decline and suggest they each start their own.
Style
- Monk-voice adjacent, like
meditation: quiet, short, steady.
- Never cheerful. Never count aloud ("one… two…") — the timers do
that work. Cue words only.
- JA: polite-casual, breath-length ("吸って", "止めて", "吐いて").
Tools used
set_timer (inhale / hold / exhale, short labels)
cancel_all_timers (on interrupt or at end)
set_volume
Tools explicitly avoided
broadcast_tts / broadcast_timer / broadcast_announcement —
breath cues are individual and must not leak to other rooms.
execute_command for lights — the user's eyes are likely closed;
don't fiddle with the room state for a 1-minute drill.
morning_briefing / evening_briefing — noise.
1---2name: breathing-exercise3description: Short 4-7-8 breathing guide — four cycles of inhale-hold-exhale voice cues over roughly one minute, without disturbing quiet-hours.4---5# Breathing Exercise67Trigger on "breathing exercise", "box breathing", "4 7 8 breathing",8"深呼吸", "呼吸法". Distinct from `meditation` (longer, open-ended,9silent) and `stretch-break` (physical movement): this is a tight,10voice-guided ~1-minute breathwork drill using the 4-7-8 pattern.1112Each cycle: **inhale 4 seconds → hold 7 seconds → exhale 8 seconds**.13Run **4 cycles** (~76 seconds of breathing plus short intro/outro).1415## Default flow16171. **Volume check**: if user is in quiet-hours (see `quiet-hours`18 skill), keep `set_volume` at 20 or below. Otherwise set to 30 —19 audible but unobtrusive.202. **Intro**: speak one sentence: "Four cycles of four-seven-eight21 breathing. Follow my cues." Then pause 2 s before starting.223. **Cycle loop** (repeat 4 times):23 - Say "Breathe in" at the start of inhale.24 - `set_timer { seconds: 4, label: "breath-inhale" }` — when it25 fires, say "Hold".26 - `set_timer { seconds: 7, label: "breath-hold" }` — when it27 fires, say "Breathe out slowly".28 - `set_timer { seconds: 8, label: "breath-exhale" }` — when it29 fires, pause ~500 ms before next cycle.30 - Between cycles, add a one-beat "Again." cue so the user knows the31 next inhale is starting.324. **Outro**: after the 4th exhale timer fires, say once: "Done. Nice33 work." Do not congratulate beyond that — keep it calm.3435## Variants3637- **Box breathing (4-4-4-4)**: if the user says "box breathing"38 explicitly, use 4-second inhale, 4-second hold, 4-second exhale,39 4-second hold. Run 4 cycles (~64 s total). Add a "Hold empty" cue40 for the post-exhale hold.41- **Longer session**: if user says "keep going" / "もう一回" during42 outro, run another 4 cycles without re-intro.4344## Interrupt handling4546If the user says "stop" / "やめる" / "もういい" mid-session:471. `cancel_all_timers` scoped to the breathing-exercise labels.482. Speak once: "Okay." — no judgement, no recap.4950## Quiet-hours respect5152If `quiet-hours` is active:53- Never rise above volume 20.54- Skip the intro; just whisper "In", "Hold", "Out" instead of full55 sentences.56- No outro — end in silence.5758## Multi-room5960Do **NOT** `broadcast_tts` or `broadcast_announcement`. Breathing is61personal and the timing cues must match the caller's breath. If a62household wants a synchronised session they'll explicitly ask, and63even then — decline and suggest they each start their own.6465## Style6667- Monk-voice adjacent, like `meditation`: quiet, short, steady.68- Never cheerful. Never count aloud ("one… two…") — the timers do69 that work. Cue words only.70- JA: polite-casual, breath-length ("吸って", "止めて", "吐いて").7172## Tools used73- `set_timer` (inhale / hold / exhale, short labels)74- `cancel_all_timers` (on interrupt or at end)75- `set_volume`7677## Tools explicitly avoided78- `broadcast_tts` / `broadcast_timer` / `broadcast_announcement` —79 breath cues are individual and must not leak to other rooms.80- `execute_command` for lights — the user's eyes are likely closed;81 don't fiddle with the room state for a 1-minute drill.82- `morning_briefing` / `evening_briefing` — noise.