From 0e12e99cafae92c6008ed7dd7d7b2465c3c87e28 Mon Sep 17 00:00:00 2001 From: zlei9 Date: Sun, 29 Mar 2026 13:18:30 +0800 Subject: [PATCH] Initial commit with translated description --- SKILL.md | 72 ++++++++++++++++++++++++++++++++++++++ _meta.json | 6 ++++ assets/events.template.yml | 5 +++ 3 files changed, 83 insertions(+) create mode 100644 SKILL.md create mode 100644 _meta.json create mode 100644 assets/events.template.yml diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..1d6e598 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,72 @@ +--- +name: reminder +summary: Natural-language reminders → save to your workspace → schedule Telegram notifications (24h/1h/10m by default). +description: "自然语言提醒秘书:将事件捕获到git同步工作区。" +tags: [reminder, schedule, cron, telegram, secretary] +--- + +# Reminder (secretary) + +A lightweight personal secretary for OpenClaw: +- Tell it events in natural language (Chinese/English). +- It extracts structured info and stores it in your workspace (so Git/`claw-roam` can sync across devices). +- It schedules Telegram reminders using OpenClaw `cron`. + + +## What it does + +- Capture events from chat (meetings / birthdays / deadlines) +- Store events in a **workspace data file** (easy to back up & sync via Git/`claw-roam`) +- Schedule Telegram reminders using OpenClaw `cron` +- Answer queries like “我最近有什么安排/计划?” + +## Data (separated from skill) + +This skill contains **no personal event data**. + +User data lives in the workspace at: +- Events file: `~/.openclaw/workspace/reminders/events.yml` + +Template (shipped with the skill): +- `skills/reminder/assets/events.template.yml` + +## Config (env) + +- `REMINDER_TZ` (default: `Asia/Shanghai`) +- `REMINDER_OFFSETS_MINUTES` (default: `1440,60,10` for 24h/1h/10m) + +## Capture behavior + +When user says something like: +- “后天上午10点有个会” +- “下个月2号我妈生日” +- “周五下午三点交报告” + +Do: +1) Parse the event: + - title + - start datetime (Shanghai) + - notes (optional) + - reminders offsets (default 24h/1h/10m) + - repeat (optional: yearly/monthly/weekly) +2) If key info is ambiguous (e.g. ‘后天’ date, ‘下个月’ which month, lunar birthday conversion, time missing), ask **only the minimal** clarifying question(s). +3) Write/update the event in `reminders/events.yml`. +4) Create `cron` jobs for each reminder time (delivery to current Telegram). + +## Reply style + +- After scheduling: reply briefly with the resolved datetime + confirmation. +- For cancellations/changes: confirm what was changed and whether cron jobs were removed/replaced. + +## Queries + +If user asks: +- “我最近有什么安排?” +- “下周有什么?” + +Then read `reminders/events.yml`, compute upcoming items (Shanghai time), and summarize. + +## Notes / safety + +- Never commit machine-specific secrets (keep them in `LOCAL_CONFIG.md`, already gitignored). +- For lunar birthdays: store the canonical lunar date + the computed solar date for the target year; ask how to handle leap months when needed. diff --git a/_meta.json b/_meta.json new file mode 100644 index 0000000..891f247 --- /dev/null +++ b/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn79dwsk2915p6nkctkd21mv7580md2r", + "slug": "reminder", + "version": "0.1.1", + "publishedAt": 1770399211200 +} \ No newline at end of file diff --git a/assets/events.template.yml b/assets/events.template.yml new file mode 100644 index 0000000..6f90fbc --- /dev/null +++ b/assets/events.template.yml @@ -0,0 +1,5 @@ +# events.yml (template) +# Timezone: set via env REMINDER_TZ (default: Asia/Shanghai) +# Default reminder offsets (minutes): set via env REMINDER_OFFSETS_MINUTES (default: 1440,60,10) + +events: []