Installable skillMIT

Focus Break Reminder

An MCP server that provides on-demand skill loading for AI coding assistants.

BY modbenderUPDATED Oct 28, 2026
INTENDED FOR◈OpenClawInstall in a listed agent.

instructions.md

---
name: focus-break-reminder-ad846311ac56
description: Workspace wellness break reminder with configurable work interval, cooldown, idle reset, quiet hours, and per-day caps. Use when users want OpenClaw to remind them to take regular breaks during long sessions, including setup of heartbeat checks, reminder templates, and on/off/snooze/status controls.
---

# Focus Break Reminder

Implement a lightweight per-user/session state machine that triggers rest reminders without spamming.

## Configure

Create or load `references/config.example.json` as the default schema.

Required settings:
- `enabled`
- `timezone`
- `work_minutes`
- `cooldown_minutes`
- `idle_reset_minutes`
- `daily_max_reminders`
- `quiet_hours`
- `snooze_until`
- `templates`

Prefer defaults that are practical and non-intrusive:
- work interval: 50 minutes
- cooldown: 30 minutes
- idle reset: 15 minutes
- daily cap: 4

## Track state

Maintain minimal state per user (or per DM/chat for first version):
- `session_start_at`
- `last_active_at`
- `last_remind_at`
- `remind_count_today`
- `today_key`

Persist to a small JSON file so reminders survive restarts.

## Update activity

On each inbound user message:
1. If date changed in configured timezone, reset `remind_count_today` and `today_key`.
2. If idle time since `last_active_at` >= `idle_reset_minutes`, reset `session_start_at` to now.
3. Set `last_active_at` to now.

## Evaluate reminder eligibility

Only remind when all conditions pass:
1. `enabled` is true.
2. Not in quiet hours.
3. Not snoozed (`now < snooze_until` means skip).
4. Daily cap not exceeded.
5. Active duration (`now - session_start_at`) >= `work_minutes`.
6. Cooldown passed (`now - last_remind_at`) >= `cooldown_minutes`.

If all pass, send one reminder and set:
- `last_remind_at = now`
- `remind_count_today += 1`

## Reminder delivery

Use one short template per reminder. Keep copy practical and non-medical.

Example template:
- “你已经连续工作一段时间了。现在起身 2 分钟、喝口水,再看 20 秒远处 👀”

## Commands

Support these chat commands:
- `/break on` → enable reminders
- `/break off` → disable reminders
- `/break status` → show current config + next eligible reminder window
- `/break set <minutes>` → update `work_minutes`
- `/break snooze <minutes>` → set `snooze_until = now + minutes`

Validate numeric ranges (e.g., 15–180 for work interval).

## Heartbeat integration

Use heartbeat polling to run eligibility checks when there is recent activity. Avoid noisy polling loops.

Recommended behavior:
- If no user activity for a long period, skip checks.
- If reminder was just sent, honor cooldown and return quickly.

## Safety and UX boundaries

- Do not provide medical diagnosis or treatment advice.
- Keep reminders optional and easy to disable.
- Store only minimum timestamps and settings needed for reminder logic.
- Use clear language when data is missing: “待补充”.

## Testing checklist

Use `references/test-cases.md`.

At minimum verify:
- triggers at/after work interval
- cooldown suppresses duplicates
- idle reset restarts session timer
- quiet hours suppress reminders
- snooze suppresses reminders until expiry
- daily cap blocks additional reminders
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.